diff --git a/go.mod b/go.mod index f2071c47..b73927a2 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go v1.38.28 // indirect github.com/elastic/go-elasticsearch/v7 v7.12.0 github.com/fatih/color v1.10.0 // indirect - github.com/go-resty/resty/v2 v2.6.0 + github.com/go-resty/resty/v2 v2.7.0 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-hclog v0.16.0 // indirect @@ -28,7 +28,6 @@ require ( github.com/ulikunitz/xz v0.5.10 // indirect golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b // indirect golang.org/x/mod v0.4.2 // indirect - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 // indirect golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c // indirect golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 // indirect google.golang.org/genproto v0.0.0-20210427215850-f767ed18ee4d // indirect diff --git a/go.sum b/go.sum index 8d4ea51b..a8616fd0 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/go-git/go-git/v5 v5.3.0/go.mod h1:xdX4bWJ48aOrdhnl2XqHYstHbbp6+LFS4r4 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-resty/resty/v2 v2.6.0 h1:joIR5PNLM2EFqqESUjCMGXrWmXNHEU9CEiK813oKYS4= -github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q= +github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= +github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -479,9 +479,8 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20211029224645-99673261e6eb h1:pirldcYWx7rx7kE5r+9WsOXPXK0+WH5+uZ7uPmJ44uM= +golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -551,7 +550,6 @@ golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 h1:dXfMednGJh/SUUFjTLsWJz3P+TQt9qnR11GgeI3vWKs= diff --git a/vendor/github.com/go-resty/resty/v2/.travis.yml b/vendor/github.com/go-resty/resty/v2/.travis.yml deleted file mode 100644 index 583a039f..00000000 --- a/vendor/github.com/go-resty/resty/v2/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: go - -os: linux - -go: # use travis ci resource effectively, keep always latest 2 versions and tip :) - - 1.15.x - - 1.14.x - - tip - -install: - - go get -v -t ./... - -script: - - go test ./... -race -coverprofile=coverage.txt -covermode=atomic - -after_success: - - bash <(curl -s https://codecov.io/bash) - -jobs: - allow_failures: - - go: tip diff --git a/vendor/github.com/go-resty/resty/v2/BUILD.bazel b/vendor/github.com/go-resty/resty/v2/BUILD.bazel index 6c47cbbb..03bb44c3 100644 --- a/vendor/github.com/go-resty/resty/v2/BUILD.bazel +++ b/vendor/github.com/go-resty/resty/v2/BUILD.bazel @@ -1,36 +1,48 @@ -package(default_visibility = ["//visibility:private"]) - -load("@bazel_gazelle//:def.bzl", "gazelle") load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@bazel_gazelle//:def.bzl", "gazelle") -gazelle( - name = "gazelle", - command = "fix", - prefix = "github.com/go-resty/resty/v2", -) +# gazelle:prefix github.com/go-resty/resty/v2 +# gazelle:go_naming_convention import_alias +gazelle(name = "gazelle") go_library( - name = "go_default_library", - srcs = glob( - ["*.go"], - exclude = ["*_test.go"], - ), + name = "resty", + srcs = [ + "client.go", + "middleware.go", + "redirect.go", + "request.go", + "response.go", + "resty.go", + "retry.go", + "trace.go", + "transport.go", + "transport112.go", + "util.go", + ], importpath = "github.com/go-resty/resty/v2", visibility = ["//visibility:public"], deps = ["@org_golang_x_net//publicsuffix:go_default_library"], ) go_test( - name = "go_default_test", - srcs = - glob( - ["*_test.go"], - exclude = ["example_test.go"], - ), - data = glob([".testdata/*"]), - embed = [":go_default_library"], - importpath = "github.com/go-resty/resty/v2", - deps = [ - "@org_golang_x_net//proxy:go_default_library", + name = "resty_test", + srcs = [ + "client_test.go", + "context_test.go", + "example_test.go", + "request_test.go", + "resty_test.go", + "retry_test.go", + "util_test.go", ], + data = glob([".testdata/*"]), + embed = [":resty"], + deps = ["@org_golang_x_net//proxy:go_default_library"], +) + +alias( + name = "go_default_library", + actual = ":resty", + visibility = ["//visibility:public"], ) diff --git a/vendor/github.com/go-resty/resty/v2/README.md b/vendor/github.com/go-resty/resty/v2/README.md index 819fbf3e..8ec65182 100644 --- a/vendor/github.com/go-resty/resty/v2/README.md +++ b/vendor/github.com/go-resty/resty/v2/README.md @@ -4,7 +4,7 @@

Features section describes in detail about Resty capabilities

-

Build Status Code Coverage Go Report Card Release Version GoDoc License Mentioned in Awesome Go

+

Build Status Code Coverage Go Report Card Release Version GoDoc License Mentioned in Awesome Go

Resty Communication Channels

@@ -13,7 +13,7 @@ ## News - * v2.6.0 [released](https://github.com/go-resty/resty/releases/tag/v2.6.0) and tagged on Apr 09, 2021. + * v2.7.0 [released](https://github.com/go-resty/resty/releases/tag/v2.7.0) and tagged on Nov 03, 2021. * v2.0.0 [released](https://github.com/go-resty/resty/releases/tag/v2.0.0) and tagged on Jul 16, 2019. * v1.12.0 [released](https://github.com/go-resty/resty/releases/tag/v1.12.0) and tagged on Feb 27, 2019. * v1.0 released and tagged on Sep 25, 2017. - Resty's first version was released on Sep 15, 2015 then it grew gradually as a very handy and helpful library. Its been a two years since first release. I'm very thankful to Resty users and its [contributors](https://github.com/go-resty/resty/graphs/contributors). @@ -36,6 +36,7 @@ - Success scenario [Request.SetResult()](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetResult) and [Response.Result()](https://pkg.go.dev/github.com/go-resty/resty/v2#Response.Result). - Error scenario [Request.SetError()](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetError) and [Response.Error()](https://pkg.go.dev/github.com/go-resty/resty/v2#Response.Error). - Supports [RFC7807](https://tools.ietf.org/html/rfc7807) - `application/problem+json` & `application/problem+xml` + * Resty provides an option to override [JSON Marshal/Unmarshal and XML Marshal/Unmarshal](#override-json--xml-marshalunmarshal) * Easy to upload one or more file(s) via `multipart/form-data` * Auto detects file content type * Request URL [Path Params (aka URI Params)](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetPathParams) @@ -107,7 +108,7 @@ Resty author also published following projects for Go Community. ```bash # Go Modules -require github.com/go-resty/resty/v2 v2.4.0 +require github.com/go-resty/resty/v2 v2.7.0 ``` ## Usage @@ -359,6 +360,24 @@ resp, err := client.R(). Options("https://myapp.com/servers/nyc-dc-01") ``` +#### Override JSON & XML Marshal/Unmarshal + +User could register choice of JSON/XML library into resty or write your own. By default resty registers standard `encoding/json` and `encoding/xml` respectively. +```go +// Example of registering json-iterator +import jsoniter "github.com/json-iterator/go" + +json := jsoniter.ConfigCompatibleWithStandardLibrary + +client := resty.New() +client.JSONMarshal = json.Marshal +client.JSONUnmarshal = json.Unmarshal + +// similarly user could do for XML too with - +client.XMLMarshal +client.XMLUnmarshal +``` + ### Multipart File(s) upload #### Using io.Reader @@ -829,13 +848,13 @@ client.SetTransport(&transport).SetScheme("http").SetHostURL(unixSocket) client.R().Get("/index.html") ``` -#### Bazel support +#### Bazel Support Resty can be built, tested and depended upon via [Bazel](https://bazel.build). For example, to run all tests: ```shell -bazel test :go_default_test +bazel test :resty_test ``` #### Mocking http requests using [httpmock](https://github.com/jarcoal/httpmock) library @@ -876,7 +895,7 @@ BTW, I'd like to know what you think about `Resty`. Kindly open an issue or send ## Core Team -Have a look on [Members](https://github.com/orgs/go-resty/teams/core/members) page. +Have a look on [Members](https://github.com/orgs/go-resty/people) page. ## Contributors diff --git a/vendor/github.com/go-resty/resty/v2/WORKSPACE b/vendor/github.com/go-resty/resty/v2/WORKSPACE index 5459d632..9ef03e95 100644 --- a/vendor/github.com/go-resty/resty/v2/WORKSPACE +++ b/vendor/github.com/go-resty/resty/v2/WORKSPACE @@ -1,26 +1,30 @@ workspace(name = "resty") -git_repository( +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( name = "io_bazel_rules_go", - remote = "https://github.com/bazelbuild/rules_go.git", - tag = "0.13.0", + sha256 = "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz", + "https://github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz", + ], ) -git_repository( +http_archive( name = "bazel_gazelle", - remote = "https://github.com/bazelbuild/bazel-gazelle.git", - tag = "0.13.0", + sha256 = "62ca106be173579c0a167deb23358fdfe71ffa1e4cfdddf5582af26520f1c66f", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz", + "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz", + ], ) -load( - "@io_bazel_rules_go//go:def.bzl", - "go_rules_dependencies", - "go_register_toolchains", -) +load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() -go_register_toolchains() +go_register_toolchains(version = "1.16") load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") diff --git a/vendor/github.com/go-resty/resty/v2/client.go b/vendor/github.com/go-resty/resty/v2/client.go index 36b9f9ce..1a03efa3 100644 --- a/vendor/github.com/go-resty/resty/v2/client.go +++ b/vendor/github.com/go-resty/resty/v2/client.go @@ -10,6 +10,7 @@ import ( "crypto/tls" "crypto/x509" "encoding/json" + "encoding/xml" "errors" "fmt" "io" @@ -92,9 +93,11 @@ type ( // Resty also provides an options to override most of the client settings // at request level. type Client struct { - HostURL string + BaseURL string + HostURL string // Deprecated: use BaseURL instead. To be removed in v3.0.0 release. QueryParam url.Values FormData url.Values + PathParams map[string]string Header http.Header UserInfo *User Token string @@ -112,6 +115,8 @@ type Client struct { RetryAfter RetryAfterFunc JSONMarshal func(v interface{}) ([]byte, error) JSONUnmarshal func(data []byte, v interface{}) error + XMLMarshal func(v interface{}) ([]byte, error) + XMLUnmarshal func(data []byte, v interface{}) error // HeaderAuthorizationKey is used to set/access Request Authorization header // value when `SetAuthToken` option is used. @@ -125,7 +130,6 @@ type Client struct { debugBodySizeLimit int64 outputDirectory string scheme string - pathParams map[string]string log Logger httpClient *http.Client proxyURL *url.URL @@ -154,8 +158,25 @@ type User struct { // // // Setting HTTPS address // client.SetHostURL("https://myjeeva.com") +// +// Deprecated: use SetBaseURL instead. To be removed in v3.0.0 release. func (c *Client) SetHostURL(url string) *Client { - c.HostURL = strings.TrimRight(url, "/") + c.SetBaseURL(url) + return c +} + +// SetBaseURL method is to set Base URL in the client instance. It will be used with request +// raised from this client with relative URL +// // Setting HTTP address +// client.SetBaseURL("http://myjeeva.com") +// +// // Setting HTTPS address +// client.SetBaseURL("https://myjeeva.com") +// +// Since v2.7.0 +func (c *Client) SetBaseURL(url string) *Client { + c.BaseURL = strings.TrimRight(url, "/") + c.HostURL = c.BaseURL return c } @@ -367,7 +388,7 @@ func (c *Client) R() *Request { client: c, multipartFiles: []*File{}, multipartFields: []*MultipartField{}, - pathParams: map[string]string{}, + PathParams: map[string]string{}, jsonEscapeHTML: true, } return r @@ -589,6 +610,9 @@ func (c *Client) SetRetryAfter(callback RetryAfterFunc) *Client { // AddRetryCondition method adds a retry condition function to array of functions // that are checked to determine if the request is retried. The request will // retry if any of the functions return true and error is nil. +// +// Note: These retry conditions are applied on all Request made using this Client. +// For Request specific retry conditions check *Request.AddRetryCondition func (c *Client) AddRetryCondition(condition RetryConditionFunc) *Client { c.RetryConditions = append(c.RetryConditions, condition) return c @@ -758,7 +782,7 @@ func (c *Client) SetTransport(transport http.RoundTripper) *Client { // client.SetScheme("http") func (c *Client) SetScheme(scheme string) *Client { if !IsStringEmpty(scheme) { - c.scheme = scheme + c.scheme = strings.TrimSpace(scheme) } return c } @@ -793,7 +817,7 @@ func (c *Client) SetDoNotParseResponse(parse bool) *Client { // Also it can be overridden at request level Path Params options, // see `Request.SetPathParam` or `Request.SetPathParams`. func (c *Client) SetPathParam(param, value string) *Client { - c.pathParams[param] = value + c.PathParams[param] = value return c } @@ -869,7 +893,6 @@ func (c *Client) GetClient() *http.Client { // Executes method executes the given `Request` object and returns response // error. func (c *Client) execute(req *Request) (*Response, error) { - defer releaseBuffer(req.bodyBuf) // Apply Request middleware var err error @@ -903,6 +926,8 @@ func (c *Client) execute(req *Request) (*Response, error) { return nil, wrapNoRetryErr(err) } + req.RawRequest.Body = newRequestBodyReleaser(req.RawRequest.Body, req.bodyBuf) + req.Time = time.Now() resp, err := c.httpClient.Do(req.RawRequest) @@ -1052,13 +1077,16 @@ func createClient(hc *http.Client) *Client { Cookies: make([]*http.Cookie, 0), RetryWaitTime: defaultWaitTime, RetryMaxWaitTime: defaultMaxWaitTime, + PathParams: make(map[string]string), JSONMarshal: json.Marshal, JSONUnmarshal: json.Unmarshal, + XMLMarshal: xml.Marshal, + XMLUnmarshal: xml.Unmarshal, HeaderAuthorizationKey: http.CanonicalHeaderKey("Authorization"), - jsonEscapeHTML: true, - httpClient: hc, - debugBodySizeLimit: math.MaxInt32, - pathParams: make(map[string]string), + + jsonEscapeHTML: true, + httpClient: hc, + debugBodySizeLimit: math.MaxInt32, } // Logger diff --git a/vendor/github.com/go-resty/resty/v2/go.mod b/vendor/github.com/go-resty/resty/v2/go.mod index 0383ef85..5e78bdc8 100644 --- a/vendor/github.com/go-resty/resty/v2/go.mod +++ b/vendor/github.com/go-resty/resty/v2/go.mod @@ -1,5 +1,5 @@ module github.com/go-resty/resty/v2 -require golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 +require golang.org/x/net v0.0.0-20211029224645-99673261e6eb go 1.11 diff --git a/vendor/github.com/go-resty/resty/v2/go.sum b/vendor/github.com/go-resty/resty/v2/go.sum index bba72119..07a45152 100644 --- a/vendor/github.com/go-resty/resty/v2/go.sum +++ b/vendor/github.com/go-resty/resty/v2/go.sum @@ -1,7 +1,7 @@ -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20211029224645-99673261e6eb h1:pirldcYWx7rx7kE5r+9WsOXPXK0+WH5+uZ7uPmJ44uM= +golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/go-resty/resty/v2/middleware.go b/vendor/github.com/go-resty/resty/v2/middleware.go index 06ed48b5..0e8ac2b6 100644 --- a/vendor/github.com/go-resty/resty/v2/middleware.go +++ b/vendor/github.com/go-resty/resty/v2/middleware.go @@ -6,7 +6,6 @@ package resty import ( "bytes" - "encoding/xml" "errors" "fmt" "io" @@ -29,13 +28,13 @@ const debugRequestLogKey = "__restyDebugRequestLog" func parseRequestURL(c *Client, r *Request) error { // GitHub #103 Path Params - if len(r.pathParams) > 0 { - for p, v := range r.pathParams { + if len(r.PathParams) > 0 { + for p, v := range r.PathParams { r.URL = strings.Replace(r.URL, "{"+p+"}", url.PathEscape(v), -1) } } - if len(c.pathParams) > 0 { - for p, v := range c.pathParams { + if len(c.PathParams) > 0 { + for p, v := range c.PathParams { r.URL = strings.Replace(r.URL, "{"+p+"}", url.PathEscape(v), -1) } } @@ -60,6 +59,11 @@ func parseRequestURL(c *Client, r *Request) error { } } + // GH #407 && #318 + if reqURL.Scheme == "" && len(c.scheme) > 0 { + reqURL.Scheme = c.scheme + } + // Adding Query Param query := make(url.Values) for k, v := range c.QueryParam { @@ -191,12 +195,6 @@ func createHTTPRequest(c *Client, r *Request) (err error) { r.RawRequest.AddCookie(cookie) } - // it's for non-http scheme option - if r.RawRequest.URL != nil && r.RawRequest.URL.Scheme == "" { - r.RawRequest.URL.Scheme = c.scheme - r.RawRequest.URL.Host = r.URL - } - // Enable trace if c.trace || r.trace { r.clientTrace = &clientTrace{} @@ -458,12 +456,12 @@ func handleRequestBody(c *Client, r *Request) (err error) { bodyBytes = []byte(s) } else if IsJSONType(contentType) && (kind == reflect.Struct || kind == reflect.Map || kind == reflect.Slice) { - bodyBytes, err = jsonMarshal(c, r, r.Body) + r.bodyBuf, err = jsonMarshal(c, r, r.Body) if err != nil { return } } else if IsXMLType(contentType) && (kind == reflect.Struct) { - bodyBytes, err = xml.Marshal(r.Body) + bodyBytes, err = c.XMLMarshal(r.Body) if err != nil { return } diff --git a/vendor/github.com/go-resty/resty/v2/request.go b/vendor/github.com/go-resty/resty/v2/request.go index 41709cf9..672df88c 100644 --- a/vendor/github.com/go-resty/resty/v2/request.go +++ b/vendor/github.com/go-resty/resty/v2/request.go @@ -33,6 +33,7 @@ type Request struct { AuthScheme string QueryParam url.Values FormData url.Values + PathParams map[string]string Header http.Header Time time.Time Body interface{} @@ -60,13 +61,13 @@ type Request struct { fallbackContentType string forceContentType string ctx context.Context - pathParams map[string]string values map[string]interface{} client *Client bodyBuf *bytes.Buffer clientTrace *clientTrace multipartFiles []*File multipartFields []*MultipartField + retryConditions []RetryConditionFunc } // Context method returns the Context if its already set in request @@ -117,6 +118,22 @@ func (r *Request) SetHeaders(headers map[string]string) *Request { return r } +// SetHeaderMultiValues sets multiple headers fields and its values is list of strings at one go in the current request. +// +// For Example: To set `Accept` as `text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8` +// +// client.R(). +// SetHeaderMultiValues(map[string][]string{ +// "Accept": []string{"text/html", "application/xhtml+xml", "application/xml;q=0.9", "image/webp", "*/*;q=0.8"}, +// }) +// Also you can override header value, which was set at client instance level. +func (r *Request) SetHeaderMultiValues(headers map[string][]string) *Request { + for key, values := range headers { + r.SetHeader(key, strings.Join(values, ", ")) + } + return r +} + // SetHeaderVerbatim method is to set a single header field and its value verbatim in the current request. // // For Example: To set `all_lowercase` and `UPPERCASE` as `available`. @@ -494,7 +511,7 @@ func (r *Request) SetDoNotParseResponse(parse bool) *Request { // It replaces the value of the key while composing the request URL. Also you can // override Path Params value, which was set at client instance level. func (r *Request) SetPathParam(param, value string) *Request { - r.pathParams[param] = value + r.PathParams[param] = value return r } @@ -577,6 +594,18 @@ func (r *Request) SetCookies(rs []*http.Cookie) *Request { return r } +// AddRetryCondition method adds a retry condition function to the request's +// array of functions that are checked to determine if the request is retried. +// The request will retry if any of the functions return true and error is nil. +// +// Note: These retry conditions are checked before all retry conditions of the client. +// +// Since v2.7.0 +func (r *Request) AddRetryCondition(condition RetryConditionFunc) *Request { + r.retryConditions = append(r.retryConditions, condition) + return r +} + //‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ // HTTP request tracing //_______________________________________________________________________ @@ -747,7 +776,7 @@ func (r *Request) Execute(method, url string) (*Response, error) { Retries(r.client.RetryCount), WaitTime(r.client.RetryWaitTime), MaxWaitTime(r.client.RetryMaxWaitTime), - RetryConditions(r.client.RetryConditions), + RetryConditions(append(r.retryConditions, r.client.RetryConditions...)), RetryHooks(r.client.RetryHooks), ) @@ -854,11 +883,14 @@ func (r *Request) initValuesMap() { } } -var noescapeJSONMarshal = func(v interface{}) ([]byte, error) { +var noescapeJSONMarshal = func(v interface{}) (*bytes.Buffer, error) { buf := acquireBuffer() - defer releaseBuffer(buf) encoder := json.NewEncoder(buf) encoder.SetEscapeHTML(false) - err := encoder.Encode(v) - return buf.Bytes(), err + if err := encoder.Encode(v); err != nil { + releaseBuffer(buf) + return nil, err + } + + return buf, nil } diff --git a/vendor/github.com/go-resty/resty/v2/resty.go b/vendor/github.com/go-resty/resty/v2/resty.go index 2a53e066..6f9c8b4c 100644 --- a/vendor/github.com/go-resty/resty/v2/resty.go +++ b/vendor/github.com/go-resty/resty/v2/resty.go @@ -14,7 +14,7 @@ import ( ) // Version # of resty -const Version = "2.6.0" +const Version = "2.7.0" // New method creates a new Resty client. func New() *Client { diff --git a/vendor/github.com/go-resty/resty/v2/retry.go b/vendor/github.com/go-resty/resty/v2/retry.go index a841c461..00b8514a 100644 --- a/vendor/github.com/go-resty/resty/v2/retry.go +++ b/vendor/github.com/go-resty/resty/v2/retry.go @@ -129,6 +129,12 @@ func Backoff(operation func() (*Response, error), options ...Option) error { hook(resp, err) } + // Don't need to wait when no retries left. + // Still run retry hooks even on last retry to keep compatibility. + if attempt == opts.maxRetries { + return err + } + waitTime, err2 := sleepDuration(resp, opts.waitTime, opts.maxWaitTime, attempt) if err2 != nil { if err == nil { diff --git a/vendor/github.com/go-resty/resty/v2/util.go b/vendor/github.com/go-resty/resty/v2/util.go index b0172560..1d563bef 100644 --- a/vendor/github.com/go-resty/resty/v2/util.go +++ b/vendor/github.com/go-resty/resty/v2/util.go @@ -6,7 +6,6 @@ package resty import ( "bytes" - "encoding/xml" "fmt" "io" "log" @@ -19,6 +18,7 @@ import ( "runtime" "sort" "strings" + "sync" ) //‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ @@ -108,7 +108,7 @@ func Unmarshalc(c *Client, ct string, b []byte, d interface{}) (err error) { if IsJSONType(ct) { err = c.JSONUnmarshal(b, d) } else if IsXMLType(ct) { - err = xml.Unmarshal(b, d) + err = c.XMLUnmarshal(b, d) } return @@ -139,13 +139,19 @@ type ResponseLog struct { //_______________________________________________________________________ // way to disable the HTML escape as opt-in -func jsonMarshal(c *Client, r *Request, d interface{}) ([]byte, error) { - if !r.jsonEscapeHTML { - return noescapeJSONMarshal(d) - } else if !c.jsonEscapeHTML { +func jsonMarshal(c *Client, r *Request, d interface{}) (*bytes.Buffer, error) { + if !r.jsonEscapeHTML || !c.jsonEscapeHTML { return noescapeJSONMarshal(d) } - return c.JSONMarshal(d) + + data, err := c.JSONMarshal(d) + if err != nil { + return nil, err + } + + buf := acquireBuffer() + _, _ = buf.Write(data) + return buf, nil } func firstNonEmpty(v ...string) string { @@ -195,7 +201,7 @@ func writeMultipartFormFile(w *multipart.Writer, fieldName, fileName string, r i // Auto detect actual multipart content type cbuf := make([]byte, 512) size, err := r.Read(cbuf) - if err != nil { + if err != nil && err != io.EOF { return err } @@ -283,6 +289,34 @@ func releaseBuffer(buf *bytes.Buffer) { } } +// requestBodyReleaser wraps requests's body and implements custom Close for it. +// The Close method closes original body and releases request body back to sync.Pool. +type requestBodyReleaser struct { + releaseOnce sync.Once + reqBuf *bytes.Buffer + io.ReadCloser +} + +func newRequestBodyReleaser(respBody io.ReadCloser, reqBuf *bytes.Buffer) io.ReadCloser { + if reqBuf == nil { + return respBody + } + + return &requestBodyReleaser{ + reqBuf: reqBuf, + ReadCloser: respBody, + } +} + +func (rr *requestBodyReleaser) Close() error { + err := rr.ReadCloser.Close() + rr.releaseOnce.Do(func() { + releaseBuffer(rr.reqBuf) + }) + + return err +} + func closeq(v interface{}) { if c, ok := v.(io.Closer); ok { silently(c.Close()) diff --git a/vendor/golang.org/x/net/http2/README b/vendor/golang.org/x/net/http2/README deleted file mode 100644 index 360d5aa3..00000000 --- a/vendor/golang.org/x/net/http2/README +++ /dev/null @@ -1,20 +0,0 @@ -This is a work-in-progress HTTP/2 implementation for Go. - -It will eventually live in the Go standard library and won't require -any changes to your code to use. It will just be automatic. - -Status: - -* The server support is pretty good. A few things are missing - but are being worked on. -* The client work has just started but shares a lot of code - is coming along much quicker. - -Docs are at https://godoc.org/golang.org/x/net/http2 - -Demo test server at https://http2.golang.org/ - -Help & bug reports welcome! - -Contributing: https://golang.org/doc/contribute.html -Bugs: https://golang.org/issue/new?title=x/net/http2:+ diff --git a/vendor/golang.org/x/net/http2/ascii.go b/vendor/golang.org/x/net/http2/ascii.go new file mode 100644 index 00000000..17caa205 --- /dev/null +++ b/vendor/golang.org/x/net/http2/ascii.go @@ -0,0 +1,53 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "strings" + +// The HTTP protocols are defined in terms of ASCII, not Unicode. This file +// contains helper functions which may use Unicode-aware functions which would +// otherwise be unsafe and could introduce vulnerabilities if used improperly. + +// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t +// are equal, ASCII-case-insensitively. +func asciiEqualFold(s, t string) bool { + if len(s) != len(t) { + return false + } + for i := 0; i < len(s); i++ { + if lower(s[i]) != lower(t[i]) { + return false + } + } + return true +} + +// lower returns the ASCII lowercase version of b. +func lower(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b +} + +// isASCIIPrint returns whether s is ASCII and printable according to +// https://tools.ietf.org/html/rfc20#section-4.2. +func isASCIIPrint(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] < ' ' || s[i] > '~' { + return false + } + } + return true +} + +// asciiToLower returns the lowercase version of s if s is ASCII and printable, +// and whether or not it was. +func asciiToLower(s string) (lower string, ok bool) { + if !isASCIIPrint(s) { + return "", false + } + return strings.ToLower(s), true +} diff --git a/vendor/golang.org/x/net/http2/client_conn_pool.go b/vendor/golang.org/x/net/http2/client_conn_pool.go index 3a67636f..c936843e 100644 --- a/vendor/golang.org/x/net/http2/client_conn_pool.go +++ b/vendor/golang.org/x/net/http2/client_conn_pool.go @@ -7,13 +7,21 @@ package http2 import ( + "context" "crypto/tls" + "errors" "net/http" "sync" ) // ClientConnPool manages a pool of HTTP/2 client connections. type ClientConnPool interface { + // GetClientConn returns a specific HTTP/2 connection (usually + // a TLS-TCP connection) to an HTTP/2 server. On success, the + // returned ClientConn accounts for the upcoming RoundTrip + // call, so the caller should not omit it. If the caller needs + // to, ClientConn.RoundTrip can be called with a bogus + // new(http.Request) to release the stream reservation. GetClientConn(req *http.Request, addr string) (*ClientConn, error) MarkDead(*ClientConn) } @@ -40,7 +48,7 @@ type clientConnPool struct { conns map[string][]*ClientConn // key is host:port dialing map[string]*dialCall // currently in-flight dials keys map[*ClientConn][]string - addConnCalls map[string]*addConnCall // in-flight addConnIfNeede calls + addConnCalls map[string]*addConnCall // in-flight addConnIfNeeded calls } func (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) { @@ -52,87 +60,85 @@ const ( noDialOnMiss = false ) -// shouldTraceGetConn reports whether getClientConn should call any -// ClientTrace.GetConn hook associated with the http.Request. -// -// This complexity is needed to avoid double calls of the GetConn hook -// during the back-and-forth between net/http and x/net/http2 (when the -// net/http.Transport is upgraded to also speak http2), as well as support -// the case where x/net/http2 is being used directly. -func (p *clientConnPool) shouldTraceGetConn(st clientConnIdleState) bool { - // If our Transport wasn't made via ConfigureTransport, always - // trace the GetConn hook if provided, because that means the - // http2 package is being used directly and it's the one - // dialing, as opposed to net/http. - if _, ok := p.t.ConnPool.(noDialClientConnPool); !ok { - return true - } - // Otherwise, only use the GetConn hook if this connection has - // been used previously for other requests. For fresh - // connections, the net/http package does the dialing. - return !st.freshConn -} - func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) { + // TODO(dneil): Dial a new connection when t.DisableKeepAlives is set? if isConnectionCloseRequest(req) && dialOnMiss { // It gets its own connection. traceGetConn(req, addr) const singleUse = true - cc, err := p.t.dialClientConn(addr, singleUse) + cc, err := p.t.dialClientConn(req.Context(), addr, singleUse) if err != nil { return nil, err } return cc, nil } - p.mu.Lock() - for _, cc := range p.conns[addr] { - if st := cc.idleState(); st.canTakeNewRequest { - if p.shouldTraceGetConn(st) { - traceGetConn(req, addr) + for { + p.mu.Lock() + for _, cc := range p.conns[addr] { + if cc.ReserveNewRequest() { + // When a connection is presented to us by the net/http package, + // the GetConn hook has already been called. + // Don't call it a second time here. + if !cc.getConnCalled { + traceGetConn(req, addr) + } + cc.getConnCalled = false + p.mu.Unlock() + return cc, nil } + } + if !dialOnMiss { p.mu.Unlock() - return cc, nil + return nil, ErrNoCachedConn } - } - if !dialOnMiss { + traceGetConn(req, addr) + call := p.getStartDialLocked(req.Context(), addr) p.mu.Unlock() - return nil, ErrNoCachedConn + <-call.done + if shouldRetryDial(call, req) { + continue + } + cc, err := call.res, call.err + if err != nil { + return nil, err + } + if cc.ReserveNewRequest() { + return cc, nil + } } - traceGetConn(req, addr) - call := p.getStartDialLocked(addr) - p.mu.Unlock() - <-call.done - return call.res, call.err } // dialCall is an in-flight Transport dial call to a host. type dialCall struct { - _ incomparable - p *clientConnPool + _ incomparable + p *clientConnPool + // the context associated with the request + // that created this dialCall + ctx context.Context done chan struct{} // closed when done res *ClientConn // valid after done is closed err error // valid after done is closed } // requires p.mu is held. -func (p *clientConnPool) getStartDialLocked(addr string) *dialCall { +func (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *dialCall { if call, ok := p.dialing[addr]; ok { // A dial is already in-flight. Don't start another. return call } - call := &dialCall{p: p, done: make(chan struct{})} + call := &dialCall{p: p, done: make(chan struct{}), ctx: ctx} if p.dialing == nil { p.dialing = make(map[string]*dialCall) } p.dialing[addr] = call - go call.dial(addr) + go call.dial(call.ctx, addr) return call } // run in its own goroutine. -func (c *dialCall) dial(addr string) { +func (c *dialCall) dial(ctx context.Context, addr string) { const singleUse = false // shared conn - c.res, c.err = c.p.t.dialClientConn(addr, singleUse) + c.res, c.err = c.p.t.dialClientConn(ctx, addr, singleUse) close(c.done) c.p.mu.Lock() @@ -195,6 +201,7 @@ func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) { if err != nil { c.err = err } else { + cc.getConnCalled = true // already called by the net/http package p.addConnLocked(key, cc) } delete(p.addConnCalls, key) @@ -276,3 +283,28 @@ type noDialClientConnPool struct{ *clientConnPool } func (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) { return p.getClientConn(req, addr, noDialOnMiss) } + +// shouldRetryDial reports whether the current request should +// retry dialing after the call finished unsuccessfully, for example +// if the dial was canceled because of a context cancellation or +// deadline expiry. +func shouldRetryDial(call *dialCall, req *http.Request) bool { + if call.err == nil { + // No error, no need to retry + return false + } + if call.ctx == req.Context() { + // If the call has the same context as the request, the dial + // should not be retried, since any cancellation will have come + // from this request. + return false + } + if !errors.Is(call.err, context.Canceled) && !errors.Is(call.err, context.DeadlineExceeded) { + // If the call error is not because of a context cancellation or a deadline expiry, + // the dial should not be retried. + return false + } + // Only retry if the error is a context cancellation error or deadline expiry + // and the context associated with the call was canceled or expired. + return call.ctx.Err() != nil +} diff --git a/vendor/golang.org/x/net/http2/errors.go b/vendor/golang.org/x/net/http2/errors.go index 71f2c463..2663e5d2 100644 --- a/vendor/golang.org/x/net/http2/errors.go +++ b/vendor/golang.org/x/net/http2/errors.go @@ -53,6 +53,13 @@ func (e ErrCode) String() string { return fmt.Sprintf("unknown error code 0x%x", uint32(e)) } +func (e ErrCode) stringToken() string { + if s, ok := errCodeName[e]; ok { + return s + } + return fmt.Sprintf("ERR_UNKNOWN_%d", uint32(e)) +} + // ConnectionError is an error that results in the termination of the // entire connection. type ConnectionError ErrCode @@ -67,6 +74,11 @@ type StreamError struct { Cause error // optional additional detail } +// errFromPeer is a sentinel error value for StreamError.Cause to +// indicate that the StreamError was sent from the peer over the wire +// and wasn't locally generated in the Transport. +var errFromPeer = errors.New("received from peer") + func streamError(id uint32, code ErrCode) StreamError { return StreamError{StreamID: id, Code: code} } diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index 514c126c..96a74790 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -122,7 +122,7 @@ var flagName = map[FrameType]map[Flags]string{ // a frameParser parses a frame given its FrameHeader and payload // bytes. The length of payload will always equal fh.Length (which // might be 0). -type frameParser func(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error) +type frameParser func(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) var frameParsers = map[FrameType]frameParser{ FrameData: parseDataFrame, @@ -267,6 +267,11 @@ type Framer struct { lastFrame Frame errDetail error + // countError is a non-nil func that's called on a frame parse + // error with some unique error path token. It's initialized + // from Transport.CountError or Server.CountError. + countError func(errToken string) + // lastHeaderStream is non-zero if the last frame was an // unfinished HEADERS/CONTINUATION. lastHeaderStream uint32 @@ -426,6 +431,7 @@ func NewFramer(w io.Writer, r io.Reader) *Framer { fr := &Framer{ w: w, r: r, + countError: func(string) {}, logReads: logFrameReads, logWrites: logFrameWrites, debugReadLoggerf: log.Printf, @@ -500,7 +506,7 @@ func (fr *Framer) ReadFrame() (Frame, error) { if _, err := io.ReadFull(fr.r, payload); err != nil { return nil, err } - f, err := typeFrameParser(fh.Type)(fr.frameCache, fh, payload) + f, err := typeFrameParser(fh.Type)(fr.frameCache, fh, fr.countError, payload) if err != nil { if ce, ok := err.(connError); ok { return nil, fr.connError(ce.Code, ce.Reason) @@ -588,13 +594,14 @@ func (f *DataFrame) Data() []byte { return f.data } -func parseDataFrame(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error) { +func parseDataFrame(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { if fh.StreamID == 0 { // DATA frames MUST be associated with a stream. If a // DATA frame is received whose stream identifier // field is 0x0, the recipient MUST respond with a // connection error (Section 5.4.1) of type // PROTOCOL_ERROR. + countError("frame_data_stream_0") return nil, connError{ErrCodeProtocol, "DATA frame with stream ID 0"} } f := fc.getDataFrame() @@ -605,6 +612,7 @@ func parseDataFrame(fc *frameCache, fh FrameHeader, payload []byte) (Frame, erro var err error payload, padSize, err = readByte(payload) if err != nil { + countError("frame_data_pad_byte_short") return nil, err } } @@ -613,6 +621,7 @@ func parseDataFrame(fc *frameCache, fh FrameHeader, payload []byte) (Frame, erro // length of the frame payload, the recipient MUST // treat this as a connection error. // Filed: https://github.com/http2/http2-spec/issues/610 + countError("frame_data_pad_too_big") return nil, connError{ErrCodeProtocol, "pad size larger than data payload"} } f.data = payload[:len(payload)-int(padSize)] @@ -695,7 +704,7 @@ type SettingsFrame struct { p []byte } -func parseSettingsFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { +func parseSettingsFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { if fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 { // When this (ACK 0x1) bit is set, the payload of the // SETTINGS frame MUST be empty. Receipt of a @@ -703,6 +712,7 @@ func parseSettingsFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) // field value other than 0 MUST be treated as a // connection error (Section 5.4.1) of type // FRAME_SIZE_ERROR. + countError("frame_settings_ack_with_length") return nil, ConnectionError(ErrCodeFrameSize) } if fh.StreamID != 0 { @@ -713,14 +723,17 @@ func parseSettingsFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) // field is anything other than 0x0, the endpoint MUST // respond with a connection error (Section 5.4.1) of // type PROTOCOL_ERROR. + countError("frame_settings_has_stream") return nil, ConnectionError(ErrCodeProtocol) } if len(p)%6 != 0 { + countError("frame_settings_mod_6") // Expecting even number of 6 byte settings. return nil, ConnectionError(ErrCodeFrameSize) } f := &SettingsFrame{FrameHeader: fh, p: p} if v, ok := f.Value(SettingInitialWindowSize); ok && v > (1<<31)-1 { + countError("frame_settings_window_size_too_big") // Values above the maximum flow control window size of 2^31 - 1 MUST // be treated as a connection error (Section 5.4.1) of type // FLOW_CONTROL_ERROR. @@ -832,11 +845,13 @@ type PingFrame struct { func (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) } -func parsePingFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) { +func parsePingFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { if len(payload) != 8 { + countError("frame_ping_length") return nil, ConnectionError(ErrCodeFrameSize) } if fh.StreamID != 0 { + countError("frame_ping_has_stream") return nil, ConnectionError(ErrCodeProtocol) } f := &PingFrame{FrameHeader: fh} @@ -872,11 +887,13 @@ func (f *GoAwayFrame) DebugData() []byte { return f.debugData } -func parseGoAwayFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { +func parseGoAwayFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { if fh.StreamID != 0 { + countError("frame_goaway_has_stream") return nil, ConnectionError(ErrCodeProtocol) } if len(p) < 8 { + countError("frame_goaway_short") return nil, ConnectionError(ErrCodeFrameSize) } return &GoAwayFrame{ @@ -912,7 +929,7 @@ func (f *UnknownFrame) Payload() []byte { return f.p } -func parseUnknownFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { +func parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { return &UnknownFrame{fh, p}, nil } @@ -923,8 +940,9 @@ type WindowUpdateFrame struct { Increment uint32 // never read with high bit set } -func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { +func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { if len(p) != 4 { + countError("frame_windowupdate_bad_len") return nil, ConnectionError(ErrCodeFrameSize) } inc := binary.BigEndian.Uint32(p[:4]) & 0x7fffffff // mask off high reserved bit @@ -936,8 +954,10 @@ func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, err // control window MUST be treated as a connection // error (Section 5.4.1). if fh.StreamID == 0 { + countError("frame_windowupdate_zero_inc_conn") return nil, ConnectionError(ErrCodeProtocol) } + countError("frame_windowupdate_zero_inc_stream") return nil, streamError(fh.StreamID, ErrCodeProtocol) } return &WindowUpdateFrame{ @@ -988,7 +1008,7 @@ func (f *HeadersFrame) HasPriority() bool { return f.FrameHeader.Flags.Has(FlagHeadersPriority) } -func parseHeadersFrame(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) { +func parseHeadersFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) { hf := &HeadersFrame{ FrameHeader: fh, } @@ -997,11 +1017,13 @@ func parseHeadersFrame(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err er // is received whose stream identifier field is 0x0, the recipient MUST // respond with a connection error (Section 5.4.1) of type // PROTOCOL_ERROR. + countError("frame_headers_zero_stream") return nil, connError{ErrCodeProtocol, "HEADERS frame with stream ID 0"} } var padLength uint8 if fh.Flags.Has(FlagHeadersPadded) { if p, padLength, err = readByte(p); err != nil { + countError("frame_headers_pad_short") return } } @@ -1009,16 +1031,19 @@ func parseHeadersFrame(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err er var v uint32 p, v, err = readUint32(p) if err != nil { + countError("frame_headers_prio_short") return nil, err } hf.Priority.StreamDep = v & 0x7fffffff hf.Priority.Exclusive = (v != hf.Priority.StreamDep) // high bit was set p, hf.Priority.Weight, err = readByte(p) if err != nil { + countError("frame_headers_prio_weight_short") return nil, err } } - if len(p)-int(padLength) <= 0 { + if len(p)-int(padLength) < 0 { + countError("frame_headers_pad_too_big") return nil, streamError(fh.StreamID, ErrCodeProtocol) } hf.headerFragBuf = p[:len(p)-int(padLength)] @@ -1125,11 +1150,13 @@ func (p PriorityParam) IsZero() bool { return p == PriorityParam{} } -func parsePriorityFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) { +func parsePriorityFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { if fh.StreamID == 0 { + countError("frame_priority_zero_stream") return nil, connError{ErrCodeProtocol, "PRIORITY frame with stream ID 0"} } if len(payload) != 5 { + countError("frame_priority_bad_length") return nil, connError{ErrCodeFrameSize, fmt.Sprintf("PRIORITY frame payload size was %d; want 5", len(payload))} } v := binary.BigEndian.Uint32(payload[:4]) @@ -1172,11 +1199,13 @@ type RSTStreamFrame struct { ErrCode ErrCode } -func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { +func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { if len(p) != 4 { + countError("frame_rststream_bad_len") return nil, ConnectionError(ErrCodeFrameSize) } if fh.StreamID == 0 { + countError("frame_rststream_zero_stream") return nil, ConnectionError(ErrCodeProtocol) } return &RSTStreamFrame{fh, ErrCode(binary.BigEndian.Uint32(p[:4]))}, nil @@ -1202,8 +1231,9 @@ type ContinuationFrame struct { headerFragBuf []byte } -func parseContinuationFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) { +func parseContinuationFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { if fh.StreamID == 0 { + countError("frame_continuation_zero_stream") return nil, connError{ErrCodeProtocol, "CONTINUATION frame with stream ID 0"} } return &ContinuationFrame{fh, p}, nil @@ -1252,7 +1282,7 @@ func (f *PushPromiseFrame) HeadersEnded() bool { return f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders) } -func parsePushPromise(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) { +func parsePushPromise(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) { pp := &PushPromiseFrame{ FrameHeader: fh, } @@ -1263,6 +1293,7 @@ func parsePushPromise(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err err // with. If the stream identifier field specifies the value // 0x0, a recipient MUST respond with a connection error // (Section 5.4.1) of type PROTOCOL_ERROR. + countError("frame_pushpromise_zero_stream") return nil, ConnectionError(ErrCodeProtocol) } // The PUSH_PROMISE frame includes optional padding. @@ -1270,18 +1301,21 @@ func parsePushPromise(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err err var padLength uint8 if fh.Flags.Has(FlagPushPromisePadded) { if p, padLength, err = readByte(p); err != nil { + countError("frame_pushpromise_pad_short") return } } p, pp.PromiseID, err = readUint32(p) if err != nil { + countError("frame_pushpromise_promiseid_short") return } pp.PromiseID = pp.PromiseID & (1<<31 - 1) if int(padLength) > len(p) { // like the DATA frame, error out if padding is longer than the body. + countError("frame_pushpromise_pad_too_big") return nil, ConnectionError(ErrCodeProtocol) } pp.headerFragBuf = p[:len(p)-int(padLength)] diff --git a/vendor/golang.org/x/net/http2/go115.go b/vendor/golang.org/x/net/http2/go115.go new file mode 100644 index 00000000..908af1ab --- /dev/null +++ b/vendor/golang.org/x/net/http2/go115.go @@ -0,0 +1,27 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.15 +// +build go1.15 + +package http2 + +import ( + "context" + "crypto/tls" +) + +// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS +// connection. +func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { + dialer := &tls.Dialer{ + Config: cfg, + } + cn, err := dialer.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + tlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed + return tlsCn, nil +} diff --git a/vendor/golang.org/x/net/http2/headermap.go b/vendor/golang.org/x/net/http2/headermap.go index c3ff3fa1..9e12941d 100644 --- a/vendor/golang.org/x/net/http2/headermap.go +++ b/vendor/golang.org/x/net/http2/headermap.go @@ -6,7 +6,6 @@ package http2 import ( "net/http" - "strings" "sync" ) @@ -79,10 +78,10 @@ func buildCommonHeaderMaps() { } } -func lowerHeader(v string) string { +func lowerHeader(v string) (lower string, ascii bool) { buildCommonHeaderMapsOnce() if s, ok := commonLowerHeader[v]; ok { - return s + return s, true } - return strings.ToLower(v) + return asciiToLower(v) } diff --git a/vendor/golang.org/x/net/http2/hpack/huffman.go b/vendor/golang.org/x/net/http2/hpack/huffman.go index a1ab2f05..fe0b84cc 100644 --- a/vendor/golang.org/x/net/http2/hpack/huffman.go +++ b/vendor/golang.org/x/net/http2/hpack/huffman.go @@ -140,25 +140,29 @@ func buildRootHuffmanNode() { panic("unexpected size") } lazyRootHuffmanNode = newInternalNode() - for i, code := range huffmanCodes { - addDecoderNode(byte(i), code, huffmanCodeLen[i]) - } -} + // allocate a leaf node for each of the 256 symbols + leaves := new([256]node) + + for sym, code := range huffmanCodes { + codeLen := huffmanCodeLen[sym] + + cur := lazyRootHuffmanNode + for codeLen > 8 { + codeLen -= 8 + i := uint8(code >> codeLen) + if cur.children[i] == nil { + cur.children[i] = newInternalNode() + } + cur = cur.children[i] + } + shift := 8 - codeLen + start, end := int(uint8(code< 8 { - codeLen -= 8 - i := uint8(code >> codeLen) - if cur.children[i] == nil { - cur.children[i] = newInternalNode() + leaves[sym].sym = byte(sym) + leaves[sym].codeLen = codeLen + for i := start; i < start+end; i++ { + cur.children[i] = &leaves[sym] } - cur = cur.children[i] - } - shift := 8 - codeLen - start, end := int(uint8(code< 0 { sc.sendWindowUpdate(nil, int(diff)) @@ -866,6 +865,15 @@ func (sc *serverConn) serve() { case res := <-sc.wroteFrameCh: sc.wroteFrame(res) case res := <-sc.readFrameCh: + // Process any written frames before reading new frames from the client since a + // written frame could have triggered a new stream to be started. + if sc.writingFrameAsync { + select { + case wroteRes := <-sc.wroteFrameCh: + sc.wroteFrame(wroteRes) + default: + } + } if !sc.processFrameFromReader(res) { return } @@ -1400,7 +1408,7 @@ func (sc *serverConn) processFrame(f Frame) error { // First frame received must be SETTINGS. if !sc.sawFirstSettings { if _, ok := f.(*SettingsFrame); !ok { - return ConnectionError(ErrCodeProtocol) + return sc.countError("first_settings", ConnectionError(ErrCodeProtocol)) } sc.sawFirstSettings = true } @@ -1425,7 +1433,7 @@ func (sc *serverConn) processFrame(f Frame) error { case *PushPromiseFrame: // A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE // frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR. - return ConnectionError(ErrCodeProtocol) + return sc.countError("push_promise", ConnectionError(ErrCodeProtocol)) default: sc.vlogf("http2: server ignoring frame: %v", f.Header()) return nil @@ -1445,7 +1453,7 @@ func (sc *serverConn) processPing(f *PingFrame) error { // identifier field value other than 0x0, the recipient MUST // respond with a connection error (Section 5.4.1) of type // PROTOCOL_ERROR." - return ConnectionError(ErrCodeProtocol) + return sc.countError("ping_on_stream", ConnectionError(ErrCodeProtocol)) } if sc.inGoAway && sc.goAwayCode != ErrCodeNo { return nil @@ -1464,7 +1472,7 @@ func (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error { // or PRIORITY on a stream in this state MUST be // treated as a connection error (Section 5.4.1) of // type PROTOCOL_ERROR." - return ConnectionError(ErrCodeProtocol) + return sc.countError("stream_idle", ConnectionError(ErrCodeProtocol)) } if st == nil { // "WINDOW_UPDATE can be sent by a peer that has sent a @@ -1475,7 +1483,7 @@ func (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error { return nil } if !st.flow.add(int32(f.Increment)) { - return streamError(f.StreamID, ErrCodeFlowControl) + return sc.countError("bad_flow", streamError(f.StreamID, ErrCodeFlowControl)) } default: // connection-level flow control if !sc.flow.add(int32(f.Increment)) { @@ -1496,7 +1504,7 @@ func (sc *serverConn) processResetStream(f *RSTStreamFrame) error { // identifying an idle stream is received, the // recipient MUST treat this as a connection error // (Section 5.4.1) of type PROTOCOL_ERROR. - return ConnectionError(ErrCodeProtocol) + return sc.countError("reset_idle_stream", ConnectionError(ErrCodeProtocol)) } if st != nil { st.cancelCtx() @@ -1548,7 +1556,7 @@ func (sc *serverConn) processSettings(f *SettingsFrame) error { // Why is the peer ACKing settings we never sent? // The spec doesn't mention this case, but // hang up on them anyway. - return ConnectionError(ErrCodeProtocol) + return sc.countError("ack_mystery", ConnectionError(ErrCodeProtocol)) } return nil } @@ -1556,7 +1564,7 @@ func (sc *serverConn) processSettings(f *SettingsFrame) error { // This isn't actually in the spec, but hang up on // suspiciously large settings frames or those with // duplicate entries. - return ConnectionError(ErrCodeProtocol) + return sc.countError("settings_big_or_dups", ConnectionError(ErrCodeProtocol)) } if err := f.ForeachSetting(sc.processSetting); err != nil { return err @@ -1623,7 +1631,7 @@ func (sc *serverConn) processSettingInitialWindowSize(val uint32) error { // control window to exceed the maximum size as a // connection error (Section 5.4.1) of type // FLOW_CONTROL_ERROR." - return ConnectionError(ErrCodeFlowControl) + return sc.countError("setting_win_size", ConnectionError(ErrCodeFlowControl)) } } return nil @@ -1656,7 +1664,7 @@ func (sc *serverConn) processData(f *DataFrame) error { // or PRIORITY on a stream in this state MUST be // treated as a connection error (Section 5.4.1) of // type PROTOCOL_ERROR." - return ConnectionError(ErrCodeProtocol) + return sc.countError("data_on_idle", ConnectionError(ErrCodeProtocol)) } // "If a DATA frame is received whose stream is not in "open" @@ -1673,7 +1681,7 @@ func (sc *serverConn) processData(f *DataFrame) error { // and return any flow control bytes since we're not going // to consume them. if sc.inflow.available() < int32(f.Length) { - return streamError(id, ErrCodeFlowControl) + return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) } // Deduct the flow control from inflow, since we're // going to immediately add it back in @@ -1686,7 +1694,7 @@ func (sc *serverConn) processData(f *DataFrame) error { // Already have a stream error in flight. Don't send another. return nil } - return streamError(id, ErrCodeStreamClosed) + return sc.countError("closed", streamError(id, ErrCodeStreamClosed)) } if st.body == nil { panic("internal error: should have a body in this state") @@ -1698,12 +1706,12 @@ func (sc *serverConn) processData(f *DataFrame) error { // RFC 7540, sec 8.1.2.6: A request or response is also malformed if the // value of a content-length header field does not equal the sum of the // DATA frame payload lengths that form the body. - return streamError(id, ErrCodeProtocol) + return sc.countError("send_too_much", streamError(id, ErrCodeProtocol)) } if f.Length > 0 { // Check whether the client has flow control quota. if st.inflow.available() < int32(f.Length) { - return streamError(id, ErrCodeFlowControl) + return sc.countError("flow_on_data_length", streamError(id, ErrCodeFlowControl)) } st.inflow.take(int32(f.Length)) @@ -1711,7 +1719,7 @@ func (sc *serverConn) processData(f *DataFrame) error { wrote, err := st.body.Write(data) if err != nil { sc.sendWindowUpdate(nil, int(f.Length)-wrote) - return streamError(id, ErrCodeStreamClosed) + return sc.countError("body_write_err", streamError(id, ErrCodeStreamClosed)) } if wrote != len(data) { panic("internal error: bad Writer") @@ -1797,7 +1805,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // stream identifier MUST respond with a connection error // (Section 5.4.1) of type PROTOCOL_ERROR. if id%2 != 1 { - return ConnectionError(ErrCodeProtocol) + return sc.countError("headers_even", ConnectionError(ErrCodeProtocol)) } // A HEADERS frame can be used to create a new stream or // send a trailer for an open one. If we already have a stream @@ -1814,7 +1822,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // this state, it MUST respond with a stream error (Section 5.4.2) of // type STREAM_CLOSED. if st.state == stateHalfClosedRemote { - return streamError(id, ErrCodeStreamClosed) + return sc.countError("headers_half_closed", streamError(id, ErrCodeStreamClosed)) } return st.processTrailerHeaders(f) } @@ -1825,7 +1833,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // receives an unexpected stream identifier MUST respond with // a connection error (Section 5.4.1) of type PROTOCOL_ERROR. if id <= sc.maxClientStreamID { - return ConnectionError(ErrCodeProtocol) + return sc.countError("stream_went_down", ConnectionError(ErrCodeProtocol)) } sc.maxClientStreamID = id @@ -1842,14 +1850,14 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { if sc.curClientStreams+1 > sc.advMaxStreams { if sc.unackedSettings == 0 { // They should know better. - return streamError(id, ErrCodeProtocol) + return sc.countError("over_max_streams", streamError(id, ErrCodeProtocol)) } // Assume it's a network race, where they just haven't // received our last SETTINGS update. But actually // this can't happen yet, because we don't yet provide // a way for users to adjust server parameters at // runtime. - return streamError(id, ErrCodeRefusedStream) + return sc.countError("over_max_streams_race", streamError(id, ErrCodeRefusedStream)) } initialState := stateOpen @@ -1859,7 +1867,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { st := sc.newStream(id, 0, initialState) if f.HasPriority() { - if err := checkPriority(f.StreamID, f.Priority); err != nil { + if err := sc.checkPriority(f.StreamID, f.Priority); err != nil { return err } sc.writeSched.AdjustStream(st.id, f.Priority) @@ -1903,15 +1911,15 @@ func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { sc := st.sc sc.serveG.check() if st.gotTrailerHeader { - return ConnectionError(ErrCodeProtocol) + return sc.countError("dup_trailers", ConnectionError(ErrCodeProtocol)) } st.gotTrailerHeader = true if !f.StreamEnded() { - return streamError(st.id, ErrCodeProtocol) + return sc.countError("trailers_not_ended", streamError(st.id, ErrCodeProtocol)) } if len(f.PseudoFields()) > 0 { - return streamError(st.id, ErrCodeProtocol) + return sc.countError("trailers_pseudo", streamError(st.id, ErrCodeProtocol)) } if st.trailer != nil { for _, hf := range f.RegularFields() { @@ -1920,7 +1928,7 @@ func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { // TODO: send more details to the peer somehow. But http2 has // no way to send debug data at a stream level. Discuss with // HTTP folk. - return streamError(st.id, ErrCodeProtocol) + return sc.countError("trailers_bogus", streamError(st.id, ErrCodeProtocol)) } st.trailer[key] = append(st.trailer[key], hf.Value) } @@ -1929,13 +1937,13 @@ func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { return nil } -func checkPriority(streamID uint32, p PriorityParam) error { +func (sc *serverConn) checkPriority(streamID uint32, p PriorityParam) error { if streamID == p.StreamDep { // Section 5.3.1: "A stream cannot depend on itself. An endpoint MUST treat // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR." // Section 5.3.3 says that a stream can depend on one of its dependencies, // so it's only self-dependencies that are forbidden. - return streamError(streamID, ErrCodeProtocol) + return sc.countError("priority", streamError(streamID, ErrCodeProtocol)) } return nil } @@ -1944,7 +1952,7 @@ func (sc *serverConn) processPriority(f *PriorityFrame) error { if sc.inGoAway { return nil } - if err := checkPriority(f.StreamID, f.PriorityParam); err != nil { + if err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil { return err } sc.writeSched.AdjustStream(f.StreamID, f.PriorityParam) @@ -2001,7 +2009,7 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res isConnect := rp.method == "CONNECT" if isConnect { if rp.path != "" || rp.scheme != "" || rp.authority == "" { - return nil, nil, streamError(f.StreamID, ErrCodeProtocol) + return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) } } else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") { // See 8.1.2.6 Malformed Requests and Responses: @@ -2014,13 +2022,13 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res // "All HTTP/2 requests MUST include exactly one valid // value for the :method, :scheme, and :path // pseudo-header fields" - return nil, nil, streamError(f.StreamID, ErrCodeProtocol) + return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) } bodyOpen := !f.StreamEnded() if rp.method == "HEAD" && bodyOpen { // HEAD requests can't have bodies - return nil, nil, streamError(f.StreamID, ErrCodeProtocol) + return nil, nil, sc.countError("head_body", streamError(f.StreamID, ErrCodeProtocol)) } rp.header = make(http.Header) @@ -2103,7 +2111,7 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r var err error url_, err = url.ParseRequestURI(rp.path) if err != nil { - return nil, nil, streamError(st.id, ErrCodeProtocol) + return nil, nil, sc.countError("bad_path", streamError(st.id, ErrCodeProtocol)) } requestURI = rp.path } @@ -2789,8 +2797,12 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error { // but PUSH_PROMISE requests cannot have a body. // http://tools.ietf.org/html/rfc7540#section-8.2 // Also disallow Host, since the promised URL must be absolute. - switch strings.ToLower(k) { - case "content-length", "content-encoding", "trailer", "te", "expect", "host": + if asciiEqualFold(k, "content-length") || + asciiEqualFold(k, "content-encoding") || + asciiEqualFold(k, "trailer") || + asciiEqualFold(k, "te") || + asciiEqualFold(k, "expect") || + asciiEqualFold(k, "host") { return fmt.Errorf("promised request headers cannot include %q", k) } } @@ -2982,3 +2994,31 @@ func h1ServerKeepAlivesDisabled(hs *http.Server) bool { } return false } + +func (sc *serverConn) countError(name string, err error) error { + if sc == nil || sc.srv == nil { + return err + } + f := sc.srv.CountError + if f == nil { + return err + } + var typ string + var code ErrCode + switch e := err.(type) { + case ConnectionError: + typ = "conn" + code = ErrCode(e) + case StreamError: + typ = "stream" + code = ErrCode(e.Code) + default: + return err + } + codeStr := errCodeName[code] + if codeStr == "" { + codeStr = strconv.Itoa(int(code)) + } + f(fmt.Sprintf("%s_%s_%s", typ, codeStr, name)) + return err +} diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index 7688d72c..d9c528e9 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -24,6 +24,7 @@ import ( "net/http" "net/http/httptrace" "net/textproto" + "os" "sort" "strconv" "strings" @@ -51,6 +52,15 @@ const ( transportDefaultStreamMinRefresh = 4 << 10 defaultUserAgent = "Go-http-client/2.0" + + // initialMaxConcurrentStreams is a connections maxConcurrentStreams until + // it's received servers initial SETTINGS frame, which corresponds with the + // spec's minimum recommended value. + initialMaxConcurrentStreams = 100 + + // defaultMaxConcurrentStreams is a connections default maxConcurrentStreams + // if the server doesn't include one in its initial SETTINGS frame. + defaultMaxConcurrentStreams = 1000 ) // Transport is an HTTP/2 Transport. @@ -121,6 +131,17 @@ type Transport struct { // Defaults to 15s. PingTimeout time.Duration + // WriteByteTimeout is the timeout after which the connection will be + // closed no data can be written to it. The timeout begins when data is + // available to write, and is extended whenever any bytes are written. + WriteByteTimeout time.Duration + + // CountError, if non-nil, is called on HTTP/2 transport errors. + // It's intended to increment a metric for monitoring, such + // as an expvar or Prometheus metric. + // The errType consists of only ASCII word characters. + CountError func(errType string) + // t1, if non-nil, is the standard library Transport using // this transport. Its settings are used (but not its // RoundTrip method, etc). @@ -227,11 +248,12 @@ func (t *Transport) initConnPool() { // ClientConn is the state of a single HTTP/2 client connection to an // HTTP/2 server. type ClientConn struct { - t *Transport - tconn net.Conn // usually *tls.Conn, except specialized impls - tlsState *tls.ConnectionState // nil only for specialized impls - reused uint32 // whether conn is being reused; atomic - singleUse bool // whether being used for a single http.Request + t *Transport + tconn net.Conn // usually *tls.Conn, except specialized impls + tlsState *tls.ConnectionState // nil only for specialized impls + reused uint32 // whether conn is being reused; atomic + singleUse bool // whether being used for a single http.Request + getConnCalled bool // used by clientConnPool // readLoop goroutine fields: readerDone chan struct{} // closed on error @@ -244,87 +266,94 @@ type ClientConn struct { cond *sync.Cond // hold mu; broadcast on flow/closed changes flow flow // our conn-level flow control quota (cs.flow is per stream) inflow flow // peer's conn-level flow control + doNotReuse bool // whether conn is marked to not be reused for any future requests closing bool closed bool + seenSettings bool // true if we've seen a settings frame, false otherwise wantSettingsAck bool // we sent a SETTINGS frame and haven't heard back goAway *GoAwayFrame // if non-nil, the GoAwayFrame we received goAwayDebug string // goAway frame's debug data, retained as a string streams map[uint32]*clientStream // client-initiated + streamsReserved int // incr by ReserveNewRequest; decr on RoundTrip nextStreamID uint32 pendingRequests int // requests blocked and waiting to be sent because len(streams) == maxConcurrentStreams pings map[[8]byte]chan struct{} // in flight ping data to notification channel - bw *bufio.Writer br *bufio.Reader - fr *Framer lastActive time.Time lastIdle time.Time // time last idle - // Settings from peer: (also guarded by mu) + // Settings from peer: (also guarded by wmu) maxFrameSize uint32 maxConcurrentStreams uint32 peerMaxHeaderListSize uint64 initialWindowSize uint32 - hbuf bytes.Buffer // HPACK encoder writes into this - henc *hpack.Encoder - freeBuf [][]byte + // reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests. + // Write to reqHeaderMu to lock it, read from it to unlock. + // Lock reqmu BEFORE mu or wmu. + reqHeaderMu chan struct{} - wmu sync.Mutex // held while writing; acquire AFTER mu if holding both - werr error // first write error that has occurred + // wmu is held while writing. + // Acquire BEFORE mu when holding both, to avoid blocking mu on network writes. + // Only acquire both at the same time when changing peer settings. + wmu sync.Mutex + bw *bufio.Writer + fr *Framer + werr error // first write error that has occurred + hbuf bytes.Buffer // HPACK encoder writes into this + henc *hpack.Encoder } // clientStream is the state for a single HTTP/2 stream. One of these // is created for each Transport.RoundTrip call. type clientStream struct { - cc *ClientConn - req *http.Request + cc *ClientConn + + // Fields of Request that we may access even after the response body is closed. + ctx context.Context + reqCancel <-chan struct{} + trace *httptrace.ClientTrace // or nil ID uint32 - resc chan resAndError bufPipe pipe // buffered pipe with the flow-controlled response payload - startedWrite bool // started request body write; guarded by cc.mu requestedGzip bool - on100 func() // optional code to run if get a 100 continue response + isHead bool + + abortOnce sync.Once + abort chan struct{} // closed to signal stream should end immediately + abortErr error // set if abort is closed + + peerClosed chan struct{} // closed when the peer sends an END_STREAM flag + donec chan struct{} // closed after the stream is in the closed state + on100 chan struct{} // buffered; written to if a 100 is received + + respHeaderRecv chan struct{} // closed when headers are received + res *http.Response // set if respHeaderRecv is closed flow flow // guarded by cc.mu inflow flow // guarded by cc.mu bytesRemain int64 // -1 means unknown; owned by transportResponseBody.Read readErr error // sticky read error; owned by transportResponseBody.Read - stopReqBody error // if non-nil, stop writing req body; guarded by cc.mu - didReset bool // whether we sent a RST_STREAM to the server; guarded by cc.mu - peerReset chan struct{} // closed on peer reset - resetErr error // populated before peerReset is closed + reqBody io.ReadCloser + reqBodyContentLength int64 // -1 means unknown + reqBodyClosed bool // body has been closed; guarded by cc.mu - done chan struct{} // closed when stream remove from cc.streams map; close calls guarded by cc.mu + // owned by writeRequest: + sentEndStream bool // sent an END_STREAM flag to the peer + sentHeaders bool // owned by clientConnReadLoop: firstByte bool // got the first response byte pastHeaders bool // got first MetaHeadersFrame (actual headers) pastTrailers bool // got optional second MetaHeadersFrame (trailers) num1xx uint8 // number of 1xx responses seen + readClosed bool // peer sent an END_STREAM flag + readAborted bool // read loop reset the stream trailer http.Header // accumulated trailers resTrailer *http.Header // client's Response.Trailer } -// awaitRequestCancel waits for the user to cancel a request or for the done -// channel to be signaled. A non-nil error is returned only if the request was -// canceled. -func awaitRequestCancel(req *http.Request, done <-chan struct{}) error { - ctx := req.Context() - if req.Cancel == nil && ctx.Done() == nil { - return nil - } - select { - case <-req.Cancel: - return errRequestCanceled - case <-ctx.Done(): - return ctx.Err() - case <-done: - return nil - } -} - var got1xxFuncForTests func(int, textproto.MIMEHeader) error // get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func, @@ -336,73 +365,65 @@ func (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error return traceGot1xxResponseFunc(cs.trace) } -// awaitRequestCancel waits for the user to cancel a request, its context to -// expire, or for the request to be done (any way it might be removed from the -// cc.streams map: peer reset, successful completion, TCP connection breakage, -// etc). If the request is canceled, then cs will be canceled and closed. -func (cs *clientStream) awaitRequestCancel(req *http.Request) { - if err := awaitRequestCancel(req, cs.done); err != nil { - cs.cancelStream() - cs.bufPipe.CloseWithError(err) - } +func (cs *clientStream) abortStream(err error) { + cs.cc.mu.Lock() + defer cs.cc.mu.Unlock() + cs.abortStreamLocked(err) } -func (cs *clientStream) cancelStream() { - cc := cs.cc - cc.mu.Lock() - didReset := cs.didReset - cs.didReset = true - cc.mu.Unlock() - - if !didReset { - cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) - cc.forgetStreamID(cs.ID) +func (cs *clientStream) abortStreamLocked(err error) { + cs.abortOnce.Do(func() { + cs.abortErr = err + close(cs.abort) + }) + if cs.reqBody != nil && !cs.reqBodyClosed { + cs.reqBody.Close() + cs.reqBodyClosed = true } -} - -// checkResetOrDone reports any error sent in a RST_STREAM frame by the -// server, or errStreamClosed if the stream is complete. -func (cs *clientStream) checkResetOrDone() error { - select { - case <-cs.peerReset: - return cs.resetErr - case <-cs.done: - return errStreamClosed - default: - return nil + // TODO(dneil): Clean up tests where cs.cc.cond is nil. + if cs.cc.cond != nil { + // Wake up writeRequestBody if it is waiting on flow control. + cs.cc.cond.Broadcast() } } -func (cs *clientStream) getStartedWrite() bool { +func (cs *clientStream) abortRequestBodyWrite() { cc := cs.cc cc.mu.Lock() defer cc.mu.Unlock() - return cs.startedWrite -} - -func (cs *clientStream) abortRequestBodyWrite(err error) { - if err == nil { - panic("nil error") + if cs.reqBody != nil && !cs.reqBodyClosed { + cs.reqBody.Close() + cs.reqBodyClosed = true + cc.cond.Broadcast() } - cc := cs.cc - cc.mu.Lock() - cs.stopReqBody = err - cc.cond.Broadcast() - cc.mu.Unlock() } type stickyErrWriter struct { - w io.Writer - err *error + conn net.Conn + timeout time.Duration + err *error } func (sew stickyErrWriter) Write(p []byte) (n int, err error) { if *sew.err != nil { return 0, *sew.err } - n, err = sew.w.Write(p) - *sew.err = err - return + for { + if sew.timeout != 0 { + sew.conn.SetWriteDeadline(time.Now().Add(sew.timeout)) + } + nn, err := sew.conn.Write(p[n:]) + n += nn + if n < len(p) && nn > 0 && errors.Is(err, os.ErrDeadlineExceeded) { + // Keep extending the deadline so long as we're making progress. + continue + } + if sew.timeout != 0 { + sew.conn.SetWriteDeadline(time.Time{}) + } + *sew.err = err + return n, err + } } // noCachedConnError is the concrete type of ErrNoCachedConn, which @@ -475,9 +496,9 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res } reused := !atomic.CompareAndSwapUint32(&cc.reused, 0, 1) traceGotConn(req, cc, reused) - res, gotErrAfterReqBodyWrite, err := cc.roundTrip(req) + res, err := cc.RoundTrip(req) if err != nil && retry <= 6 { - if req, err = shouldRetryRequest(req, err, gotErrAfterReqBodyWrite); err == nil { + if req, err = shouldRetryRequest(req, err); err == nil { // After the first retry, do exponential backoff with 10% jitter. if retry == 0 { continue @@ -488,7 +509,7 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res case <-time.After(time.Second * time.Duration(backoff)): continue case <-req.Context().Done(): - return nil, req.Context().Err() + err = req.Context().Err() } } } @@ -519,7 +540,7 @@ var ( // response headers. It is always called with a non-nil error. // It returns either a request to retry (either the same request, or a // modified clone), or an error if the request can't be replayed. -func shouldRetryRequest(req *http.Request, err error, afterBodyWrite bool) (*http.Request, error) { +func shouldRetryRequest(req *http.Request, err error) (*http.Request, error) { if !canRetryError(err) { return nil, err } @@ -532,7 +553,6 @@ func shouldRetryRequest(req *http.Request, err error, afterBodyWrite bool) (*htt // If the request body can be reset back to its original // state via the optional req.GetBody, do that. if req.GetBody != nil { - // TODO: consider a req.Body.Close here? or audit that all caller paths do? body, err := req.GetBody() if err != nil { return nil, err @@ -544,10 +564,8 @@ func shouldRetryRequest(req *http.Request, err error, afterBodyWrite bool) (*htt // The Request.Body can't reset back to the beginning, but we // don't seem to have started to read from it yet, so reuse - // the request directly. The "afterBodyWrite" means the - // bodyWrite process has started, which becomes true before - // the first Read. - if !afterBodyWrite { + // the request directly. + if err == errClientConnUnusable { return req, nil } @@ -559,17 +577,21 @@ func canRetryError(err error) bool { return true } if se, ok := err.(StreamError); ok { + if se.Code == ErrCodeProtocol && se.Cause == errFromPeer { + // See golang/go#47635, golang/go#42777 + return true + } return se.Code == ErrCodeRefusedStream } return false } -func (t *Transport) dialClientConn(addr string, singleUse bool) (*ClientConn, error) { +func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { host, _, err := net.SplitHostPort(addr) if err != nil { return nil, err } - tconn, err := t.dialTLS()("tcp", addr, t.newTLSConfig(host)) + tconn, err := t.dialTLS(ctx)("tcp", addr, t.newTLSConfig(host)) if err != nil { return nil, err } @@ -590,34 +612,24 @@ func (t *Transport) newTLSConfig(host string) *tls.Config { return cfg } -func (t *Transport) dialTLS() func(string, string, *tls.Config) (net.Conn, error) { +func (t *Transport) dialTLS(ctx context.Context) func(string, string, *tls.Config) (net.Conn, error) { if t.DialTLS != nil { return t.DialTLS } - return t.dialTLSDefault -} - -func (t *Transport) dialTLSDefault(network, addr string, cfg *tls.Config) (net.Conn, error) { - cn, err := tls.Dial(network, addr, cfg) - if err != nil { - return nil, err - } - if err := cn.Handshake(); err != nil { - return nil, err - } - if !cfg.InsecureSkipVerify { - if err := cn.VerifyHostname(cfg.ServerName); err != nil { + return func(network, addr string, cfg *tls.Config) (net.Conn, error) { + tlsCn, err := t.dialTLSWithContext(ctx, network, addr, cfg) + if err != nil { return nil, err } + state := tlsCn.ConnectionState() + if p := state.NegotiatedProtocol; p != NextProtoTLS { + return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) + } + if !state.NegotiatedProtocolIsMutual { + return nil, errors.New("http2: could not negotiate protocol mutually") + } + return tlsCn, nil } - state := cn.ConnectionState() - if p := state.NegotiatedProtocol; p != NextProtoTLS { - return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) - } - if !state.NegotiatedProtocolIsMutual { - return nil, errors.New("http2: could not negotiate protocol mutually") - } - return cn, nil } // disableKeepAlives reports whether connections should be closed as @@ -643,14 +655,15 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro tconn: c, readerDone: make(chan struct{}), nextStreamID: 1, - maxFrameSize: 16 << 10, // spec default - initialWindowSize: 65535, // spec default - maxConcurrentStreams: 1000, // "infinite", per spec. 1000 seems good enough. - peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. + maxFrameSize: 16 << 10, // spec default + initialWindowSize: 65535, // spec default + maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. + peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. streams: make(map[uint32]*clientStream), singleUse: singleUse, wantSettingsAck: true, pings: make(map[[8]byte]chan struct{}), + reqHeaderMu: make(chan struct{}, 1), } if d := t.idleConnTimeout(); d != 0 { cc.idleTimeout = d @@ -665,9 +678,16 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro // TODO: adjust this writer size to account for frame size + // MTU + crypto/tls record padding. - cc.bw = bufio.NewWriter(stickyErrWriter{c, &cc.werr}) + cc.bw = bufio.NewWriter(stickyErrWriter{ + conn: c, + timeout: t.WriteByteTimeout, + err: &cc.werr, + }) cc.br = bufio.NewReader(c) cc.fr = NewFramer(cc.bw, cc.br) + if t.CountError != nil { + cc.fr.countError = t.CountError + } cc.fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil) cc.fr.MaxHeaderListSize = t.maxHeaderListSize() @@ -720,6 +740,13 @@ func (cc *ClientConn) healthCheck() { } } +// SetDoNotReuse marks cc as not reusable for future HTTP requests. +func (cc *ClientConn) SetDoNotReuse() { + cc.mu.Lock() + defer cc.mu.Unlock() + cc.doNotReuse = true +} + func (cc *ClientConn) setGoAway(f *GoAwayFrame) { cc.mu.Lock() defer cc.mu.Unlock() @@ -737,27 +764,94 @@ func (cc *ClientConn) setGoAway(f *GoAwayFrame) { last := f.LastStreamID for streamID, cs := range cc.streams { if streamID > last { - select { - case cs.resc <- resAndError{err: errClientConnGotGoAway}: - default: - } + cs.abortStreamLocked(errClientConnGotGoAway) } } } // CanTakeNewRequest reports whether the connection can take a new request, // meaning it has not been closed or received or sent a GOAWAY. +// +// If the caller is going to immediately make a new request on this +// connection, use ReserveNewRequest instead. func (cc *ClientConn) CanTakeNewRequest() bool { cc.mu.Lock() defer cc.mu.Unlock() return cc.canTakeNewRequestLocked() } +// ReserveNewRequest is like CanTakeNewRequest but also reserves a +// concurrent stream in cc. The reservation is decremented on the +// next call to RoundTrip. +func (cc *ClientConn) ReserveNewRequest() bool { + cc.mu.Lock() + defer cc.mu.Unlock() + if st := cc.idleStateLocked(); !st.canTakeNewRequest { + return false + } + cc.streamsReserved++ + return true +} + +// ClientConnState describes the state of a ClientConn. +type ClientConnState struct { + // Closed is whether the connection is closed. + Closed bool + + // Closing is whether the connection is in the process of + // closing. It may be closing due to shutdown, being a + // single-use connection, being marked as DoNotReuse, or + // having received a GOAWAY frame. + Closing bool + + // StreamsActive is how many streams are active. + StreamsActive int + + // StreamsReserved is how many streams have been reserved via + // ClientConn.ReserveNewRequest. + StreamsReserved int + + // StreamsPending is how many requests have been sent in excess + // of the peer's advertised MaxConcurrentStreams setting and + // are waiting for other streams to complete. + StreamsPending int + + // MaxConcurrentStreams is how many concurrent streams the + // peer advertised as acceptable. Zero means no SETTINGS + // frame has been received yet. + MaxConcurrentStreams uint32 + + // LastIdle, if non-zero, is when the connection last + // transitioned to idle state. + LastIdle time.Time +} + +// State returns a snapshot of cc's state. +func (cc *ClientConn) State() ClientConnState { + cc.wmu.Lock() + maxConcurrent := cc.maxConcurrentStreams + if !cc.seenSettings { + maxConcurrent = 0 + } + cc.wmu.Unlock() + + cc.mu.Lock() + defer cc.mu.Unlock() + return ClientConnState{ + Closed: cc.closed, + Closing: cc.closing || cc.singleUse || cc.doNotReuse || cc.goAway != nil, + StreamsActive: len(cc.streams), + StreamsReserved: cc.streamsReserved, + StreamsPending: cc.pendingRequests, + LastIdle: cc.lastIdle, + MaxConcurrentStreams: maxConcurrent, + } +} + // clientConnIdleState describes the suitability of a client // connection to initiate a new RoundTrip request. type clientConnIdleState struct { canTakeNewRequest bool - freshConn bool // whether it's unused by any previous request } func (cc *ClientConn) idleState() clientConnIdleState { @@ -778,13 +872,13 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { // writing it. maxConcurrentOkay = true } else { - maxConcurrentOkay = int64(len(cc.streams)+1) < int64(cc.maxConcurrentStreams) + maxConcurrentOkay = int64(len(cc.streams)+cc.streamsReserved+1) <= int64(cc.maxConcurrentStreams) } st.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing && maxConcurrentOkay && + !cc.doNotReuse && int64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 && !cc.tooIdleLocked() - st.freshConn = cc.nextStreamID == 1 && st.canTakeNewRequest return } @@ -815,7 +909,7 @@ func (cc *ClientConn) onIdleTimeout() { func (cc *ClientConn) closeIfIdle() { cc.mu.Lock() - if len(cc.streams) > 0 { + if len(cc.streams) > 0 || cc.streamsReserved > 0 { cc.mu.Unlock() return } @@ -830,9 +924,15 @@ func (cc *ClientConn) closeIfIdle() { cc.tconn.Close() } +func (cc *ClientConn) isDoNotReuseAndIdle() bool { + cc.mu.Lock() + defer cc.mu.Unlock() + return cc.doNotReuse && len(cc.streams) == 0 +} + var shutdownEnterWaitStateHook = func() {} -// Shutdown gracefully close the client connection, waiting for running streams to complete. +// Shutdown gracefully closes the client connection, waiting for running streams to complete. func (cc *ClientConn) Shutdown(ctx context.Context) error { if err := cc.sendGoAway(); err != nil { return err @@ -871,15 +971,18 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { func (cc *ClientConn) sendGoAway() error { cc.mu.Lock() - defer cc.mu.Unlock() - cc.wmu.Lock() - defer cc.wmu.Unlock() - if cc.closing { + closing := cc.closing + cc.closing = true + maxStreamID := cc.nextStreamID + cc.mu.Unlock() + if closing { // GOAWAY sent already return nil } + + cc.wmu.Lock() + defer cc.wmu.Unlock() // Send a graceful shutdown frame to server - maxStreamID := cc.nextStreamID if err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil { return err } @@ -887,7 +990,6 @@ func (cc *ClientConn) sendGoAway() error { return err } // Prevent new requests - cc.closing = true return nil } @@ -895,17 +997,12 @@ func (cc *ClientConn) sendGoAway() error { // err is sent to streams. func (cc *ClientConn) closeForError(err error) error { cc.mu.Lock() + cc.closed = true + for _, cs := range cc.streams { + cs.abortStreamLocked(err) + } defer cc.cond.Broadcast() defer cc.mu.Unlock() - for id, cs := range cc.streams { - select { - case cs.resc <- resAndError{err: err}: - default: - } - cs.bufPipe.CloseWithError(err) - delete(cc.streams, id) - } - cc.closed = true return cc.tconn.Close() } @@ -920,47 +1017,10 @@ func (cc *ClientConn) Close() error { // closes the client connection immediately. In-flight requests are interrupted. func (cc *ClientConn) closeForLostPing() error { err := errors.New("http2: client connection lost") - return cc.closeForError(err) -} - -const maxAllocFrameSize = 512 << 10 - -// frameBuffer returns a scratch buffer suitable for writing DATA frames. -// They're capped at the min of the peer's max frame size or 512KB -// (kinda arbitrarily), but definitely capped so we don't allocate 4GB -// bufers. -func (cc *ClientConn) frameScratchBuffer() []byte { - cc.mu.Lock() - size := cc.maxFrameSize - if size > maxAllocFrameSize { - size = maxAllocFrameSize - } - for i, buf := range cc.freeBuf { - if len(buf) >= int(size) { - cc.freeBuf[i] = nil - cc.mu.Unlock() - return buf[:size] - } - } - cc.mu.Unlock() - return make([]byte, size) -} - -func (cc *ClientConn) putFrameScratchBuffer(buf []byte) { - cc.mu.Lock() - defer cc.mu.Unlock() - const maxBufs = 4 // arbitrary; 4 concurrent requests per conn? investigate. - if len(cc.freeBuf) < maxBufs { - cc.freeBuf = append(cc.freeBuf, buf) - return + if f := cc.t.CountError; f != nil { + f("conn_close_lost_ping") } - for i, old := range cc.freeBuf { - if old == nil { - cc.freeBuf[i] = buf - return - } - } - // forget about it. + return cc.closeForError(err) } // errRequestCanceled is a copy of net/http's errRequestCanceled because it's not @@ -1005,7 +1065,7 @@ func checkConnHeaders(req *http.Request) error { if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv) } - if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !strings.EqualFold(vv[0], "close") && !strings.EqualFold(vv[0], "keep-alive")) { + if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { return fmt.Errorf("http2: invalid Connection request header: %q", vv) } return nil @@ -1024,41 +1084,142 @@ func actualContentLength(req *http.Request) int64 { return -1 } +func (cc *ClientConn) decrStreamReservations() { + cc.mu.Lock() + defer cc.mu.Unlock() + cc.decrStreamReservationsLocked() +} + +func (cc *ClientConn) decrStreamReservationsLocked() { + if cc.streamsReserved > 0 { + cc.streamsReserved-- + } +} + func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { - resp, _, err := cc.roundTrip(req) - return resp, err + ctx := req.Context() + cs := &clientStream{ + cc: cc, + ctx: ctx, + reqCancel: req.Cancel, + isHead: req.Method == "HEAD", + reqBody: req.Body, + reqBodyContentLength: actualContentLength(req), + trace: httptrace.ContextClientTrace(ctx), + peerClosed: make(chan struct{}), + abort: make(chan struct{}), + respHeaderRecv: make(chan struct{}), + donec: make(chan struct{}), + } + go cs.doRequest(req) + + waitDone := func() error { + select { + case <-cs.donec: + return nil + case <-ctx.Done(): + return ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled + } + } + + for { + select { + case <-cs.respHeaderRecv: + res := cs.res + if res.StatusCode > 299 { + // On error or status code 3xx, 4xx, 5xx, etc abort any + // ongoing write, assuming that the server doesn't care + // about our request body. If the server replied with 1xx or + // 2xx, however, then assume the server DOES potentially + // want our body (e.g. full-duplex streaming: + // golang.org/issue/13444). If it turns out the server + // doesn't, they'll RST_STREAM us soon enough. This is a + // heuristic to avoid adding knobs to Transport. Hopefully + // we can keep it. + cs.abortRequestBodyWrite() + } + res.Request = req + res.TLS = cc.tlsState + if res.Body == noBody && actualContentLength(req) == 0 { + // If there isn't a request or response body still being + // written, then wait for the stream to be closed before + // RoundTrip returns. + if err := waitDone(); err != nil { + return nil, err + } + } + return res, nil + case <-cs.abort: + waitDone() + return nil, cs.abortErr + case <-ctx.Done(): + err := ctx.Err() + cs.abortStream(err) + return nil, err + case <-cs.reqCancel: + cs.abortStream(errRequestCanceled) + return nil, errRequestCanceled + } + } +} + +// doRequest runs for the duration of the request lifetime. +// +// It sends the request and performs post-request cleanup (closing Request.Body, etc.). +func (cs *clientStream) doRequest(req *http.Request) { + err := cs.writeRequest(req) + cs.cleanupWriteRequest(err) } -func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAfterReqBodyWrite bool, err error) { +// writeRequest sends a request. +// +// It returns nil after the request is written, the response read, +// and the request stream is half-closed by the peer. +// +// It returns non-nil if the request ends otherwise. +// If the returned error is StreamError, the error Code may be used in resetting the stream. +func (cs *clientStream) writeRequest(req *http.Request) (err error) { + cc := cs.cc + ctx := cs.ctx + if err := checkConnHeaders(req); err != nil { - return nil, false, err - } - if cc.idleTimer != nil { - cc.idleTimer.Stop() + return err } - trailers, err := commaSeparatedTrailers(req) - if err != nil { - return nil, false, err + // Acquire the new-request lock by writing to reqHeaderMu. + // This lock guards the critical section covering allocating a new stream ID + // (requires mu) and creating the stream (requires wmu). + if cc.reqHeaderMu == nil { + panic("RoundTrip on uninitialized ClientConn") // for tests + } + select { + case cc.reqHeaderMu <- struct{}{}: + case <-cs.reqCancel: + return errRequestCanceled + case <-ctx.Done(): + return ctx.Err() } - hasTrailers := trailers != "" cc.mu.Lock() - if err := cc.awaitOpenSlotForRequest(req); err != nil { + if cc.idleTimer != nil { + cc.idleTimer.Stop() + } + cc.decrStreamReservationsLocked() + if err := cc.awaitOpenSlotForStreamLocked(cs); err != nil { cc.mu.Unlock() - return nil, false, err + <-cc.reqHeaderMu + return err } - - body := req.Body - contentLen := actualContentLength(req) - hasBody := contentLen != 0 + cc.addStreamLocked(cs) // assigns stream ID + cc.mu.Unlock() // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? - var requestedGzip bool if !cc.t.disableCompression() && req.Header.Get("Accept-Encoding") == "" && req.Header.Get("Range") == "" && - req.Method != "HEAD" { + !cs.isHead { // Request gzip only, not deflate. Deflate is ambiguous and // not as universally supported anyway. // See: https://zlib.net/zlib_faq.html#faq39 @@ -1071,195 +1232,223 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf // We don't request gzip if the request is for a range, since // auto-decoding a portion of a gzipped document will just fail // anyway. See https://golang.org/issue/8923 - requestedGzip = true + cs.requestedGzip = true } - // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is - // sent by writeRequestBody below, along with any Trailers, - // again in form HEADERS{1}, CONTINUATION{0,}) - hdrs, err := cc.encodeHeaders(req, requestedGzip, trailers, contentLen) - if err != nil { - cc.mu.Unlock() - return nil, false, err + continueTimeout := cc.t.expectContinueTimeout() + if continueTimeout != 0 && + !httpguts.HeaderValuesContainsToken( + req.Header["Expect"], + "100-continue") { + continueTimeout = 0 + cs.on100 = make(chan struct{}, 1) } - cs := cc.newStream() - cs.req = req - cs.trace = httptrace.ContextClientTrace(req.Context()) - cs.requestedGzip = requestedGzip - bodyWriter := cc.t.getBodyWriterState(cs, body) - cs.on100 = bodyWriter.on100 + // Past this point (where we send request headers), it is possible for + // RoundTrip to return successfully. Since the RoundTrip contract permits + // the caller to "mutate or reuse" the Request after closing the Response's Body, + // we must take care when referencing the Request from here on. + err = cs.encodeAndWriteHeaders(req) + <-cc.reqHeaderMu + if err != nil { + return err + } - defer func() { - cc.wmu.Lock() - werr := cc.werr - cc.wmu.Unlock() - if werr != nil { - cc.Close() + hasBody := cs.reqBodyContentLength != 0 + if !hasBody { + cs.sentEndStream = true + } else { + if continueTimeout != 0 { + traceWait100Continue(cs.trace) + timer := time.NewTimer(continueTimeout) + select { + case <-timer.C: + err = nil + case <-cs.on100: + err = nil + case <-cs.abort: + err = cs.abortErr + case <-ctx.Done(): + err = ctx.Err() + case <-cs.reqCancel: + err = errRequestCanceled + } + timer.Stop() + if err != nil { + traceWroteRequest(cs.trace, err) + return err + } } - }() - - cc.wmu.Lock() - endStream := !hasBody && !hasTrailers - werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) - cc.wmu.Unlock() - traceWroteHeaders(cs.trace) - cc.mu.Unlock() - if werr != nil { - if hasBody { - req.Body.Close() // per RoundTripper contract - bodyWriter.cancel() + if err = cs.writeRequestBody(req); err != nil { + if err != errStopReqBodyWrite { + traceWroteRequest(cs.trace, err) + return err + } + } else { + cs.sentEndStream = true } - cc.forgetStreamID(cs.ID) - // Don't bother sending a RST_STREAM (our write already failed; - // no need to keep writing) - traceWroteRequest(cs.trace, werr) - return nil, false, werr } + traceWroteRequest(cs.trace, err) + var respHeaderTimer <-chan time.Time - if hasBody { - bodyWriter.scheduleBodyWrite() - } else { - traceWroteRequest(cs.trace, nil) - if d := cc.responseHeaderTimeout(); d != 0 { - timer := time.NewTimer(d) - defer timer.Stop() - respHeaderTimer = timer.C + var respHeaderRecv chan struct{} + if d := cc.responseHeaderTimeout(); d != 0 { + timer := time.NewTimer(d) + defer timer.Stop() + respHeaderTimer = timer.C + respHeaderRecv = cs.respHeaderRecv + } + // Wait until the peer half-closes its end of the stream, + // or until the request is aborted (via context, error, or otherwise), + // whichever comes first. + for { + select { + case <-cs.peerClosed: + return nil + case <-respHeaderTimer: + return errTimeout + case <-respHeaderRecv: + respHeaderTimer = nil // keep waiting for END_STREAM + case <-cs.abort: + return cs.abortErr + case <-ctx.Done(): + return ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled } } +} - readLoopResCh := cs.resc - bodyWritten := false - ctx := req.Context() +func (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error { + cc := cs.cc + ctx := cs.ctx - handleReadLoopResponse := func(re resAndError) (*http.Response, bool, error) { - res := re.res - if re.err != nil || res.StatusCode > 299 { - // On error or status code 3xx, 4xx, 5xx, etc abort any - // ongoing write, assuming that the server doesn't care - // about our request body. If the server replied with 1xx or - // 2xx, however, then assume the server DOES potentially - // want our body (e.g. full-duplex streaming: - // golang.org/issue/13444). If it turns out the server - // doesn't, they'll RST_STREAM us soon enough. This is a - // heuristic to avoid adding knobs to Transport. Hopefully - // we can keep it. - bodyWriter.cancel() - cs.abortRequestBodyWrite(errStopReqBodyWrite) - if hasBody && !bodyWritten { - <-bodyWriter.resc - } - } - if re.err != nil { - cc.forgetStreamID(cs.ID) - return nil, cs.getStartedWrite(), re.err - } - res.Request = req - res.TLS = cc.tlsState - return res, false, nil + cc.wmu.Lock() + defer cc.wmu.Unlock() + + // If the request was canceled while waiting for cc.mu, just quit. + select { + case <-cs.abort: + return cs.abortErr + case <-ctx.Done(): + return ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled + default: } - for { + // Encode headers. + // + // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is + // sent by writeRequestBody below, along with any Trailers, + // again in form HEADERS{1}, CONTINUATION{0,}) + trailers, err := commaSeparatedTrailers(req) + if err != nil { + return err + } + hasTrailers := trailers != "" + contentLen := actualContentLength(req) + hasBody := contentLen != 0 + hdrs, err := cc.encodeHeaders(req, cs.requestedGzip, trailers, contentLen) + if err != nil { + return err + } + + // Write the request. + endStream := !hasBody && !hasTrailers + cs.sentHeaders = true + err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) + traceWroteHeaders(cs.trace) + return err +} + +// cleanupWriteRequest performs post-request tasks. +// +// If err (the result of writeRequest) is non-nil and the stream is not closed, +// cleanupWriteRequest will send a reset to the peer. +func (cs *clientStream) cleanupWriteRequest(err error) { + cc := cs.cc + + if cs.ID == 0 { + // We were canceled before creating the stream, so return our reservation. + cc.decrStreamReservations() + } + + // TODO: write h12Compare test showing whether + // Request.Body is closed by the Transport, + // and in multiple cases: server replies <=299 and >299 + // while still writing request body + cc.mu.Lock() + bodyClosed := cs.reqBodyClosed + cs.reqBodyClosed = true + cc.mu.Unlock() + if !bodyClosed && cs.reqBody != nil { + cs.reqBody.Close() + } + + if err != nil && cs.sentEndStream { + // If the connection is closed immediately after the response is read, + // we may be aborted before finishing up here. If the stream was closed + // cleanly on both sides, there is no error. select { - case re := <-readLoopResCh: - return handleReadLoopResponse(re) - case <-respHeaderTimer: - if !hasBody || bodyWritten { - cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) - } else { - bodyWriter.cancel() - cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel) - <-bodyWriter.resc - } - cc.forgetStreamID(cs.ID) - return nil, cs.getStartedWrite(), errTimeout - case <-ctx.Done(): - if !hasBody || bodyWritten { - cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) - } else { - bodyWriter.cancel() - cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel) - <-bodyWriter.resc - } - cc.forgetStreamID(cs.ID) - return nil, cs.getStartedWrite(), ctx.Err() - case <-req.Cancel: - if !hasBody || bodyWritten { - cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) + case <-cs.peerClosed: + err = nil + default: + } + } + if err != nil { + cs.abortStream(err) // possibly redundant, but harmless + if cs.sentHeaders { + if se, ok := err.(StreamError); ok { + if se.Cause != errFromPeer { + cc.writeStreamReset(cs.ID, se.Code, err) + } } else { - bodyWriter.cancel() - cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel) - <-bodyWriter.resc - } - cc.forgetStreamID(cs.ID) - return nil, cs.getStartedWrite(), errRequestCanceled - case <-cs.peerReset: - // processResetStream already removed the - // stream from the streams map; no need for - // forgetStreamID. - return nil, cs.getStartedWrite(), cs.resetErr - case err := <-bodyWriter.resc: - bodyWritten = true - // Prefer the read loop's response, if available. Issue 16102. - select { - case re := <-readLoopResCh: - return handleReadLoopResponse(re) - default: - } - if err != nil { - cc.forgetStreamID(cs.ID) - return nil, cs.getStartedWrite(), err - } - if d := cc.responseHeaderTimeout(); d != 0 { - timer := time.NewTimer(d) - defer timer.Stop() - respHeaderTimer = timer.C + cc.writeStreamReset(cs.ID, ErrCodeCancel, err) } } + cs.bufPipe.CloseWithError(err) // no-op if already closed + } else { + if cs.sentHeaders && !cs.sentEndStream { + cc.writeStreamReset(cs.ID, ErrCodeNo, nil) + } + cs.bufPipe.CloseWithError(errRequestCanceled) + } + if cs.ID != 0 { + cc.forgetStreamID(cs.ID) + } + + cc.wmu.Lock() + werr := cc.werr + cc.wmu.Unlock() + if werr != nil { + cc.Close() } + + close(cs.donec) } -// awaitOpenSlotForRequest waits until len(streams) < maxConcurrentStreams. +// awaitOpenSlotForStream waits until len(streams) < maxConcurrentStreams. // Must hold cc.mu. -func (cc *ClientConn) awaitOpenSlotForRequest(req *http.Request) error { - var waitingForConn chan struct{} - var waitingForConnErr error // guarded by cc.mu +func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { for { cc.lastActive = time.Now() if cc.closed || !cc.canTakeNewRequestLocked() { - if waitingForConn != nil { - close(waitingForConn) - } return errClientConnUnusable } cc.lastIdle = time.Time{} - if int64(len(cc.streams))+1 <= int64(cc.maxConcurrentStreams) { - if waitingForConn != nil { - close(waitingForConn) - } + if int64(len(cc.streams)) < int64(cc.maxConcurrentStreams) { return nil } - // Unfortunately, we cannot wait on a condition variable and channel at - // the same time, so instead, we spin up a goroutine to check if the - // request is canceled while we wait for a slot to open in the connection. - if waitingForConn == nil { - waitingForConn = make(chan struct{}) - go func() { - if err := awaitRequestCancel(req, waitingForConn); err != nil { - cc.mu.Lock() - waitingForConnErr = err - cc.cond.Broadcast() - cc.mu.Unlock() - } - }() - } cc.pendingRequests++ cc.cond.Wait() cc.pendingRequests-- - if waitingForConnErr != nil { - return waitingForConnErr + select { + case <-cs.abort: + return cs.abortErr + default: } } } @@ -1286,10 +1475,6 @@ func (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize cc.fr.WriteContinuation(streamID, endHeaders, chunk) } } - // TODO(bradfitz): this Flush could potentially block (as - // could the WriteHeaders call(s) above), which means they - // wouldn't respond to Request.Cancel being readable. That's - // rare, but this should probably be in a goroutine. cc.bw.Flush() return cc.werr } @@ -1305,32 +1490,59 @@ var ( errReqBodyTooLong = errors.New("http2: request body larger than specified content length") ) -func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (err error) { +// frameScratchBufferLen returns the length of a buffer to use for +// outgoing request bodies to read/write to/from. +// +// It returns max(1, min(peer's advertised max frame size, +// Request.ContentLength+1, 512KB)). +func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int { + const max = 512 << 10 + n := int64(maxFrameSize) + if n > max { + n = max + } + if cl := cs.reqBodyContentLength; cl != -1 && cl+1 < n { + // Add an extra byte past the declared content-length to + // give the caller's Request.Body io.Reader a chance to + // give us more bytes than they declared, so we can catch it + // early. + n = cl + 1 + } + if n < 1 { + return 1 + } + return int(n) // doesn't truncate; max is 512K +} + +var bufPool sync.Pool // of *[]byte + +func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { cc := cs.cc + body := cs.reqBody sentEnd := false // whether we sent the final DATA frame w/ END_STREAM - buf := cc.frameScratchBuffer() - defer cc.putFrameScratchBuffer(buf) - defer func() { - traceWroteRequest(cs.trace, err) - // TODO: write h12Compare test showing whether - // Request.Body is closed by the Transport, - // and in multiple cases: server replies <=299 and >299 - // while still writing request body - cerr := bodyCloser.Close() - if err == nil { - err = cerr - } - }() - - req := cs.req hasTrailers := req.Trailer != nil - remainLen := actualContentLength(req) + remainLen := cs.reqBodyContentLength hasContentLen := remainLen != -1 + cc.mu.Lock() + maxFrameSize := int(cc.maxFrameSize) + cc.mu.Unlock() + + // Scratch buffer for reading into & writing from. + scratchLen := cs.frameScratchBufferLen(maxFrameSize) + var buf []byte + if bp, ok := bufPool.Get().(*[]byte); ok && len(*bp) >= scratchLen { + defer bufPool.Put(bp) + buf = *bp + } else { + buf = make([]byte, scratchLen) + defer bufPool.Put(&buf) + } + var sawEOF bool for !sawEOF { - n, err := body.Read(buf[:len(buf)-1]) + n, err := body.Read(buf[:len(buf)]) if hasContentLen { remainLen -= int64(n) if remainLen == 0 && err == nil { @@ -1341,35 +1553,36 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) ( // to send the END_STREAM bit early, double-check that we're actually // at EOF. Subsequent reads should return (0, EOF) at this point. // If either value is different, we return an error in one of two ways below. + var scratch [1]byte var n1 int - n1, err = body.Read(buf[n:]) + n1, err = body.Read(scratch[:]) remainLen -= int64(n1) } if remainLen < 0 { err = errReqBodyTooLong - cc.writeStreamReset(cs.ID, ErrCodeCancel, err) return err } } - if err == io.EOF { - sawEOF = true - err = nil - } else if err != nil { - cc.writeStreamReset(cs.ID, ErrCodeCancel, err) - return err + if err != nil { + cc.mu.Lock() + bodyClosed := cs.reqBodyClosed + cc.mu.Unlock() + switch { + case bodyClosed: + return errStopReqBodyWrite + case err == io.EOF: + sawEOF = true + err = nil + default: + return err + } } remain := buf[:n] for len(remain) > 0 && err == nil { var allowed int32 allowed, err = cs.awaitFlowControl(len(remain)) - switch { - case err == errStopReqBodyWrite: - return err - case err == errStopReqBodyWriteAndCancel: - cc.writeStreamReset(cs.ID, ErrCodeCancel, nil) - return err - case err != nil: + if err != nil { return err } cc.wmu.Lock() @@ -1400,24 +1613,26 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) ( return nil } - var trls []byte - if hasTrailers { - cc.mu.Lock() - trls, err = cc.encodeTrailers(req) - cc.mu.Unlock() - if err != nil { - cc.writeStreamReset(cs.ID, ErrCodeInternal, err) - cc.forgetStreamID(cs.ID) - return err - } - } - + // Since the RoundTrip contract permits the caller to "mutate or reuse" + // a request after the Response's Body is closed, verify that this hasn't + // happened before accessing the trailers. cc.mu.Lock() - maxFrameSize := int(cc.maxFrameSize) + trailer := req.Trailer + err = cs.abortErr cc.mu.Unlock() + if err != nil { + return err + } cc.wmu.Lock() defer cc.wmu.Unlock() + var trls []byte + if len(trailer) > 0 { + trls, err = cc.encodeTrailers(trailer) + if err != nil { + return err + } + } // Two ways to send END_STREAM: either with trailers, or // with an empty DATA frame. @@ -1438,17 +1653,24 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) ( // if the stream is dead. func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) { cc := cs.cc + ctx := cs.ctx cc.mu.Lock() defer cc.mu.Unlock() for { if cc.closed { return 0, errClientConnClosed } - if cs.stopReqBody != nil { - return 0, cs.stopReqBody + if cs.reqBodyClosed { + return 0, errStopReqBodyWrite } - if err := cs.checkResetOrDone(); err != nil { - return 0, err + select { + case <-cs.abort: + return 0, cs.abortErr + case <-ctx.Done(): + return 0, ctx.Err() + case <-cs.reqCancel: + return 0, errRequestCanceled + default: } if a := cs.flow.available(); a > 0 { take := a @@ -1466,9 +1688,14 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) } } -// requires cc.mu be held. +var errNilRequestURL = errors.New("http2: Request.URI is nil") + +// requires cc.wmu be held. func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { cc.hbuf.Reset() + if req.URL == nil { + return nil, errNilRequestURL + } host := req.Host if host == "" { @@ -1531,19 +1758,21 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail var didUA bool for k, vv := range req.Header { - if strings.EqualFold(k, "host") || strings.EqualFold(k, "content-length") { + if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { // Host is :authority, already sent. // Content-Length is automatic, set below. continue - } else if strings.EqualFold(k, "connection") || strings.EqualFold(k, "proxy-connection") || - strings.EqualFold(k, "transfer-encoding") || strings.EqualFold(k, "upgrade") || - strings.EqualFold(k, "keep-alive") { + } else if asciiEqualFold(k, "connection") || + asciiEqualFold(k, "proxy-connection") || + asciiEqualFold(k, "transfer-encoding") || + asciiEqualFold(k, "upgrade") || + asciiEqualFold(k, "keep-alive") { // Per 8.1.2.2 Connection-Specific Header // Fields, don't send connection-specific // fields. We have already checked if any // are error-worthy so just ignore the rest. continue - } else if strings.EqualFold(k, "user-agent") { + } else if asciiEqualFold(k, "user-agent") { // Match Go's http1 behavior: at most one // User-Agent. If set to nil or empty string, // then omit it. Otherwise if not mentioned, @@ -1556,7 +1785,7 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail if vv[0] == "" { continue } - } else if strings.EqualFold(k, "cookie") { + } else if asciiEqualFold(k, "cookie") { // Per 8.1.2.5 To allow for better compression efficiency, the // Cookie header field MAY be split into separate header fields, // each with one or more cookie-pairs. @@ -1615,7 +1844,12 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail // Header list size is ok. Write the headers. enumerateHeaders(func(name, value string) { - name = strings.ToLower(name) + name, ascii := asciiToLower(name) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + return + } cc.writeHeader(name, value) if traceHeaders { traceWroteHeaderField(trace, name, value) @@ -1647,12 +1881,12 @@ func shouldSendReqContentLength(method string, contentLength int64) bool { } } -// requires cc.mu be held. -func (cc *ClientConn) encodeTrailers(req *http.Request) ([]byte, error) { +// requires cc.wmu be held. +func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { cc.hbuf.Reset() hlSize := uint64(0) - for k, vv := range req.Trailer { + for k, vv := range trailer { for _, v := range vv { hf := hpack.HeaderField{Name: k, Value: v} hlSize += uint64(hf.Size()) @@ -1662,10 +1896,15 @@ func (cc *ClientConn) encodeTrailers(req *http.Request) ([]byte, error) { return nil, errRequestHeaderListSize } - for k, vv := range req.Trailer { + for k, vv := range trailer { + lowKey, ascii := asciiToLower(k) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + continue + } // Transfer-Encoding, etc.. have already been filtered at the // start of RoundTrip - lowKey := strings.ToLower(k) for _, v := range vv { cc.writeHeader(lowKey, v) } @@ -1687,51 +1926,51 @@ type resAndError struct { } // requires cc.mu be held. -func (cc *ClientConn) newStream() *clientStream { - cs := &clientStream{ - cc: cc, - ID: cc.nextStreamID, - resc: make(chan resAndError, 1), - peerReset: make(chan struct{}), - done: make(chan struct{}), - } +func (cc *ClientConn) addStreamLocked(cs *clientStream) { cs.flow.add(int32(cc.initialWindowSize)) cs.flow.setConnFlow(&cc.flow) cs.inflow.add(transportDefaultStreamFlow) cs.inflow.setConnFlow(&cc.inflow) + cs.ID = cc.nextStreamID cc.nextStreamID += 2 cc.streams[cs.ID] = cs - return cs + if cs.ID == 0 { + panic("assigned stream ID 0") + } } func (cc *ClientConn) forgetStreamID(id uint32) { - cc.streamByID(id, true) -} - -func (cc *ClientConn) streamByID(id uint32, andRemove bool) *clientStream { cc.mu.Lock() - defer cc.mu.Unlock() - cs := cc.streams[id] - if andRemove && cs != nil && !cc.closed { - cc.lastActive = time.Now() - delete(cc.streams, id) - if len(cc.streams) == 0 && cc.idleTimer != nil { - cc.idleTimer.Reset(cc.idleTimeout) - cc.lastIdle = time.Now() - } - close(cs.done) - // Wake up checkResetOrDone via clientStream.awaitFlowControl and - // wake up RoundTrip if there is a pending request. - cc.cond.Broadcast() + slen := len(cc.streams) + delete(cc.streams, id) + if len(cc.streams) != slen-1 { + panic("forgetting unknown stream id") + } + cc.lastActive = time.Now() + if len(cc.streams) == 0 && cc.idleTimer != nil { + cc.idleTimer.Reset(cc.idleTimeout) + cc.lastIdle = time.Now() + } + // Wake up writeRequestBody via clientStream.awaitFlowControl and + // wake up RoundTrip if there is a pending request. + cc.cond.Broadcast() + + closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() + if closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 { + if VerboseLogs { + cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, cc.nextStreamID-2) + } + cc.closed = true + defer cc.tconn.Close() } - return cs + + cc.mu.Unlock() } // clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop. type clientConnReadLoop struct { - _ incomparable - cc *ClientConn - closeWhenIdle bool + _ incomparable + cc *ClientConn } // readLoop runs in its own goroutine and reads and dispatches frames. @@ -1791,23 +2030,49 @@ func (rl *clientConnReadLoop) cleanup() { } else if err == io.EOF { err = io.ErrUnexpectedEOF } + cc.closed = true for _, cs := range cc.streams { - cs.bufPipe.CloseWithError(err) // no-op if already closed select { - case cs.resc <- resAndError{err: err}: + case <-cs.peerClosed: + // The server closed the stream before closing the conn, + // so no need to interrupt it. default: + cs.abortStreamLocked(err) } - close(cs.done) } - cc.closed = true cc.cond.Broadcast() cc.mu.Unlock() } +// countReadFrameError calls Transport.CountError with a string +// representing err. +func (cc *ClientConn) countReadFrameError(err error) { + f := cc.t.CountError + if f == nil || err == nil { + return + } + if ce, ok := err.(ConnectionError); ok { + errCode := ErrCode(ce) + f(fmt.Sprintf("read_frame_conn_error_%s", errCode.stringToken())) + return + } + if errors.Is(err, io.EOF) { + f("read_frame_eof") + return + } + if errors.Is(err, io.ErrUnexpectedEOF) { + f("read_frame_unexpected_eof") + return + } + if errors.Is(err, ErrFrameTooLarge) { + f("read_frame_too_large") + return + } + f("read_frame_other") +} + func (rl *clientConnReadLoop) run() error { cc := rl.cc - rl.closeWhenIdle = cc.t.disableKeepAlives() || cc.singleUse - gotReply := false // ever saw a HEADERS reply gotSettings := false readIdleTimeout := cc.t.ReadIdleTimeout var t *time.Timer @@ -1824,9 +2089,7 @@ func (rl *clientConnReadLoop) run() error { cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err) } if se, ok := err.(StreamError); ok { - if cs := cc.streamByID(se.StreamID, false); cs != nil { - cs.cc.writeStreamReset(cs.ID, se.Code, err) - cs.cc.forgetStreamID(cs.ID) + if cs := rl.streamByID(se.StreamID); cs != nil { if se.Cause == nil { se.Cause = cc.fr.errDetail } @@ -1834,6 +2097,7 @@ func (rl *clientConnReadLoop) run() error { } continue } else if err != nil { + cc.countReadFrameError(err) return err } if VerboseLogs { @@ -1846,22 +2110,16 @@ func (rl *clientConnReadLoop) run() error { } gotSettings = true } - maybeIdle := false // whether frame might transition us to idle switch f := f.(type) { case *MetaHeadersFrame: err = rl.processHeaders(f) - maybeIdle = true - gotReply = true case *DataFrame: err = rl.processData(f) - maybeIdle = true case *GoAwayFrame: err = rl.processGoAway(f) - maybeIdle = true case *RSTStreamFrame: err = rl.processResetStream(f) - maybeIdle = true case *SettingsFrame: err = rl.processSettings(f) case *PushPromiseFrame: @@ -1879,38 +2137,24 @@ func (rl *clientConnReadLoop) run() error { } return err } - if rl.closeWhenIdle && gotReply && maybeIdle { - cc.closeIfIdle() - } } } func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { - cc := rl.cc - cs := cc.streamByID(f.StreamID, false) + cs := rl.streamByID(f.StreamID) if cs == nil { // We'd get here if we canceled a request while the // server had its response still in flight. So if this // was just something we canceled, ignore it. return nil } - if f.StreamEnded() { - // Issue 20521: If the stream has ended, streamByID() causes - // clientStream.done to be closed, which causes the request's bodyWriter - // to be closed with an errStreamClosed, which may be received by - // clientConn.RoundTrip before the result of processing these headers. - // Deferring stream closure allows the header processing to occur first. - // clientConn.RoundTrip may still receive the bodyWriter error first, but - // the fix for issue 16102 prioritises any response. - // - // Issue 22413: If there is no request body, we should close the - // stream before writing to cs.resc so that the stream is closed - // immediately once RoundTrip returns. - if cs.req.Body != nil { - defer cc.forgetStreamID(f.StreamID) - } else { - cc.forgetStreamID(f.StreamID) - } + if cs.readClosed { + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + Cause: errors.New("protocol error: headers after END_STREAM"), + }) + return nil } if !cs.firstByte { if cs.trace != nil { @@ -1934,9 +2178,11 @@ func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { return err } // Any other error type is a stream error. - cs.cc.writeStreamReset(f.StreamID, ErrCodeProtocol, err) - cc.forgetStreamID(cs.ID) - cs.resc <- resAndError{err: err} + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + Cause: err, + }) return nil // return nil from process* funcs to keep conn alive } if res == nil { @@ -1944,7 +2190,11 @@ func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { return nil } cs.resTrailer = &res.Trailer - cs.resc <- resAndError{res: res} + cs.res = res + close(cs.respHeaderRecv) + if f.StreamEnded() { + rl.endStream(cs) + } return nil } @@ -2006,6 +2256,9 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra } if statusCode >= 100 && statusCode <= 199 { + if f.StreamEnded() { + return nil, errors.New("1xx informational response with END_STREAM flag") + } cs.num1xx++ const max1xxResponses = 5 // arbitrary bound on number of informational responses, same as net/http if cs.num1xx > max1xxResponses { @@ -2018,40 +2271,47 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra } if statusCode == 100 { traceGot100Continue(cs.trace) - if cs.on100 != nil { - cs.on100() // forces any write delay timer to fire + select { + case cs.on100 <- struct{}{}: + default: } } cs.pastHeaders = false // do it all again return nil, nil } - streamEnded := f.StreamEnded() - isHead := cs.req.Method == "HEAD" - if !streamEnded || isHead { - res.ContentLength = -1 - if clens := res.Header["Content-Length"]; len(clens) == 1 { - if cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil { - res.ContentLength = int64(cl) - } else { - // TODO: care? unlike http/1, it won't mess up our framing, so it's - // more safe smuggling-wise to ignore. - } - } else if len(clens) > 1 { + res.ContentLength = -1 + if clens := res.Header["Content-Length"]; len(clens) == 1 { + if cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil { + res.ContentLength = int64(cl) + } else { // TODO: care? unlike http/1, it won't mess up our framing, so it's // more safe smuggling-wise to ignore. } + } else if len(clens) > 1 { + // TODO: care? unlike http/1, it won't mess up our framing, so it's + // more safe smuggling-wise to ignore. + } else if f.StreamEnded() { + res.ContentLength = 0 } - if streamEnded || isHead { + if cs.isHead { res.Body = noBody return res, nil } - cs.bufPipe = pipe{b: &dataBuffer{expected: res.ContentLength}} + if f.StreamEnded() { + if res.ContentLength > 0 { + res.Body = missingBody{} + } else { + res.Body = noBody + } + return res, nil + } + + cs.bufPipe.setBuffer(&dataBuffer{expected: res.ContentLength}) cs.bytesRemain = res.ContentLength res.Body = transportResponseBody{cs} - go cs.awaitRequestCancel(cs.req) if cs.requestedGzip && res.Header.Get("Content-Encoding") == "gzip" { res.Header.Del("Content-Encoding") @@ -2092,8 +2352,7 @@ func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFr } // transportResponseBody is the concrete type of Transport.RoundTrip's -// Response.Body. It is an io.ReadCloser. On Read, it reads from cs.body. -// On Close it sends RST_STREAM if EOF wasn't already seen. +// Response.Body. It is an io.ReadCloser. type transportResponseBody struct { cs *clientStream } @@ -2111,7 +2370,7 @@ func (b transportResponseBody) Read(p []byte) (n int, err error) { n = int(cs.bytesRemain) if err == nil { err = errors.New("net/http: server replied with more than declared Content-Length; truncated") - cc.writeStreamReset(cs.ID, ErrCodeProtocol, err) + cs.abortStream(err) } cs.readErr = err return int(cs.bytesRemain), err @@ -2129,8 +2388,6 @@ func (b transportResponseBody) Read(p []byte) (n int, err error) { } cc.mu.Lock() - defer cc.mu.Unlock() - var connAdd, streamAdd int32 // Check the conn-level first, before the stream-level. if v := cc.inflow.available(); v < transportDefaultConnFlow/2 { @@ -2147,6 +2404,8 @@ func (b transportResponseBody) Read(p []byte) (n int, err error) { cs.inflow.add(streamAdd) } } + cc.mu.Unlock() + if connAdd != 0 || streamAdd != 0 { cc.wmu.Lock() defer cc.wmu.Unlock() @@ -2167,34 +2426,42 @@ func (b transportResponseBody) Close() error { cs := b.cs cc := cs.cc - serverSentStreamEnd := cs.bufPipe.Err() == io.EOF unread := cs.bufPipe.Len() - - if unread > 0 || !serverSentStreamEnd { + if unread > 0 { cc.mu.Lock() - cc.wmu.Lock() - if !serverSentStreamEnd { - cc.fr.WriteRSTStream(cs.ID, ErrCodeCancel) - cs.didReset = true - } // Return connection-level flow control. if unread > 0 { cc.inflow.add(int32(unread)) + } + cc.mu.Unlock() + + // TODO(dneil): Acquiring this mutex can block indefinitely. + // Move flow control return to a goroutine? + cc.wmu.Lock() + // Return connection-level flow control. + if unread > 0 { cc.fr.WriteWindowUpdate(0, uint32(unread)) } cc.bw.Flush() cc.wmu.Unlock() - cc.mu.Unlock() } cs.bufPipe.BreakWithError(errClosedResponseBody) - cc.forgetStreamID(cs.ID) + cs.abortStream(errClosedResponseBody) + + select { + case <-cs.donec: + case <-cs.ctx.Done(): + return cs.ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled + } return nil } func (rl *clientConnReadLoop) processData(f *DataFrame) error { cc := rl.cc - cs := cc.streamByID(f.StreamID, f.StreamEnded()) + cs := rl.streamByID(f.StreamID) data := f.Data() if cs == nil { cc.mu.Lock() @@ -2223,6 +2490,14 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { } return nil } + if cs.readClosed { + cc.logf("protocol error: received DATA after END_STREAM") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + }) + return nil + } if !cs.firstByte { cc.logf("protocol error: received DATA before a HEADERS frame") rl.endStreamError(cs, StreamError{ @@ -2232,7 +2507,7 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { return nil } if f.Length > 0 { - if cs.req.Method == "HEAD" && len(data) > 0 { + if cs.isHead && len(data) > 0 { cc.logf("protocol error: received DATA on a HEAD request") rl.endStreamError(cs, StreamError{ StreamID: f.StreamID, @@ -2254,30 +2529,39 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { if pad := int(f.Length) - len(data); pad > 0 { refund += pad } - // Return len(data) now if the stream is already closed, - // since data will never be read. - didReset := cs.didReset - if didReset { - refund += len(data) + + didReset := false + var err error + if len(data) > 0 { + if _, err = cs.bufPipe.Write(data); err != nil { + // Return len(data) now if the stream is already closed, + // since data will never be read. + didReset = true + refund += len(data) + } } + if refund > 0 { cc.inflow.add(int32(refund)) + if !didReset { + cs.inflow.add(int32(refund)) + } + } + cc.mu.Unlock() + + if refund > 0 { cc.wmu.Lock() cc.fr.WriteWindowUpdate(0, uint32(refund)) if !didReset { - cs.inflow.add(int32(refund)) cc.fr.WriteWindowUpdate(cs.ID, uint32(refund)) } cc.bw.Flush() cc.wmu.Unlock() } - cc.mu.Unlock() - if len(data) > 0 && !didReset { - if _, err := cs.bufPipe.Write(data); err != nil { - rl.endStreamError(cs, err) - return err - } + if err != nil { + rl.endStreamError(cs, err) + return nil } } @@ -2290,24 +2574,26 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { func (rl *clientConnReadLoop) endStream(cs *clientStream) { // TODO: check that any declared content-length matches, like // server.go's (*stream).endStream method. - rl.endStreamError(cs, nil) + if !cs.readClosed { + cs.readClosed = true + cs.bufPipe.closeWithErrorAndCode(io.EOF, cs.copyTrailers) + close(cs.peerClosed) + } } func (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) { - var code func() - if err == nil { - err = io.EOF - code = cs.copyTrailers - } - if isConnectionCloseRequest(cs.req) { - rl.closeWhenIdle = true - } - cs.bufPipe.closeWithErrorAndCode(err, code) + cs.readAborted = true + cs.abortStream(err) +} - select { - case cs.resc <- resAndError{err: err}: - default: +func (rl *clientConnReadLoop) streamByID(id uint32) *clientStream { + rl.cc.mu.Lock() + defer rl.cc.mu.Unlock() + cs := rl.cc.streams[id] + if cs != nil && !cs.readAborted { + return cs } + return nil } func (cs *clientStream) copyTrailers() { @@ -2326,12 +2612,33 @@ func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error { if f.ErrCode != 0 { // TODO: deal with GOAWAY more. particularly the error code cc.vlogf("transport got GOAWAY with error code = %v", f.ErrCode) + if fn := cc.t.CountError; fn != nil { + fn("recv_goaway_" + f.ErrCode.stringToken()) + } + } cc.setGoAway(f) return nil } func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error { + cc := rl.cc + // Locking both mu and wmu here allows frame encoding to read settings with only wmu held. + // Acquiring wmu when f.IsAck() is unnecessary, but convenient and mostly harmless. + cc.wmu.Lock() + defer cc.wmu.Unlock() + + if err := rl.processSettingsNoWrite(f); err != nil { + return err + } + if !f.IsAck() { + cc.fr.WriteSettingsAck() + cc.bw.Flush() + } + return nil +} + +func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { cc := rl.cc cc.mu.Lock() defer cc.mu.Unlock() @@ -2344,12 +2651,14 @@ func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error { return ConnectionError(ErrCodeProtocol) } + var seenMaxConcurrentStreams bool err := f.ForeachSetting(func(s Setting) error { switch s.ID { case SettingMaxFrameSize: cc.maxFrameSize = s.Val case SettingMaxConcurrentStreams: cc.maxConcurrentStreams = s.Val + seenMaxConcurrentStreams = true case SettingMaxHeaderListSize: cc.peerMaxHeaderListSize = uint64(s.Val) case SettingInitialWindowSize: @@ -2381,17 +2690,23 @@ func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error { return err } - cc.wmu.Lock() - defer cc.wmu.Unlock() + if !cc.seenSettings { + if !seenMaxConcurrentStreams { + // This was the servers initial SETTINGS frame and it + // didn't contain a MAX_CONCURRENT_STREAMS field so + // increase the number of concurrent streams this + // connection can establish to our default. + cc.maxConcurrentStreams = defaultMaxConcurrentStreams + } + cc.seenSettings = true + } - cc.fr.WriteSettingsAck() - cc.bw.Flush() - return cc.werr + return nil } func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { cc := rl.cc - cs := cc.streamByID(f.StreamID, false) + cs := rl.streamByID(f.StreamID) if f.StreamID != 0 && cs == nil { return nil } @@ -2411,24 +2726,22 @@ func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { } func (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error { - cs := rl.cc.streamByID(f.StreamID, true) + cs := rl.streamByID(f.StreamID) if cs == nil { - // TODO: return error if server tries to RST_STEAM an idle stream + // TODO: return error if server tries to RST_STREAM an idle stream return nil } - select { - case <-cs.peerReset: - // Already reset. - // This is the only goroutine - // which closes this, so there - // isn't a race. - default: - err := streamError(cs.ID, f.ErrCode) - cs.resetErr = err - close(cs.peerReset) - cs.bufPipe.CloseWithError(err) - cs.cc.cond.Broadcast() // wake up checkResetOrDone via clientStream.awaitFlowControl + serr := streamError(cs.ID, f.ErrCode) + serr.Cause = errFromPeer + if f.ErrCode == ErrCodeProtocol { + rl.cc.SetDoNotReuse() + } + if fn := cs.cc.t.CountError; fn != nil { + fn("recv_rststream_" + f.ErrCode.stringToken()) } + cs.abortStream(serr) + + cs.bufPipe.CloseWithError(serr) return nil } @@ -2450,19 +2763,24 @@ func (cc *ClientConn) Ping(ctx context.Context) error { } cc.mu.Unlock() } - cc.wmu.Lock() - if err := cc.fr.WritePing(false, p); err != nil { - cc.wmu.Unlock() - return err - } - if err := cc.bw.Flush(); err != nil { - cc.wmu.Unlock() - return err - } - cc.wmu.Unlock() + errc := make(chan error, 1) + go func() { + cc.wmu.Lock() + defer cc.wmu.Unlock() + if err := cc.fr.WritePing(false, p); err != nil { + errc <- err + return + } + if err := cc.bw.Flush(); err != nil { + errc <- err + return + } + }() select { case <-c: return nil + case err := <-errc: + return err case <-ctx.Done(): return ctx.Err() case <-cc.readerDone: @@ -2539,6 +2857,11 @@ func (t *Transport) logf(format string, args ...interface{}) { var noBody io.ReadCloser = ioutil.NopCloser(bytes.NewReader(nil)) +type missingBody struct{} + +func (missingBody) Close() error { return nil } +func (missingBody) Read([]byte) (int, error) { return 0, io.ErrUnexpectedEOF } + func strSliceContains(ss []string, s string) bool { for _, v := range ss { if v == s { @@ -2584,87 +2907,6 @@ type errorReader struct{ err error } func (r errorReader) Read(p []byte) (int, error) { return 0, r.err } -// bodyWriterState encapsulates various state around the Transport's writing -// of the request body, particularly regarding doing delayed writes of the body -// when the request contains "Expect: 100-continue". -type bodyWriterState struct { - cs *clientStream - timer *time.Timer // if non-nil, we're doing a delayed write - fnonce *sync.Once // to call fn with - fn func() // the code to run in the goroutine, writing the body - resc chan error // result of fn's execution - delay time.Duration // how long we should delay a delayed write for -} - -func (t *Transport) getBodyWriterState(cs *clientStream, body io.Reader) (s bodyWriterState) { - s.cs = cs - if body == nil { - return - } - resc := make(chan error, 1) - s.resc = resc - s.fn = func() { - cs.cc.mu.Lock() - cs.startedWrite = true - cs.cc.mu.Unlock() - resc <- cs.writeRequestBody(body, cs.req.Body) - } - s.delay = t.expectContinueTimeout() - if s.delay == 0 || - !httpguts.HeaderValuesContainsToken( - cs.req.Header["Expect"], - "100-continue") { - return - } - s.fnonce = new(sync.Once) - - // Arm the timer with a very large duration, which we'll - // intentionally lower later. It has to be large now because - // we need a handle to it before writing the headers, but the - // s.delay value is defined to not start until after the - // request headers were written. - const hugeDuration = 365 * 24 * time.Hour - s.timer = time.AfterFunc(hugeDuration, func() { - s.fnonce.Do(s.fn) - }) - return -} - -func (s bodyWriterState) cancel() { - if s.timer != nil { - if s.timer.Stop() { - s.resc <- nil - } - } -} - -func (s bodyWriterState) on100() { - if s.timer == nil { - // If we didn't do a delayed write, ignore the server's - // bogus 100 continue response. - return - } - s.timer.Stop() - go func() { s.fnonce.Do(s.fn) }() -} - -// scheduleBodyWrite starts writing the body, either immediately (in -// the common case) or after the delay timeout. It should not be -// called until after the headers have been written. -func (s bodyWriterState) scheduleBodyWrite() { - if s.timer == nil { - // We're not doing a delayed write (see - // getBodyWriterState), so just start the writing - // goroutine immediately. - go s.fn() - return - } - traceWait100Continue(s.cs.trace) - if s.timer.Stop() { - s.timer.Reset(s.delay) - } -} - // isConnectionCloseRequest reports whether req should use its own // connection for a single request and then close the connection. func isConnectionCloseRequest(req *http.Request) bool { diff --git a/vendor/golang.org/x/net/http2/write.go b/vendor/golang.org/x/net/http2/write.go index 3849bc26..33f61398 100644 --- a/vendor/golang.org/x/net/http2/write.go +++ b/vendor/golang.org/x/net/http2/write.go @@ -341,7 +341,12 @@ func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) { } for _, k := range keys { vv := h[k] - k = lowerHeader(k) + k, ascii := lowerHeader(k) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + continue + } if !validWireHeaderFieldName(k) { // Skip it as backup paranoia. Per // golang.org/issue/14048, these should diff --git a/vendor/golang.org/x/net/idna/idna10.0.0.go b/vendor/golang.org/x/net/idna/idna10.0.0.go index 7e69ee1b..5208ba6c 100644 --- a/vendor/golang.org/x/net/idna/idna10.0.0.go +++ b/vendor/golang.org/x/net/idna/idna10.0.0.go @@ -67,15 +67,14 @@ func Transitional(transitional bool) Option { // VerifyDNSLength sets whether a Profile should fail if any of the IDN parts // are longer than allowed by the RFC. +// +// This option corresponds to the VerifyDnsLength flag in UTS #46. func VerifyDNSLength(verify bool) Option { return func(o *options) { o.verifyDNSLength = verify } } // RemoveLeadingDots removes leading label separators. Leading runes that map to // dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well. -// -// This is the behavior suggested by the UTS #46 and is adopted by some -// browsers. func RemoveLeadingDots(remove bool) Option { return func(o *options) { o.removeLeadingDots = remove } } @@ -83,6 +82,8 @@ func RemoveLeadingDots(remove bool) Option { // ValidateLabels sets whether to check the mandatory label validation criteria // as defined in Section 5.4 of RFC 5891. This includes testing for correct use // of hyphens ('-'), normalization, validity of runes, and the context rules. +// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags +// in UTS #46. func ValidateLabels(enable bool) Option { return func(o *options) { // Don't override existing mappings, but set one that at least checks @@ -91,25 +92,48 @@ func ValidateLabels(enable bool) Option { o.mapping = normalize } o.trie = trie - o.validateLabels = enable - o.fromPuny = validateFromPunycode + o.checkJoiners = enable + o.checkHyphens = enable + if enable { + o.fromPuny = validateFromPunycode + } else { + o.fromPuny = nil + } + } +} + +// CheckHyphens sets whether to check for correct use of hyphens ('-') in +// labels. Most web browsers do not have this option set, since labels such as +// "r3---sn-apo3qvuoxuxbt-j5pe" are in common use. +// +// This option corresponds to the CheckHyphens flag in UTS #46. +func CheckHyphens(enable bool) Option { + return func(o *options) { o.checkHyphens = enable } +} + +// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix +// A of RFC 5892, concerning the use of joiner runes. +// +// This option corresponds to the CheckJoiners flag in UTS #46. +func CheckJoiners(enable bool) Option { + return func(o *options) { + o.trie = trie + o.checkJoiners = enable } } // StrictDomainName limits the set of permissible ASCII characters to those // allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the -// hyphen). This is set by default for MapForLookup and ValidateForRegistration. +// hyphen). This is set by default for MapForLookup and ValidateForRegistration, +// but is only useful if ValidateLabels is set. // // This option is useful, for instance, for browsers that allow characters // outside this range, for example a '_' (U+005F LOW LINE). See -// http://www.rfc-editor.org/std/std3.txt for more details This option -// corresponds to the UseSTD3ASCIIRules option in UTS #46. +// http://www.rfc-editor.org/std/std3.txt for more details. +// +// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46. func StrictDomainName(use bool) Option { - return func(o *options) { - o.trie = trie - o.useSTD3Rules = use - o.fromPuny = validateFromPunycode - } + return func(o *options) { o.useSTD3Rules = use } } // NOTE: the following options pull in tables. The tables should not be linked @@ -117,6 +141,8 @@ func StrictDomainName(use bool) Option { // BidiRule enables the Bidi rule as defined in RFC 5893. Any application // that relies on proper validation of labels should include this rule. +// +// This option corresponds to the CheckBidi flag in UTS #46. func BidiRule() Option { return func(o *options) { o.bidirule = bidirule.ValidString } } @@ -152,7 +178,8 @@ func MapForLookup() Option { type options struct { transitional bool useSTD3Rules bool - validateLabels bool + checkHyphens bool + checkJoiners bool verifyDNSLength bool removeLeadingDots bool @@ -225,8 +252,11 @@ func (p *Profile) String() string { if p.useSTD3Rules { s += ":UseSTD3Rules" } - if p.validateLabels { - s += ":ValidateLabels" + if p.checkHyphens { + s += ":CheckHyphens" + } + if p.checkJoiners { + s += ":CheckJoiners" } if p.verifyDNSLength { s += ":VerifyDNSLength" @@ -254,26 +284,29 @@ var ( punycode = &Profile{} lookup = &Profile{options{ - transitional: true, - useSTD3Rules: true, - validateLabels: true, - trie: trie, - fromPuny: validateFromPunycode, - mapping: validateAndMap, - bidirule: bidirule.ValidString, + transitional: true, + useSTD3Rules: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateAndMap, + bidirule: bidirule.ValidString, }} display = &Profile{options{ - useSTD3Rules: true, - validateLabels: true, - trie: trie, - fromPuny: validateFromPunycode, - mapping: validateAndMap, - bidirule: bidirule.ValidString, + useSTD3Rules: true, + checkHyphens: true, + checkJoiners: true, + trie: trie, + fromPuny: validateFromPunycode, + mapping: validateAndMap, + bidirule: bidirule.ValidString, }} registration = &Profile{options{ useSTD3Rules: true, - validateLabels: true, verifyDNSLength: true, + checkHyphens: true, + checkJoiners: true, trie: trie, fromPuny: validateFromPunycode, mapping: validateRegistration, @@ -340,7 +373,7 @@ func (p *Profile) process(s string, toASCII bool) (string, error) { } isBidi = isBidi || bidirule.DirectionString(u) != bidi.LeftToRight labels.set(u) - if err == nil && p.validateLabels { + if err == nil && p.fromPuny != nil { err = p.fromPuny(p, u) } if err == nil { @@ -681,16 +714,18 @@ func (p *Profile) validateLabel(s string) (err error) { } return nil } - if !p.validateLabels { - return nil - } - trie := p.trie // p.validateLabels is only set if trie is set. - if len(s) > 4 && s[2] == '-' && s[3] == '-' { - return &labelError{s, "V2"} + if p.checkHyphens { + if len(s) > 4 && s[2] == '-' && s[3] == '-' { + return &labelError{s, "V2"} + } + if s[0] == '-' || s[len(s)-1] == '-' { + return &labelError{s, "V3"} + } } - if s[0] == '-' || s[len(s)-1] == '-' { - return &labelError{s, "V3"} + if !p.checkJoiners { + return nil } + trie := p.trie // p.checkJoiners is only set if trie is set. // TODO: merge the use of this in the trie. v, sz := trie.lookupString(s) x := info(v) diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go index 7c745637..55f718f1 100644 --- a/vendor/golang.org/x/net/idna/idna9.0.0.go +++ b/vendor/golang.org/x/net/idna/idna9.0.0.go @@ -66,15 +66,14 @@ func Transitional(transitional bool) Option { // VerifyDNSLength sets whether a Profile should fail if any of the IDN parts // are longer than allowed by the RFC. +// +// This option corresponds to the VerifyDnsLength flag in UTS #46. func VerifyDNSLength(verify bool) Option { return func(o *options) { o.verifyDNSLength = verify } } // RemoveLeadingDots removes leading label separators. Leading runes that map to // dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well. -// -// This is the behavior suggested by the UTS #46 and is adopted by some -// browsers. func RemoveLeadingDots(remove bool) Option { return func(o *options) { o.removeLeadingDots = remove } } @@ -82,6 +81,8 @@ func RemoveLeadingDots(remove bool) Option { // ValidateLabels sets whether to check the mandatory label validation criteria // as defined in Section 5.4 of RFC 5891. This includes testing for correct use // of hyphens ('-'), normalization, validity of runes, and the context rules. +// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags +// in UTS #46. func ValidateLabels(enable bool) Option { return func(o *options) { // Don't override existing mappings, but set one that at least checks @@ -90,25 +91,48 @@ func ValidateLabels(enable bool) Option { o.mapping = normalize } o.trie = trie - o.validateLabels = enable - o.fromPuny = validateFromPunycode + o.checkJoiners = enable + o.checkHyphens = enable + if enable { + o.fromPuny = validateFromPunycode + } else { + o.fromPuny = nil + } + } +} + +// CheckHyphens sets whether to check for correct use of hyphens ('-') in +// labels. Most web browsers do not have this option set, since labels such as +// "r3---sn-apo3qvuoxuxbt-j5pe" are in common use. +// +// This option corresponds to the CheckHyphens flag in UTS #46. +func CheckHyphens(enable bool) Option { + return func(o *options) { o.checkHyphens = enable } +} + +// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix +// A of RFC 5892, concerning the use of joiner runes. +// +// This option corresponds to the CheckJoiners flag in UTS #46. +func CheckJoiners(enable bool) Option { + return func(o *options) { + o.trie = trie + o.checkJoiners = enable } } // StrictDomainName limits the set of permissable ASCII characters to those // allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the -// hyphen). This is set by default for MapForLookup and ValidateForRegistration. +// hyphen). This is set by default for MapForLookup and ValidateForRegistration, +// but is only useful if ValidateLabels is set. // // This option is useful, for instance, for browsers that allow characters // outside this range, for example a '_' (U+005F LOW LINE). See -// http://www.rfc-editor.org/std/std3.txt for more details This option -// corresponds to the UseSTD3ASCIIRules option in UTS #46. +// http://www.rfc-editor.org/std/std3.txt for more details. +// +// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46. func StrictDomainName(use bool) Option { - return func(o *options) { - o.trie = trie - o.useSTD3Rules = use - o.fromPuny = validateFromPunycode - } + return func(o *options) { o.useSTD3Rules = use } } // NOTE: the following options pull in tables. The tables should not be linked @@ -116,6 +140,8 @@ func StrictDomainName(use bool) Option { // BidiRule enables the Bidi rule as defined in RFC 5893. Any application // that relies on proper validation of labels should include this rule. +// +// This option corresponds to the CheckBidi flag in UTS #46. func BidiRule() Option { return func(o *options) { o.bidirule = bidirule.ValidString } } @@ -152,7 +178,8 @@ func MapForLookup() Option { type options struct { transitional bool useSTD3Rules bool - validateLabels bool + checkHyphens bool + checkJoiners bool verifyDNSLength bool removeLeadingDots bool @@ -225,8 +252,11 @@ func (p *Profile) String() string { if p.useSTD3Rules { s += ":UseSTD3Rules" } - if p.validateLabels { - s += ":ValidateLabels" + if p.checkHyphens { + s += ":CheckHyphens" + } + if p.checkJoiners { + s += ":CheckJoiners" } if p.verifyDNSLength { s += ":VerifyDNSLength" @@ -255,9 +285,10 @@ var ( punycode = &Profile{} lookup = &Profile{options{ transitional: true, - useSTD3Rules: true, - validateLabels: true, removeLeadingDots: true, + useSTD3Rules: true, + checkHyphens: true, + checkJoiners: true, trie: trie, fromPuny: validateFromPunycode, mapping: validateAndMap, @@ -265,8 +296,9 @@ var ( }} display = &Profile{options{ useSTD3Rules: true, - validateLabels: true, removeLeadingDots: true, + checkHyphens: true, + checkJoiners: true, trie: trie, fromPuny: validateFromPunycode, mapping: validateAndMap, @@ -274,8 +306,9 @@ var ( }} registration = &Profile{options{ useSTD3Rules: true, - validateLabels: true, verifyDNSLength: true, + checkHyphens: true, + checkJoiners: true, trie: trie, fromPuny: validateFromPunycode, mapping: validateRegistration, @@ -339,7 +372,7 @@ func (p *Profile) process(s string, toASCII bool) (string, error) { continue } labels.set(u) - if err == nil && p.validateLabels { + if err == nil && p.fromPuny != nil { err = p.fromPuny(p, u) } if err == nil { @@ -629,16 +662,18 @@ func (p *Profile) validateLabel(s string) error { if p.bidirule != nil && !p.bidirule(s) { return &labelError{s, "B"} } - if !p.validateLabels { - return nil - } - trie := p.trie // p.validateLabels is only set if trie is set. - if len(s) > 4 && s[2] == '-' && s[3] == '-' { - return &labelError{s, "V2"} + if p.checkHyphens { + if len(s) > 4 && s[2] == '-' && s[3] == '-' { + return &labelError{s, "V2"} + } + if s[0] == '-' || s[len(s)-1] == '-' { + return &labelError{s, "V3"} + } } - if s[0] == '-' || s[len(s)-1] == '-' { - return &labelError{s, "V3"} + if !p.checkJoiners { + return nil } + trie := p.trie // p.checkJoiners is only set if trie is set. // TODO: merge the use of this in the trie. v, sz := trie.lookupString(s) x := info(v) diff --git a/vendor/golang.org/x/net/publicsuffix/table.go b/vendor/golang.org/x/net/publicsuffix/table.go index 31a034c5..c2e368db 100644 --- a/vendor/golang.org/x/net/publicsuffix/table.go +++ b/vendor/golang.org/x/net/publicsuffix/table.go @@ -2,7 +2,7 @@ package publicsuffix -const version = "publicsuffix.org's public_suffix_list.dat, git revision f9f612a3386dd9a1e4a1892722e3418549520b49 (2020-11-30T21:55:23Z)" +const version = "publicsuffix.org's public_suffix_list.dat, git revision 1e2388af5cee935fdec6dc557db41559111e3fb9 (2021-04-26T23:42:06Z)" const ( nodesBitsChildren = 10 @@ -23,499 +23,506 @@ const ( ) // numTLD is the number of top level domains. -const numTLD = 1513 +const numTLD = 1506 // Text is the combined text of all labels. -const text = "9guacuiababia-goracleaningroks-theatree12hpalermomahachijolstere" + - "trosnubalsfjordd-dnshome-webserverdal-o-g-i-n4tatsunobihirosakik" + - "amijimatsuuragrocerybnikeisenbahnaturhistorisches3-ap-south-1bip" + - "almasfjordenikonanporovnocpalmspringsakerbirdartcenterprisecloud" + - "accesscambridgeiseiyoichippubetsubetsugarussiabirkenesoddtangeno" + - "varahkkeravjuegoshikilatironrenderbirthplacevje-og-hornnes3-webs" + - "ite-us-west-1bjarkoyukuhashimojin-the-bandain-vpncateringebuildi" + - "ngladegreextraspace-to-rentalstomakomaibarabjerkreimbamblebesbyg" + - "landroverhalla-speziaustevollaziobiramswatch-and-clockereviewsai" + - "toshimattelekommunikationatuurwetenschappengine164-baltimore-og-" + - "romsdalp1bjugnieznord-odalwaysdatabaseballangenkainanaejrietisal" + - "atinabenonicatholicaxiaskimitsubatamibugattiffanyaaarborteaches-" + - "yogasawara-rugbydgoszczecinemaceratabuseating-organicbcieszynino" + - "hekinannestadiyurihonjournalistjohninomiyakonojorpelandnpanamats" + - "uzakincheonirasakindianapolis-a-bloggerblackfridayusuharabloombe" + - "rgbauernishiazaindianmarketinglassassinationalheritagebloxcms3-w" + - "ebsite-us-west-2bluedagestangemologicallyngenishigoddabmoattachm" + - "ents5yusuisservehttpanasonichernivtsiciliabmsakyotanabellunord-f" + - "rontierbmwedeployuulmemsettlersalangenishiharabnrwegroweibologna" + - "gareyamakeupowiatmallorcafederation-webhopencraftrainingleezebom" + - "loabathsbchernovtsyncloudrangedalondrinamsskoganeindielddanuorri" + - "ndigenaklodzkodairabondigitaloceanographicsxboxenishiizunazukind" + - "owapblogsiteleafamilycompany-2bonnishikataketomisatomobellevuelo" + - "sangelesjabbottjeldsundray-dnstracebookinghosted-by-previderboom" + - "lair-traffic-controlleyuzawaboschaefflerdalorenskoglitcheltenham" + - "-radio-opensocialottebostikariyameiwamarugame-hostedpictetjmaxxx" + - "finitybostonakijinsekikogentappsalon-1botanicalgardenishikatsura" + - "git-reposaltdalottokonamegatakayamassa-carrara-massacarraramassa" + - "businessebykleclerchirurgiens-dentistes-en-francebotanicgardenis" + - "hikawazukamishihoronobeauxartsandcraftsaludrayddnsfreebox-osasco" + - "li-picenordlandraydnsupdaterbotanychiryukyuragifuchungbukharauma" + - "lborkarlsoybouncemerckmsdnipropetrovskjervoyageorgeorgiabounty-f" + - "ullensakerrypropertiesalvadordalibabalena-devicesalzburgliwicebo" + - "utiquebechitachinakagawatchandclockarmoybozen-sudtirolouvrehabme" + - "rbozen-suedtirolowiczest-le-patronishimerabplaceducatorahimeshim" + - "amateraholtalenishinomiyashironohtawaramotoineppueblockbusternii" + - "minamiawajikindustriabrandywinevalleybrasiliabrindisibenikimobet" + - "suitaipeigersundrivefsnillfjordrobaknoluoktachikawafflecellcube-" + - "serverbristoloseyouriparachutinglobalashovhachinohedmarkarpaczel" + - "adzlgloboavistanbulsan-sudtirolpusercontentjomeloyalistoragebrit" + - "ishcolumbialowiezaganishinoomotegomniweatherchannelubindalublind" + - "esnesamegawabroadcastlebtimnetzparaglidinglogoweirbroadwaybroke-" + - "itvedestrandrudupontariobranconakaniikawatanagurabrokerbronnoysu" + - "ndurbanamexhibitionishinoshimatsushigebrothermesaverdeatnulvikar" + - "uizawabrowsersafetymarketsamnangerbrumunddalucaniabrunelastxjava" + - "ld-aostarnbergloppenzaolbia-tempio-olbiatempioolbialystokkembuch" + - "ikumagayagawakayamagentositecnologiabrusselsampalacebruxellesams" + - "clubartowellbeingzonebryansklepparisor-fronishiokoppegardurhambu" + - "rglugsjcbnpparibaselburgmbhartipsselfiparliamentjxn--0trq7p7nnis" + - "hitosashimizunaminamibosogndaluccargodaddyn-o-saurlandesamsungmi" + - "nakamichiharabrynewhollandynathomebuiltwithdarkarumaifarmsteadyn" + - "dns-at-homedepotenzamamidsundyndns-at-workisboringmodellingmxn--" + - "11b4c3dyndns-blogdnsandnessjoenishiwakindustriesteamfamberkeleyb" + - "uskerudyndns-freeboxoslocus-4buzentsujiiebuzzwesteuropenairbusan" + - "tiquest-a-la-maisondre-landroidyndns-homednsandoybwestfalenissan" + - "diegomurabzhitomirumalatvuopmicrolightingretakamoriokakudamatsue" + - "bzzcompute-1computerhistoryofscience-fictioncomsecaaskoyabearalv" + - "ahkijobservableusercontentoyotsukaidocondoshichinohealth-careref" + - "ormitakeharaconferenceconstructionconsuladoesntexisteingeekashiw" + - "araconsultanthropologyconsultingrongausdalcontactoyouracontagema" + - "tsubaracontemporaryarteducationalchikugodogadollsapporocontracto" + - "rskenconventureshinodeartheworkpccwhoswhokksundyndns1cookingchan" + - "nelsdvrdnsdojoburgrossetouchihayaakasakawaharacoolcooperativano-" + - "frankivskolefrakkestadynnsardegnaroycopenhagencyclopedichonanbul" + - "san-suedtirolukowestus2coproductionsardiniacorporationcorsicanon" + - "oichinomiyakecorvettemp-dnsarlcosenzakopanelastycoffeedbackplane" + - "applinzinzais-a-candidatecosidnsfor-better-thanawatchesarpsborgr" + - "oundhandlingroznynysaintlouis-a-anarchistoireggio-emilia-romagna" + - "katombetsumitakagiizecostumedicinagatorodoycouchpotatofriesarufu" + - "tsunomiyawakasaikaitabashikaoizumizakis-a-caterercoukashiwazakiy" + - "okawaracouncilcouponsasayamayfirstockholmestrandynservebbsasebof" + - "ageologycozoracqcxn--12co0c3b4evalleaostavangercranbrookuwanalyt" + - "icsaskatchewancrdynuniversitycreditcardynv6creditunioncremonashg" + - "abadaddjaguarqhachiojiyaizuwakamatsubushikusakadogawacrewiencric" + - "ketrzyncrimeast-kazakhstanangercrotonexus-3crownipartsassaris-a-" + - "celticsfancrsvps-hostrolekagoshimalopolskanlandynvpnpluscountrye" + - "stateofdelawareclaimsaudacruisesauheradyroyrvikingrpartycryptono" + - "michigangwoncuisinellajollamericanexpressexyculturalcentertainme" + - "ntoystre-slidrettozawacuneocupcakecuritibaghdadcurvalled-aostave" + - "rncymrunjargacyonabarumetacentrumeteorappasadenarashinocyouthruh" + - "erecifedexeterferrarivneferrerotikakamigaharafetsundfguidell-ogl" + - "iastraderfhskydivinguitarsavonarusawafhvalerfidontexistmein-iser" + - "vebeerfieldfigueresinstagingujoinvilleirvikasserversaillesaxofil" + - "ateliafilegear-audnedalnfilegear-debianfilegear-gbizfilegear-ief" + - "ilegear-jpmorganfilegear-sg-1filminamifuranofinalfinancefinearts" + - "choenbrunnfinlandfinnoyfirebaseappassagenschokokekschokoladenfir" + - "enetrani-andria-barletta-trani-andriafirenzefirestonefirmdalegni" + - "capetownnews-stagingulenfishingoldpoint2thisamitsukefitjarvodkaf" + - "jordvagsoygardenflfanquanpachigasakievennodesabaerobaticketschol" + - "arshipschoolsztynsettsurgeonshalloffameldalfitnessettlementrania" + - "ndriabarlettatraniandriafjalerflesbergunmansionschulezajskasukab" + - "edzin-berlindasdaburflickragerogerschulserverflightschwarzgwangj" + - "uifminamiiserniaflirfloginlinefloraflorencefloridatsunanjoetsuwa" + - "nouchikujogaszkolancashirecipescaravantaarpassenger-associationf" + - "loripaderbornfloristanohatajiris-a-chefashionflorokunohealthcare" + - "erschweizflowersciencecentersciencehistoryfltranoyflynnhosting-c" + - "lusterfndfnwkasumigaurayasudafoodnetworkdalfor-ourfor-somedizinh" + - "istorischescientistordalfor-theaterforexrothachirogatakanabeauty" + - "sfjordforgotdnscjohnsonforli-cesena-forlicesenaforlikescandyn53f" + - "orsalegolffanscrapper-siteforsandasuoloftranslatefortalfortextil" + - "eikangerfortmissoulancasterfortworthadanorth-kazakhstanfosnescra" + - "ppinguovdageaidnunusualpersonfotaruis-a-conservativegarsheis-a-c" + - "padualstackasuyanaizuerichardlillesandefjordfoxafozfrancaisehara" + - "franziskanerimaringatlantakahamalvikaszubyfredrikstadtvscrysecur" + - "itytacticservehumourfreeddnsgeekgalaxyfreedesktopocznordreisa-ho" + - "ckeynutazurestaticappspotagerfreemasonryfreesitefreetlserveircho" + - "shibuyahabackyardsangomutashinainfinitintelligencefreiburgushika" + - "mifuranorfolkebibleitungsenfreseniusculturecreationfribourgwiddl" + - "eksvikatowicefriuli-v-giuliafriuli-ve-giuliafriuli-vegiuliafriul" + - "i-venezia-giuliafriuli-veneziagiuliafriuli-vgiuliafriuliv-giulia" + - "friulive-giuliafriulivegiuliafriulivenezia-giuliafriuliveneziagi" + - "uliafriulivgiuliafrlfroganserveminecraftransportefrognfrolandfro" + - "m-akrehamnfrom-alfrom-arfrom-azurewebsiteshikagamiishibukawalbrz" + - "ycharternopilawalesundfrom-capitalonewjerseyfrom-cogxn--1ctwolom" + - "inamatargitlaborfrom-ctransurlfrom-dchoyodobashichikashukujitawa" + - "ravennagasakinderoyfrom-dedyn-berlincolnfrom-flanderservemp3from" + - "-gaulardalfrom-hichisochildrensgardenfrom-iafrom-idfrom-ilfrom-i" + - "n-brbar1from-kservep2patriafrom-kyowariasahikawafrom-lanciafrom-" + - "mamurogawafrom-mdfrom-meeresistancefrom-mifunefrom-mnfrom-modale" + - "nfrom-mservepicservequakefrom-mtnfrom-nctulangevagrigentomologye" + - "onggiehtavuoatnabudapest-a-la-masion-rancherkasydneyfrom-ndfrom-" + - "nefrom-nh-serveblogspotrapaniizafrom-njservesarcasmatartanddesig" + - "nfrom-nminamiizukaminoyamaxunispacefrom-nvalledaostaobaomoriguch" + - "iharag-cloud-charitychyattorneyagawakepnogatagajobojis-a-cubicle" + - "-slavellinodeobjectservicesevastopolefrom-nyminamimakis-a-democr" + - "atravelchannelfrom-ohdattorelayfrom-oketogurafrom-orfrom-padovak" + - "sdalfrom-pratohmandalfrom-ris-a-designerfrom-schmidtre-gauldalfr" + - "om-sdfrom-tnfrom-txn--1lqs03nfrom-utsiracusagamiharafrom-val-dao" + - "stavalleyfrom-vtravelersinsurancefrom-wafrom-wiardwebredirectmee" + - "trdfrom-wvallee-aosteroyfrom-wyfrosinonefrostalowa-wolawafroyait" + - "akaharunzenfstcgroupaviancarrierfujiiderafujikawaguchikonefujimi" + - "nokamoenairguardiannakadomarinebraskaunicommbankatsushikabeelden" + - "geluidvallee-d-aosteigenfujinomiyadattowebcampinashikiminohostfo" + - "ldnavyfujiokayamangonohejis-a-doctorayfujisatoshonairlinedre-eik" + - "erfujisawafujishiroishidakabiratoridefenseljordfujitsurugashiman" + - "gyshlakasamatsudoomdnsiskinkyotobetsumidatlantichristiansburgrim" + - "stadyndns-mailutskashibatakatorinternationalfirearmsanjotlon-2fu" + - "jixeroxfordefinimakanegasakinkobierzycefujiyoshidavvenjargap-nor" + - "theast-3fukayabeatsevenassisicilyfukuchiyamadavvesiidappnodebala" + - "ncertificationfukudomigawafukuis-a-financialadvisor-aurdalfukumi" + - "tsubishigakirovogradoyfukuokazakiryuohkurafukuroishikarikaturind" + - "alfukusakisarazure-mobileirfjordfukuyamagatakahashimamakishiwada" + - "zaifudaigojomedio-campidano-mediocampidanomediofunabashiriuchina" + - "dafunagatakahatakaishimoichinosekigaharafunahashikamiamakusatsum" + - "asendaisennangooglecodespotrendhostingfundaciofunkfeuerfuoiskuju" + - "kuriyamaniwakuratefuosskoczowiiheyakumoduminamiminowafurnituregg" + - "io-calabriafurubirafurudonostiaafurukawairportland-4-salernobori" + - "betsucksharis-a-geekatsuyamarumorimachidafusodegaurafussaikisofu" + - "kushimannore-og-uvdalfutabayamaguchinomihachimanagementrentin-su" + - "d-tirolfutboldlygoingnowhere-for-morenakasatsunairtelebitbridges" + - "toneendoftheinternethnologyfuttsurugimperiafuturecmsharpfizerfut" + - "urehostingfuturemailingfvgfyresdalhangglidinghangoutsystemscloud" + - "hannanmokuizumodenakayamanxn--1lqs71dhannortonhanyuzenhapmirclou" + - "dplatform0harstadharvestcelebrationhasamaoris-a-hunterhasaminami" + - "-alpshimokawahashbanghasudahasura-appgfoggiahasvikautokeinotogaw" + - "ahatoyamazakitahiroshimapartmentshimokitayamahatsukaichikaiseihe" + - "ijis-a-knightpointtohobby-sitehattfjelldalhayashimamotobungotaka" + - "dancehazuminobusells-for-ustkanmakiwakunigamiharutwentehelsinkit" + - "akamiizumisanofidelitysvardonnakamuratajimidorittogliattis-a-lan" + - "dscaperugiahembygdsforbundhemneshimonitayanagitappharmacienshimo" + - "nosekikawahemsedalhepforgeherokussldheroyhgtvalleeaosteinkjerusa" + - "lembroideryhidorahigashiagatsumagoianiahigashichichibunkyonanaos" + - "himageandsoundandvisionthewifiatrentin-sued-tirolhigashihiroshim" + - "anehigashiizumozakitakatakaokaluganskygearappharmacyshimosuwalki" + - "s-a-lawyerhigashikagawahigashikagurasoedahigashikawakitaaikitaky" + - "ushuaiahigashikurumegurownproviderhigashimatsushimarburghigashim" + - "atsuyamakitaakitadaitoigawahigashimurayamamotorcycleshimotsukehi" + - "gashinarusells-itrentin-suedtirolhigashinehigashiomitamamurausuk" + - "itamihamadahigashiosakasayamanakakogawahigashishirakawamatakaraz" + - "ukamakurazakitamotosumy-gatewayhigashisumiyoshikawaminamiaikitan" + - "akagusukumodernhigashitsunosegawahigashiurawa-mazowszexnetrentin" + - "o-a-adigehigashiyamatokoriyamanashiibahccavuotnagaragusadocktera" + - "mo-siemenscaledogawarabikomaezakirunoipirangalsacentralus-2higas" + - "hiyodogawahigashiyoshinogaris-a-liberalhiraizumisatohnoshoooshik" + - "amaishimofusartshimotsumahirakatashinagawahiranairtrafficplexus-" + - "1hirarahiratsukaeruhirayakagehistorichouseshinichinanhitachiomiy" + - "agildeskaliszhitachiotagoppdalhitraeumtgeradeloittenrissagaerocl" + - "ubmedecincinnationwidealstahaugesunderseaportsinfolionetworkange" + - "rhjartdalhjelmelandholeckochikushinonsenergyholidayhomegoodshinj" + - "ournalismailillehammerfeste-iphdfcbankazoologyhomeiphiladelphiaa" + - "readmyblogsytehomelinkyard-cloudnshinjukumanowruzhgorodeohomelin" + - "uxn--1qqw23ahomeofficehomesecuritymacaparecidahomesecuritypchris" + - "tmaseratiresannanisshingucciprianidyndns-office-on-the-weberhome" + - "senseeringhomeunixn--2m4a15ehondahongotembaixadahonjyoitakasagot" + - "pantheonsitehornindalhorsellsyourhomeftphilatelyhortendofinterne" + - "t-dnshinkamigototalhospitalhoteleshinshinotsurgeryhotmailhoyange" + - "rhoylandetroitskypehumanitieshinshirohurdalhurumajis-a-libertari" + - "anhyllestadhyogoris-a-linux-usershintokushimahyugawarahyundaiwaf" + - "uneis-very-badajozis-a-nursembokukitchenis-very-evillageis-very-" + - "goodyearis-very-niceis-very-sweetpepperis-with-thebandovre-eiker" + - "isleofmanaustdaljenv-arubabizjeonnamerikawauejetztrentino-stirol" + - "jevnakershusdecorativeartshiranukamitondabayashiogamagoriziajewe" + - "lryjewishartgalleryjfkddiamondshiraois-a-painterhostsolutionshin" + - "tomikasaharajgorajlljls-sto1jls-sto2jls-sto3jmphonefosshiraokami" + - "tsuejnjaworznotairestaurantrentino-s-tiroljoyentrentino-sud-tiro" + - "ljoyokaichibajddarchitecturealtorlandjpnjprshiratakahagithubuser" + - "contentrentino-sudtiroljurkosaigawakosakaerodromegallupinbarclay" + - "cards3-sa-east-1koseis-a-photographerokuapphilipsynology-disksta" + - "tionkosherbrookegawakoshimizumakiyosemitekoshunantankhakassiakos" + - "ugekotohiradomainsureggioemiliaromagnamsosnowiechurchaseljedugit" + - "-pagespeedmobilizeroticahcesuoloansanokashiharakotourakouhokutam" + - "akiyosunndalkounosupplieshitaramakouyamashikekouzushimashikizuno" + - "kunimilitarykozagawakozakis-a-playershifteditchyouriphoenixn--2s" + - "crj9chromedicaltanissettaishinomakindlecznagasukekozowildlifesty" + - "lekpnkppspdnshizukuishimogosenkrasnikahokutokashikis-a-republica" + - "ncerresearchaeologicaliforniakrasnodarkredstonekristiansandcatsh" + - "izuokamogawakristiansundkrodsheradkrokstadelvaldaostarostwodzisl" + - "awilliamhillkryminamioguni5kumatorinowtvaporcloudkumejimasoykume" + - "nantokigawakunisakis-a-rockstarachowicekunitachiarailwaykunitomi" + - "gusukumamotoyamashikokuchuokunneppubtlshoppingkunstsammlungkunst" + - "unddesignkuokgrouphxn--32vp30haebaruericssongdalenviknakatsugawa" + - "kuregruhostingkurgankurobelaudibleasingleshopwarendalenugkurogim" + - "imatakatsukis-a-socialistdlibestadkuroisoftwarezzokuromatsunais-" + - "a-soxfankurotakikawasakis-a-studentalkushirogawakustanais-a-teac" + - "herkassyno-dshinyoshitomiokamisunagawakusupplynxn--3bst00minamis" + - "anrikubetsupportrentino-sued-tirolkutchanelveruminamitanekutnoku" + - "zumakis-a-techietis-a-llamarnardalkvafjordkvalsundkvamlidlugolek" + - "adenagahamaroyerkvanangenkvinesdalkvinnheradkviteseidatingkvitso" + - "ykwpspectruminamiuonumassivegridkzmisconfusedmishimasudamissilel" + - "uxembourgmisugitokorozawamitourismilevangermitoyoakemiuramiyazur" + - "econtainerdpolicemiyotamanomjondalenmlbfanmontrealestatefarmequi" + - "pmentrentino-suedtirolmonza-brianzapposhoujis-an-actresshioyande" + - "xcloudmonza-e-della-brianzaptokuyamatsumaebashimodatemonzabrianz" + - "aramonzaebrianzamonzaedellabrianzamoonscaleforcemordoviamoriyama" + - "tsumotofukemoriyoshiminamiashigaramormonstermoroyamatsunomortgag" + - "emoscowinbarclays3-us-east-2moseushistorymosjoenmoskeneshowamoss" + - "howtimelhusgardenmosvikharkovanylvenicemoteginowaniigatakamatsuk" + - "awamoviemovimientokyotangotsukisosakitagawamozilla-iotrentinoa-a" + - "digemtranbymuginozawaonsenmuikamiokameokameyamatotakadamukoebenh" + - "avnmulhouseoullensvanguardmunakatanemuncienciamuosattemupiemonte" + - "murmanskhersonmurotorcraftrentinoaadigemusashimurayamatsusakahog" + - "inankokubunjis-an-anarchistoricalsocietymusashinoharamuseetrenti" + - "noalto-adigemuseumverenigingmusicarrdmutsuzawamy-vigorgemy-wangg" + - "ouvicircustomer-ocimdbananarepublic66myactivedirectorymyasustor-" + - "elvdalmycdn77-sslattuminamiyamashirokawanabelembetsukubankharkiv" + - "alleedaostemycloudswitcheshwindmillmydattolocalhistorymyddnsking" + - "mydissentrentinoaltoadigemydobisshikis-an-artistgorymydroboehrin" + - "gerikemydsienarutolgamyeffectrentinos-tirolmyfastblogermyfirewal" + - "lonieruchomoscienceandindustrynmyforuminanomyfritzmyftpaccessigd" + - "almyhome-servermyjinomykolaivareservegame-servermymailermymediap" + - "cistrondheimmobilieniyodogawamyokohamamatsudamypepilotsilkhmelni" + - "tskiyamarylandmypetsimple-urlmyphotoshibalatinombresciamypicture" + - "sirdalmypsxn--3ds443gmysecuritycamerakermyshopblockslupskhmelnyt" + - "skyivaomythic-beastslzmytis-a-bookkeeperspectakashimaritimoldelt" + - "aiwanairforcebetsuikidsmynasushiobarackmazerbaijan-mayen-rootari" + - "beiraogashimadachicagoboatsmolapymntrentinostirolmytuleaprendema" + - "sakihokumakogenebakkeshibechambagriculturennebudejjuedischesapea" + - "kebayernrtrentinosud-tirolmyvncitadeliverydyndns-remotewdyndns-s" + - "erverisignmywireitrentinosudtirolpklabudhabikinokawabarthadselec" + - "trentin-sudtirolplantsnoasakakinokiaplatformshangrilanxessokanag" + - "awaplatter-appimientakinoueplatterpinkhplaystation-cloudplazaplc" + - "itichocolatelevisionissayokkaichiropractichitosetogakushimotogan" + - "ewportkmaxxn--12c1fe0bradescotlandyndns-iparmatta-varjjatksatxn-" + - "-12cfi8ixb8lucerneplumbingoplurinacionalpodhaleviracloudletsoknd" + - "alpodlasiellaktyubinskiptveterinaireadthedocscappgafannefrankfur" + - "trentinosued-tirolpodzonepohlpoivronpokerpokrovskmpspbar2politic" + - "artoonartdecologiapolitiendapolkowicepoltavalle-aostathellewismi" + - "llerpomorzeszowindowskrakowinnersolarssonponpesaro-urbino-pesaro" + - "urbinopesaromasvuotnaritakoelnponypordenonepornporsangerporsangu" + - "geporsgrunnanyokoshibahikariwanumatakkofuefukihaboromskogpoznanp" + - "raxis-a-bruinsfanprdpreservationpresidioprgmrprimetelemarknx-ser" + - "versicherungprincipeprivatizehealthinsuranceprofesionalprogressi" + - "venneslaskerrylogisticsolognepromombetsurfastvps-serveronakanoto" + - "ddenpropertyprotectionprotonetrentinosuedtirolprudentialpruszkow" + - "iosolundbeckomaganeprvcyberlevagangaviikanonjis-an-engineeringpr" + - "zeworskogpulawypupioneerpvhagakhanamigawapvtrentinsud-tirolpwciv" + - "ilaviationpzqldqotoyohashimotoolsomaqponiatowadaqslingqualifioap" + - "pippugliaquickconnectrentinsudtirolquicksytestingquipelementsomn" + - "arviikamisatokaizukamikitayamatsuris-an-entertainerqvcivilisatio" + - "nsveiosvelvikomforbarcelonagawalmartattoolforgebinagisoccertmgra" + - "zimuthatogayachimataiji234lima-cityeatselinogradultateshinanomac" + - "himkentateyamaetnaamesjevuemielno-ipifony-1svizzerasvn-reposor-v" + - "arangerswidnicasadelamonedapliernewmexicodyn-vpndnsorfoldswidnik" + - "kokonoeswiebodzin-butterswiftcoverswinoujscienceandhistoryswissm" + - "arterthanyousynology-dsorocabalestrandabergamoareketunkommunalfo" + - "rbundturystykaniepcetuscanytushuissier-justicetuvalle-daostatics" + - "oundcastronomy-routertuxfamilytwmailvestre-slidreplantationvestr" + - "e-totennishiawakuravestvagoyvevelstadvibo-valentiavibovalentiavi" + - "deovillasouthwest1-uslivinghistoryvinnicaseihicampobassociatest-" + - "iservecounterstrikevinnytsiavipsinaappittsburghofficialvirginiav" + - "irtual-userveexchangevirtualcloudvirtualservervirtualuserveftpiw" + - "atevirtueeldomein-vigorlicevirtuelvisakegawaviterboknowsitallviv" + - "olkenkundenvixn--3hcrj9clanbibaidarmeniavlaanderenvladikavkazimi" + - "erz-dolnyvladimirvlogintoyonezawavminiservervologdanskommunevolv" + - "olkswagentsowavolyngdalvoorloperauniterois-gonevossevangenvotevo" + - "tingvotoyonowiwatsukiyonoshiroomgwloclawekomorotsukagawawmcloudw" + - "mflabspeedpartnersoownextdirectrevisohughesorreisahayakawakamiic" + - "hikawamisatottoris-bytomaritimekeepingworldworse-thandawowitdkom" + - "onow-dnshisognewpdevcloudwpenginepoweredwritesthisblogwroclawith" + - "googleapiszwtcircleverappsphinxn--3e0b707ewtfauskedsmokorsetagay" + - "aseralingenoamishirasatogokasells-for-lessavannahgawuozuwzmiuwaj" + - "imaxn--45q11clic20001wwwfarsundyndns-webhareidsbergentingripexn-" + - "-4gbriminingxn--4it168dxn--4it797kongsbergxn--4pvxs4allxn--54b7f" + - "ta0cclicketcloudcontrolapplicationcloud66xn--55qw42gxn--55qx5dxn" + - "--5js045dxn--5rtp49clinichofunatoriginstitutemasekasaokamiminers" + - "andvikcoromantovalle-d-aostatic-accessanfranciscofreakunemuroran" + - "gecloudyclusterxn--5rtq34kongsvingerxn--5su34j936bgsgxn--5tzm5gx" + - "n--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn--7t0a264cliniquen" + - "oharaxn--80adxhkspjelkavikomatsushimarylhurstjordalshalsenxn--80" + - "ao21axn--80aqecdr1axn--80asehdbarefootballooningjerdrumckinseyol" + - "asitebinordre-landiscoveryggeebizenakanojohanamakinoharaustinnau" + - "mburggfarmerseineastasiamuneues3-ap-southeast-2ix4432-balsan-sue" + - "dtirolkuszczytnord-aurdalipayboltatarantours3-ap-northeast-2xn--" + - "80aswgxn--80augustowithyoutuberspacekitagatargetmyiphosteurxn--8" + - "ltr62koninjambylxn--8pvr4uxn--8y0a063axn--90a3academiamicable-mo" + - "democraciaxn--90aeroportalabamagasakishimabaraogakibichuoxn--90a" + - "ishobarakawagoexn--90azhytomyravendbargainstantcloudfunctionsncf" + - "dishakotanavigationavoirmcpehimejibigawaustraliamusementdllpages" + - "3-ca-central-1xn--9dbhblg6dietritonxn--9dbq2axn--9et52uxn--9krt0" + - "0axn--andy-iraxn--aroport-byaotsurreyxn--asky-iraxn--aurskog-hla" + - "nd-jnbarreauctionfabricagliaricoharuhrxn--avery-yuasakuhokkaidop" + - "aaskvollxn--b-5gaxn--b4w605ferdxn--balsan-sdtirol-nsbspreadbetti" + - "ngxn--bck1b9a5dre4clintonoshoesantabarbaraxn--bdddj-mrabdxn--bea" + - "ralvhki-y4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7ax" + - "n--bidr-5nachikatsuuraxn--bievt-0qa2xn--bjarky-fyasakaiminatoyoo" + - "kaneyamazoexn--bjddar-ptarnobrzegyptianxn--blt-elabourxn--bmlo-g" + - "raingerxn--bod-2natalxn--bozen-sdtirol-2obanazawaxn--brnny-wuaca" + - "demy-firewall-gatewayxn--brnnysund-m8accident-investigation-apti" + - "bleadpagesquare7xn--brum-voagatroandinosaurepaircraftingvollomba" + - "rdiademonmouthagebostadxn--btsfjord-9zaxn--bulsan-sdtirol-nsbarr" + - "el-of-knowledgeappleborkaracoldwarszawaustrheimatunduhrennesoyok" + - "osukanraukraanghkeymachineustargardds3-eu-central-1xn--c1avgxn--" + - "c2br7gxn--c3s14minnesotaketakazakis-a-therapistoiaxn--cck2b3barr" + - "ell-of-knowledgehirnufcfanavuotnapleskns3-us-gov-west-1xn--cckwc" + - "xetdxn--cesena-forl-mcbremangerxn--cesenaforl-i8axn--cg4bkis-int" + - "o-animeinforumzxn--ciqpnxn--clchc0ea0b2g2a9gcdxn--comunicaes-v6a" + - "2oxn--correios-e-telecomunicaes-ghc29axn--czr694barsycenterprise" + - "sakikuchikuseikarugamvik-serverrankoshigayachiyodaejeonbukcoalph" + - "a-myqnapcloud-fr1xn--czrs0trogstadxn--czru2dxn--czrw28barsyonlin" + - "ewhampshirealtydalvdalaskanittedallasalleangaviikaascolipicenodu" + - "members3-us-west-1xn--d1acj3bashkiriauthordalandgcapebretonamicr" + - "osoftbank12xn--d1alfaromeoxn--d1atromsakatamayufuelblagrarchaeol" + - "ogyeongbuk0xn--d5qv7z876clothingdustdataitogitsuldalvivanovoldax" + - "n--davvenjrga-y4axn--djrs72d6uyxn--djty4konskowolayangrouphotogr" + - "aphysioxn--dnna-grajewolterskluwerxn--drbak-wuaxn--dyry-iraxn--e" + - "1a4cn-northwest-1xn--eckvdtc9dxn--efvn9spydebergxn--efvy88haibar" + - "akitahatakanezawaxn--ehqz56nxn--elqq16hair-surveillancexn--eveni" + - "-0qa01gaxn--f6qx53axn--fct429konsulatrobeepilepsykkylvenetodayxn" + - "--fhbeiarnxn--finny-yuaxn--fiq228c5hsrlxn--fiq64basicservercelli" + - "guriautomotiveconomiasakuchinotsuchiurakawakuyabukikonaikawachin" + - "aganoharamcoachampionshiphoptobamadridnbloggerevistaples3-eu-wes" + - "t-1xn--fiqs8srvarggatrentinsuedtirolxn--fiqz9storegontrailroadxn" + - "--fjord-lraxn--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--forl-" + - "cesena-fcbsstorfjordxn--forlcesena-c8axn--fpcrj9c3dxn--frde-gran" + - "drapidstorjcloud-ver-jpchungnamdalseidfjordyndns-picsannohelplfi" + - "nancialuxuryxn--frna-woaraisaijosoyrorostpetersburgxn--frya-hrax" + - "n--fzc2c9e2cngriwataraidyndns-wikiraxn--fzys8d69uvgmailxn--g2xx4" + - "8cnpyatigorskodjeepsondriodejaneirockartuzyxn--gckr3f0fbsbxn--1c" + - "k2e1bar0emmafann-arboretumbriamallamaceiobbcg12038xn--gecrj9cnsa" + - "ntacruzsewhalingroks-thisayamanobeokalmykiaxn--ggaviika-8ya47hak" + - "atanorthwesternmutualxn--gildeskl-g0axn--givuotna-8yasugitpagefr" + - "ontappixolinoxn--gjvik-wuaxn--gk3at1exn--gls-elacaixaxn--gmq050i" + - "s-into-carshirahamatonbetsurnadalxn--gmqw5axn--h-2failxn--h1aegh" + - "akodatexn--h2breg3evenestreams1xn--h2brj9c8cntoyotaparsantafedje" + - "ffersonxn--h3cuzk1discountysnestudioxn--hbmer-xqaxn--hcesuolo-7y" + - "a35basilicataniautoscanadaeguambulancechirealmpmnaval-d-aosta-va" + - "lleyokoteastcoastaldefenceastus2xn--hery-iraxn--hgebostad-g3axn-" + - "-hkkinen-5waxn--hmmrfeasta-s4accident-prevention-k3studynamische" + - "s-dnsopotrentinsued-tirolxn--hnefoss-q1axn--hobl-iraxn--holtlen-" + - "hxaxn--hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-54axn--i1" + - "b6b1a6a2exn--imr513nxn--indery-fyasuokannamihoboleslawiecolognew" + - "spaperxn--io0a7is-into-cartoonshirakokaminokawanishiaizubangexn-" + - "-j1aefbx-ostrowiechoseiroumuenchenissedaluroyxn--j1amhakonexn--j" + - "6w193gxn--jlq480n2rgxn--jlq61u9w7basketballfinanzgorzeleccollect" + - "ionayorovigovtaxihuanfshostyhostingjerstadotsuruokakegawaveroyke" + - "ngerdalces3-eu-west-2xn--jlster-byatominamidaitomanchesterxn--jr" + +const text = "9guacuiababia-goracleaningroks-theatree12hpalmasfjorden4tatarant" + + "ours3-ap-northeast-2ix4432-balsan-suedtirolkuszczytnord-aurdalp1" + + "kappchizip6116-b-datacentermezproxyzgorabogadobeaemcloud-fr1337b" + + "irdartcenterprisecloudaccesscambridgeiseiroumuenchenirasakincheo" + + "nishiazaindianapolis-a-bloggerbirkenesoddtangenovarahkkeravjuego" + + "shikikugawashtenawdev-myqnapcloudcontrolledekagaminogifts3-websi" + + "te-ap-southeast-2birthplacevje-og-hornnes3-website-eu-west-1bjar" + + "koyuu2-localhostrolekaniepcextraspace-to-rentalstomakomaibarabje" + + "rkreimbamblebesbyglandroverhallaakesvuemieleccebinagisoccertmgra" + + "zerbaijan-mayengerdalipaywhirlimanowarudaustevollillyokosukanrag" + + "rocerybnikeisenbahnaumburggfarmerseine164-balsfjordd-dnshome-web" + + "serverdal-o-g-i-naval-d-aosta-valleyboltateshinanomachimkentatey" + + "amajudygarlanddnslivefsnillfjorddnss3-ap-south-1bjugnieznord-oda" + + "lomzaporizhzhiablackfridayuzawabloombergbauernishigohtawaramotoi" + + "neppueblockbusterniiminamiawajikindianmarketinglitcheltenham-rad" + + "io-opencraftrainingliwicebloxcms3-website-sa-east-1bluedagestang" + + "emologicallyngenishiharabmoattachments3-website-us-east-1bms3-we" + + "bsite-us-west-1bmwedeploybnrwegroweibolognagareyamakeuparaglidin" + + "globoavistanbulsan-sudtirolondonetskaratebomloabathsbchernivtsic" + + "iliabondigitaloceanographicsxboxfordellogliastradinglogoweirbonn" + + "ishiizunazukindielddanuorrindigenamsosnowiechernovtsyncloudray-d" + + "nstracebookinghostedpictetjeldsundrayddnsfreebox-osascoli-piceno" + + "rdlandraydnsupdaterbookonlinewjerseyboomlajollamericanexpressexy" + + "boschaefflerdalondrinapleskns3-website-us-west-2bostik-serverran" + + "koshigayachts5ybostonakijinsekikogentappsselfiparisor-fronishika" + + "taketomisatomobelembetsukubankaratsuginamikatagamilanotairesakyo" + + "tanabellevuelosangelesjabbottjmaxxxenishikatsuragit-reposalangen" + + "ishikawazukamisatohoboleslawiechirurgiens-dentistes-en-francebot" + + "anicalgardeno-stagingloppenzaporizhzhedmarkareliancebotanicgarde" + + "nishimerabotanychiryukyuragifuchungbukharanzanishinomiyashironom" + + "niweatherchannelorenskoglugsjcbnpparibashkiriabouncemerckmsdnipr" + + "opetrovskjervoyageorgeorgiabounty-fullensakerrypropertiesalon-1b" + + "outiquebeconomiastalowa-wolawassamukawataricoharuovatmallorcafed" + + "eration-webpaashorokanaieboutiresindevicenzaganquannefrankfurtjo" + + "meloyalistoragebozen-sudtirolottebozen-suedtirolottokonamegataka" + + "yamassa-carrara-massacarraramassabusinessebykleclerchitachinakag" + + "awatchandclockariyameiwamarshallstatebankarlsoybplaceducatoraybr" + + "andywinevalleybrasiliabrindisibenikilatironrenderbristoloseyouri" + + "parliamentjxeroxfinitybritishcolumbialowiezakopanelastxjampalace" + + "broadcastlebtimnetzjavaldaostathelleluxembourgmbhartipschlesisch" + + "esaltdalouvrehabmerbroadwaybroke-itkmaxxn--0trq7p7nnishinoomoteg" + + "omurabrokerbronnoysundrivegarsheiheijindowapblogsiteleafamilycom" + + "pany-2brothermesaverdealerbrowsersafetymarketsaludrobaknoluoktac" + + "hikawafflecellclstagehirnrtksatxn--11b4c3drudupontariobranconaka" + + "niikawatanagurabrumunddalpusercontentlon-2brunelblagrarchaeology" + + "eongbuk0brusselsalvadordalibabalena-devicesalzburgminakamichihar" + + "abruxellesamegawabryanskleppgafanishinoshimatsusakahoginankokubu" + + "njindustriabrynewmexicodyn-o-saurlandesamnangerbuskerudurbanamex" + + "hibitionishiokoppegardurhamburgmodellingmxn--12c1fe0bradescotlan" + + "dynathomebuiltwithdarkarmoybuzentsujiiebuzzlgretakamoriokakegawa" + + "bwellbeingzonebzhitomirbzzwesteuropenairbusantiquest-a-la-maison" + + "dre-landroidyndns-at-homedepotenzaolbia-tempio-olbiatempioolbial" + + "ystokkeliwebhostingrimstadyndns-at-workisboringripecolumbusheyco" + + "mmunecommunity-prochowicecomoarekecomparemarkerryhotelsantamaria" + + "kecomsecaaskoyabearalvahkihokumakogenebakkeshibechambagriculture" + + "nnebugattiffanyaarborteaches-yogasawara-rugbydgoszczecinemacerat" + + "abuseating-organicbcieszyncondoshichinohealth-carereformemergenc" + + "yahikobeardubaiduckdnswedeniwaizumiotsukumiyamazonawsglobalaccel" + + "eratorahimeshimabaridagawalbrzycharternopilawalesundyndns-remote" + + "wdyndns-serverisignconferenceconstructionconsuladoesntexisteinge" + + "ekashibatakatorinzais-a-candidateconsultanthropologyconsultingro" + + "undhandlingroznynysaikisosakitagawacontactoyouracontagematsubara" + + "vpagexluzerncontemporaryarteducationalchikugodogadollsantoandrea" + + "mhostersanukis-a-caterercontractorskenconventureshinodearthruher" + + "ecifedexetercookingchannelsdvrdnsdojoburgrpasadenaritakoelncoolv" + + "ivanovoldacooperativano-frankivskolefrakkestadyndns-webhareidsbe" + + "rgentingruecopenhagencyclopedichonanbulsan-suedtirolubindalublin" + + "desnesamsclubartowestfalenishitosashimizunaminamibosogndalucania" + + "coproductionsaobernardocorporationcorsicahcesuoloansaogoncarrier" + + "corvettemp-dnsaotomelbournecosenzamamidorissadonnagatorogersvps-" + + "hostrowiechoseikarugamvikarpaczeladzcosidnsfor-better-thanawawsm" + + "pplanetariumemorialcostumedicinaharimalborkashiharacouchpotatofr" + + "iesapporocoukashiwaracouncilcouponsardegnarusawacozoracqcxn--12c" + + "fi8ixb8lcranbrookuwanalyticsardiniacrdyndns-wikinkobierzycecredi" + + "tcardyndns-workshoparenakanojohanamakinoharacreditunioncremonash" + + "gabadaddjaguarqhachinoheguris-a-celticsfancrewhoswholdingsmall-w" + + "ebredirectmeetoystre-slidrettozawacricketrzyncrimeast-kazakhstan" + + "angercrotonecrownipassagensarlcrsarpsborguidefenseljordyndns1cru" + + "isesarufutsunomiyawakasaikaitabashijonawatecuisinellancashirecip" + + "escaracalvinklein-berlindaskvollculturalcentertainmentozsdelmenh" + + "orstalbansasayamattelekommunikationcuneocupcakecuritibaghdadynns" + + "asebofageologycurvallee-aosteroycymrussiacyonabarumemsettlersask" + + "atchewancyouthachiojiyaizuwakamatsubushikusakadogawaferrarivnefe" + + "rrerotikagoshimalopolskanlandynv6fetsundynvpnpluscountryestateof" + + "delawareclaimsaudafgulenfhvalerfidoomdnsiskinkyotobetsumidatlant" + + "ichoshibuyahabackyardsamsungriwataraidyndns-freeboxoslocus-4fiel" + + "dyroyrvikinguitarsauheradynservebbsassaris-a-chefashionfigueresi" + + "stancefilateliafilegear-audnedalnfilegear-dealstahaugesunderseap" + + "ortsinfolionetworkangerfilegear-gbizfilegear-iefilegear-jpmorgan" + + "filegear-sg-1filminamiechizenfinalfinancefineartschokokekschokol" + + "adenfinlandfinnoyfirebaseappatriafirenetraniandriabarlettatrania" + + "ndriafirenzefirestonefirewebhopensocialfirmdalegnicapebretonamic" + + "rolightingunmaniwakuratefishingokasells-for-lesscholarshipschool" + + "sztynsettsurgeonshalloffameldalfitjarvodkafjordvagsoygardendofth" + + "einternetnedalceschulefitnessettlementranoyfjalerflekkefjordfles" + + "berguovdageaidnulminamifuranoflickragerokunohealthcareerschulser" + + "verflirfloginlinefloraflorencefloridatsunanjoetsuwanouchikujogas" + + "zkolancasterfloripaderbornfloristanohatajiris-a-cpadualstackasse" + + "rversailleschwarzgwangjuifminamiiserniafloromskogushikamifuranor" + + "e-og-uvdalflowerschweizfltranslateflynnhosting-clusterfndfnwkasu" + + "kabedzin-addrammenulvikasumigaurayasudafoodnetworkdalfor-ourfor-" + + "somedizinhistorischesciencecentersciencehistoryfor-theaterforexr" + + "othachirogatakanabeautysfjordforgotdnscientistordalforli-cesena-" + + "forlicesenaforlikescandyn53forsalegoldpoint2thisamitsukeforsanda" + + "suoloftransportefortalfortevaksdalfortmissoulanciafortworthadano" + + "rfolkebibleksvikasuyanaizuerichardlillesandefjordfosnescjohnsonf" + + "otaruis-a-cubicle-slavellinodeobjectscrapper-sitefoxafozfranamiz" + + "uhobby-sitexascrappingwiddleitungsenfrancaiseharafranziskanerima" + + "ringatlantakahamalselvendrellfredrikstadtvscrysecuritytacticserv" + + "ehttpaviancargodaddyn-vpndnservehumourfreeddnsgeekgalaxyfreedesk" + + "topocznordreisa-hockeynutazurestaticappspacehosted-by-previderfr" + + "eemasonryfreemyiphosteurovisionfreesitextileikangerfreetlserveir" + + "choyodobashichikashukujitawaraumalatvuopmicrosoftbankaruizawafre" + + "iburgxn--1ck2e1bar0emmafann-arboretumbriamallamaceiobbcg12038fre" + + "seniusculturecreationfribourgfriuli-v-giuliafriuli-ve-giuliafriu" + + "li-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-vgiul" + + "iafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-giuli" + + "afriuliveneziagiuliafriulivgiuliafrlfroganserveminecraftransurlf" + + "rognfrolandfrom-akrehamnfrom-alfrom-arfrom-azimuthatogayabukijob" + + "servableusercontentrapaniizafrom-capetownnews-stagingfrom-coffee" + + "dbackplaneappfizerfrom-ctravelchannelfrom-dchristiansburgroks-th" + + "isayamanobeokakudamatsuefrom-deatnuniversityfrom-flanderservemp3" + + "from-gaulardalfrom-hichisochildrensgardenfrom-iafrom-idfrom-ilfr" + + "om-in-brbar1from-kservep2pgfoggiafrom-kyowariasahikawafrom-lange" + + "vagrigentomologyeonggiehtavuoatnabudapest-a-la-masion-rancherkas" + + "ydneyfrom-malvikaszubyfrom-mdfrom-meerestaurantravelersinsurance" + + "from-mifunefrom-mnfrom-modalenfrom-mservepicservequakefrom-mtnfr" + + "om-nctulanservesarcasmatartanddesignfrom-ndfrom-nefrom-nh-serveb" + + "logspotrdfrom-njservicesevastopolefrom-nminamiizukaminokawanishi" + + "aizubangefrom-nvallee-d-aosteigenfrom-nyminamimakis-a-democratre" + + "ndhostingfrom-ohdattorelayfrom-oketogolffansevenassisicilyfrom-o" + + "rfrom-padoval-daostavalleyfrom-pratogurafrom-ris-a-designerfrom-" + + "schoenbrunnfrom-sdscloudfrom-tnfrom-txn--1ctwolominamatarnobrzeg" + + "yptianfrom-utsiracusagaeroclubmedecincinnativeamericanantiquest-" + + "mon-blogueurodirumadridnbloggerimo-i-rana4unjargafrom-vald-aosta" + + "rostwodzislawienfrom-vtrentin-sud-tirolfrom-wafrom-wiardwebspace" + + "from-wvalleeaosteinkjerusalempresashibetsukuis-a-doctorprojectre" + + "ntin-sudtirolfrom-wyfrosinonefrostaplesharis-a-financialadvisor-" + + "aurdalfroyaitakaharunusualpersonfstcgroupharmaciensharpharmacysh" + + "awaiijimarburgfujiiderafujikawaguchikonefujiminokamoenairlineen-" + + "rootaribeiraogashimadachicagoboatshellaspeziafujinomiyadattowebc" + + "ampinashikiminohostfoldnavyfujiokayamamurogawafujisatoshonairpor" + + "tland-4-salernoduminamiminowafujisawafujishiroishidakabiratoride" + + "bianfujitsurugashimandalfujiyoshidavvenjargap-northeast-3fukayab" + + "eatshimojis-a-geekatowicefukuchiyamadavvesiidappnodebalancertifi" + + "cationfukudomigawafukuis-a-greenfukumitsubishigakirovogradoyfuku" + + "okazakiryuohkurafukuroishikarikaturindalfukusakisarazure-mobilei" + + "rfjordfukuyamagatakahashimamakishiwadazaifudaigojomedio-campidan" + + "o-mediocampidanomediofunabashiriuchinadafunagatakahatakaishimogo" + + "senfunahashikamiamakusatsumasendaisennangonohejis-a-gurunzenfund" + + "aciofunkfeuerfuoiskujukuriyamangooglecodespotrentin-sued-tirolfu" + + "osskoczowiiheyakumodernfurnitureggio-calabriafurubirafurudonosti" + + "aafurukawairtelebitbridgestonekobayashikaoirmitakeharackmazeplay" + + "fusodegaurafussagamiharafutabayamaguchinomihachimanagementrentin" + + "-suedtirolfutboldlygoingnowhere-for-morenakatombetsumitakagiizef" + + "uttsurugimperiafuturecmshimokawafuturehostingfuturemailingfvghan" + + "gglidinghangoutsystemscloudsitehannanmokuizumodenaklodzkochikush" + + "inonsenergyhannorthwesternmutualhanyuzenhapmircloudletshimonitay" + + "anagitapphdfcbankatsuyamarugame-hostyhostinghappousrcfastly-terr" + + "ariumetacentrumeteorappassenger-associationharstadharvestcelebra" + + "tionhasamansionshimonosekikawahasaminami-alpshimosuwalkis-a-land" + + "scaperugiahashbanghasudahasura-apphiladelphiaareadmyblogsytehasv" + + "ikaufentigerhatoyamazakitahiroshimanxn--1lqs03nhatsukaichikaisei" + + "yoichippubetsubetsugarustkanmakiwakunigamiharutwentehattfjelldal" + + "hayashimamotobungotakadancehazuminobusells-for-uhelsinkitakamiiz" + + "umisanofidelitysvardontexistmein-iservebeerhembygdsforbundhemnes" + + "himotsukehemsedalhepforgeblockshimotsumaherokusslattuminamioguni" + + "5heroyhgtvalleedaostehidorahigashiagatsumagoianiahigashichichibu" + + "nkyonanaoshimakanegasakimobetsuldalhigashihiroshimanehigashiizum" + + "ozakitakatakaokalmykiahigashikagawahigashikagurasoedahigashikawa" + + "kitaaikitakyushuaiahigashikurumegurownproviderhigashimatsushimao" + + "ris-a-lawyerhigashimatsuyamakitaakitadaitoigawahigashimurayamamo" + + "torcycleshinichinanhigashinarusells-itrentino-aadigehigashinehig" + + "ashiomitamamurausukitamihamadahigashiosakasayamanakakogawahigash" + + "ishirakawamatakarazukaluganskygearapphilatelyhigashisumiyoshikaw" + + "aminamiaikitamotosumy-gatewayhigashitsunortonhigashiurawa-mazows" + + "zexnetrentino-alto-adigehigashiyamatokoriyamanashifteditorxn--1l" + + "qs71dhigashiyodogawahigashiyoshinogaris-a-liberalhiraizumisatohm" + + "apartmentshinjournalismailillehammerfeste-iphilipsynology-diskst" + + "ationhirakatashinagawahiranairtrafficplexus-1hirarahiratsukaeruh" + + "irayakagehistorichouseshinjukumamotoyamashikokuchuohitachiomiyag" + + "ildeskaliszhitachiotagoppdalhitraeumtgeradegreehjartdalhjelmelan" + + "dholeckodairaholidayhomegoodshinkamigototalhomeiphoenixn--1qqw23" + + "ahomelinkyard-cloudjiffylkesbiblackbaudcdn-edgestackhero-network" + + "inggroupowiathletajimageandsoundandvision-riopretochigiessensios" + + "itecnologiahomelinuxn--2m4a15ehomeofficehomesecuritymacaparecida" + + "homesecuritypchristmaseratinterhostsolutionsandnessjoenishiwakin" + + "ternationalfirearmsandoyhomesenseeringhomeunixn--2scrj9chromedic" + + "altanissettaishinomakinderoyhondahongotembaixadahonjyoitakasagot" + + "pantheonsitehornindalhorsellsyourhomeftphonefosshinshinotsurgery" + + "hortendofinternet-dnshinshirohospitalhoteleshintokushimahotelwit" + + "hflightshintomikasaharahotmailhoyangerhoylandetroitskypehumaniti" + + "eshinyoshitomiokamishihoronobeauxartsandcraftshiojirishirifujied" + + "ahurdalhurumajis-a-libertarianhyllestadhyogoris-a-linux-usershio" + + "yandexcloudhyugawarahyundaiwafuneis-uberleetrentino-stirolis-ver" + + "y-badajozis-a-painteractivestfoldis-very-evillageis-very-goodyea" + + "ris-very-niceis-very-sweetpepperis-with-thebandownloadisleofmana" + + "ustdaljenv-arubajddarchitecturealtoregontrailroadjeonnamerikawau" + + "ejetztrentino-sud-tiroljevnakershusdecorativeartshisognejewelryj" + + "ewishartgalleryjfkazteleportlligatrentino-sudtiroljgorajlljls-st" + + "o1jls-sto2jls-sto3jmphxn--30rr7yjnjaworznoshiroomgjoyentrentino-" + + "sued-tiroljoyokaichibalashovhadselburgjpnjprshisuifuettertdasnet" + + "zjurkosaigawakosakaerodromegallupaascolipiceno-ipifony-1koseis-a" + + "-photographerokuapphotographysiokosherbrookegawakoshimizumakiyos" + + "emitekoshunantankddiamondshizukuishimofusaitoshimatta-varjjatren" + + "tino-suedtirolkosugekotohiradomainsureggioemiliaromagnamsskogane" + + "is-a-playershiftcryptonomichigangwonkotourakouhokutamakiyosunnda" + + "lkounosupplieshopitsitekouyamashikekouzushimashikizunokunimilita" + + "rykozagawakozakis-a-republicancerresearchaeologicaliforniakozowi" + + "ldlifestylekpnkppspdnshoppingkrasnikahokutokamachintaifun-dnsali" + + "ashopwarendalenugkrasnodarkredstonekrelliankristiansandcatshouji" + + "s-a-rockstarachowicekristiansundkrodsheradkrokstadelvalle-aostat" + + "ic-accesshowakryminamisanrikubetsupportrentinoa-adigekumanottero" + + "ykumatorinow-dnshowtimelhusgardenkumejimasoykumenantokigawakunis" + + "akis-a-socialistdlibestadkunitachiarailwaykunitomigusukuleuvenet" + + "okashikis-a-soxfankunneppubtlshwilliamhillkunstsammlungkunstundd" + + "esignkuokgroupilotsienarviikamiokameokamakurazakitchenkuregruhos" + + "tingkurgankurobeepilepsykkylvenicekurogimimatakatsukis-a-student" + + "alkuroisoftwarezzokuromatsunais-a-teacherkassyno-dshirahamatonbe" + + "tsurnadalkurotakikawasakis-a-techietis-a-llamaritimoldell-oglias" + + "traderkushirogawakustanais-a-therapistoiakusupplynxn--3bst00mina" + + "mitanekutchanelkutnowruzhgorodeokuzumakis-an-accountantshirakoka" + + "miminershiranukamisunagawakvafjordkvalsundkvamlidlugolekadenagah" + + "amaroyerkvanangenkvinesdalkvinnheradkviteseidatingkvitsoykwpspec" + + "truminamiuonumassivegridkzmisconfusedmishimasudamissilewismiller" + + "misugitokorozawamitourismilezajskfh-muenstermitoyoakemiuramiyazu" + + "recontainerdpolicemiyotamanomjondalenmlbfanmontrealestatefarmequ" + + "ipmentrentinoaadigemonza-brianzapposigdalmonza-e-della-brianzapt" + + "okuyamatsumaebashikshacknetrentinoalto-adigemonzabrianzaramonzae" + + "brianzamonzaedellabrianzamoonscaleforcemordoviamoriyamatsumotofu" + + "kemoriyoshiminamiashigaramormonstermoroyamatsunomortgagemoscowin" + + "barclaycards3-external-1moseushistorymosjoenmoskenesilkhakassiam" + + "ossimple-urlmosvikharkivanylvenneslaskerrylogisticshizuokamitsue" + + "moteginowaniigatakamatsukawamoviemovimientokyotangovtrentinoalto" + + "adigemozilla-iotrentinos-tirolmtranbymuginozawaonsenmuikaminoyam" + + "axunispacemukoebenhavnmulhouseoullensvanguardmultibaasirdalmunak" + + "atanemuncienciamuosattemupimientakinouemurmanskharkovaomurotorcr" + + "aftrentinostirolmusashinoharamuseetrentinosud-tirolmuseumverenig" + + "ingmusicarbonia-iglesias-carboniaiglesiascarboniamutsuzawamy-vig" + + "orgemy-wanggouvichurchaseljedugit-pagespeedmobilizeroticagliarik" + + "uzentakataipeidsvolluccaravantaarparochernigovernmentoyosatoyoka" + + "wamyactivedirectorymyasustor-elvdalmycdmycloudnslupskhersonmydat" + + "tolocalhistorymyddnskingmydissentrentinosudtirolmydobisshikis-an" + + "-artistgstagemydroboehringerikemydslzmyeffectrentinosued-tirolmy" + + "fastblogermyfirewallonieruchomoscienceandindustrynmyforuminamiya" + + "mashirokawanabelaudibleasingmyfritzmyftpaccessmolarvikhmelnitski" + + "yamarumorimachidamyhome-servermyjinomykolaivarggatrentinosuedtir" + + "olmymailermymediapcircustomer-ocimdbananarepublic66myokohamamats" + + "udamypepinbarclays3-fips-us-gov-west-1mypetsmushcdn77-sslingmyph" + + "otoshibalatinoipirangalsaceomypicturesnoasakakinokiamypsxn--3ds4" + + "43gmysecuritycamerakermyshopblocksokndalmyshopifyresdalmythic-be" + + "astsolarssonmytis-a-bookkeeperspectakashimarcheapigeelvinckhmeln" + + "ytskyivaporcloudmytuleaprendemasakievennodesabaerobaticketsologn" + + "emyvncistrondheimmobilienissandiegomywireitrentinsud-tirolplatte" + + "rpioneerplazaplcube-serverplumbingoplurinacionalpodhalepodlasiel" + + "laktyubinskiptveterinairealmpmnpodzonepohlpoivronpokerpokrovsknx" + + "-serversicherungpoliticarrdpolitiendapolkowicepoltavalle-d-aosta" + + "ticsomnarvikomaganepomorzeszowindmillponpesaro-urbino-pesarourbi" + + "nopesaromasvuotnaroyponypordenonepornporsangerporsangugeporsgrun" + + "nanyokoshibahikariwanumatakkofuefukihabororosoopoznanpraxis-a-br" + + "uinsfanprdpresidioprgmrprimetelemarkomakiyosatokaizukamikoaniiha" + + "matamakawajimarnardalprincipeprivatizehealthinsuranceprofesional" + + "progressivestnesopotrentinsudtirolpromombetsurfaststacksavannahg" + + "apropertyprotectionprotonetrentinsued-tirolprudentialpruszkowind" + + "owskrakowinnersor-odalprvcyberlevagangaviikanonjis-an-engineerin" + + "gprzeworskogpulawypupippugliapvhagebostadpvtrentinsuedtirolpwcit" + + "adeliverydyndns-iparsanfranciscofreakunemurorangecloudplatform0p" + + "ythonanywherepaircraftingvollolipopittsburghofficialpzqldqotoyoh" + + "ashimotoolsor-varangerqponiatowadaqslgbtrentoyonakagyokutoyakolo" + + "brzegersundqualifioappiwatequickconnectrevisohughesorfoldquicksy" + + "tesorocabalestrandabergamo-siemenscaledogawarabikomaezakirunombr" + + "esciaquipelementsorreisahayakawakamiichikawamisatottoris-an-ente" + + "rtainerqvcitichitosetoeigersundyndns-blogdnsampaleomutashinaindu" + + "striesteamfamberkeleyswidnikkokonoeswiebodzin-butterswiftcoversw" + + "inoujscienceandhistoryswissmarterthanyousynology-dsowatuvalleaos" + + "taverntuxfamilytwmailvevelstadvibo-valentiavibovalentiavideovill" + + "asphinxn--3e0b707evinnicasacamdvrcampinagrandebuilderschmidtre-g" + + "auldalvinnytsiavipsinaappixolinovirginiavirtual-userveexchangevi" + + "rtualcloudvirtualservervirtualuserveftpizzavirtueeldomein-vigorl" + + "icevirtuelvisakegawaviterboknowsitallvivolkenkundenvixn--3hcrj9c" + + "ivilizationisshingucciprianidyndns-mailukowestus2vlaanderenvladi" + + "kavkazimierz-dolnyvladimirvlogintoyonezawavminiservervologdansko" + + "mmunevolvolkswagentspjelkavikomatsushimarylandvolyngdalvoorloper" + + "auniterois-foundationvossevangenvotevotingvotoyonowithyoutubersp" + + "acekitagatargitlaborwiwatsukiyonosegawawixsitewloclawekomorotsuk" + + "agawawmcloudwmflabsrhtritonwnextdirectromsojamisonwoodsideloitte" + + "mpurlworldworse-thandawowiospydebergwpdevcloudwpenginepoweredwph" + + "ostedmailwpmucdnpklabudhabikinokawabarthaebaruericssongdalenvikn" + + "akatsugawawpmudevcdnaccessokamogawawritesthisblogwroclawitdkomon" + + "otogawawtcircleverappspotagerwtfastvps-serveronakasatsunairguard" + + "iannakadomarinedre-eikerwuozuwzmiuwajimaxn--45brj9civilwarmiasak" + + "uchinotsuchiurakawatchesangoxn--45q11clanbibaidarmeniaxn--4gbrim" + + "iningxn--4it168dxn--4it797kongsbergxn--4pvxs4allxn--54b7fta0ccld" + + "mailuroyxn--55qw42gxn--55qx5dxn--5js045dxn--5rtp49clic20001wwwfa" + + "rmsteadyndns-office-on-the-weberxn--5rtq34kongsvingerxn--5su34j9" + + "36bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn-" + + "-7t0a264clicketcloudcontrolappartintuitoyotapartsanjotoyotomiyaz" + + "akinuyamashinatsukigatakasakitashiobaraxn--80aaa0cvacationsrlxn-" + + "-80adxhksrvaroyxn--80ao21axn--80aqecdr1axn--80asehdbarefootballo" + + "oningjesdalimitediscourses3-sa-east-1xn--80aswgxn--80augustowith" + + "googleapiszxn--8ltr62koninjambylxn--8pvr4uxn--8y0a063axn--90a1af" + + "lakstadaokagakicks-assnasaarlandxn--90a3academiamicable-modemone" + + "yxn--90aeroportalaheadjudaicadaquestorebaselectroandinosaurepbod" + + "ynamic-dnsoruminanoxn--90aishobarakawagoexn--90amcdirxn--90azhyt" + + "omyravendbargainstantcloudfrontdoorlandiscoveryggeehimejiiyamano" + + "uchikuhokuryugasakitanakagusukumodumcpreservationayorovnoceanogr" + + "aphiquemrhcloudishakotanfshostrodawaraustraliamuneues3-ap-southe" + + "ast-1xn--9dbhblg6dietrusteexn--9dbq2axn--9et52uxn--9krt00axn--an" + + "dy-iraxn--aroport-byaotsurreyxn--asky-iraxn--aurskog-hland-jnbar" + + "reauctioncilla-speziaustrheimatunduhrennesoyokoteastasiamusement" + + "dllpages3-ap-southeast-2xn--avery-yuasakuhokksundxn--b-5gaxn--b4" + + "w605ferdxn--balsan-sdtirol-nsbstorfjordxn--bck1b9a5dre4clickrisi" + + "nglesannaniyodogawaxn--bdddj-mrabdxn--bearalvhki-y4axn--berlevg-" + + "jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5nachikatsuurax" + + "n--bievt-0qa2xn--bjarky-fyasakaiminatoyookanazawaxn--bjddar-ptar" + + "umizusawaxn--blt-elabourxn--bmlo-graingerxn--bod-2naturalhistory" + + "museumcenterxn--bozen-sdtirol-2obanazawaxn--brnny-wuacademy-fire" + + "wall-gatewayxn--brnnysund-m8accident-investigation-aptibleadpage" + + "square7xn--brum-voagatrvestre-slidreportromsakatamayufuelverumin" + + "comcastresinstagingxn--btsfjord-9zaxn--bulsan-sdtirol-nsbarrel-o" + + "f-knowledgeappleborkaracoldwarszawauthordalandds3-ca-central-1xn" + + "--c1avgxn--c2br7gxn--c3s14minnesotaketakazakis-an-actorxn--cck2b" + + "3barrell-of-knowledgecomputerhistoryofscience-fictionfabricafjs3" + + "-us-east-2xn--cckwcxetdxn--cesena-forl-mcbremangerxn--cesenaforl" + + "-i8axn--cg4bkis-gonexn--ciqpnxn--clchc0ea0b2g2a9gcdxn--comunicae" + + "s-v6a2oxn--correios-e-telecomunicaes-ghc29axn--czr694barsycenter" + + "prisesakikonaikawachinaganoharamcoachampionshiphoptobamagazineat" + + "-urlimolisemineu-1xn--czrs0try-snowplowiczest-le-patronxn--czru2" + + "dxn--czrw28barsyonlineustargardiskussionsbereichattanooganordest" + + "e-idcasadelamonedapliernewspaperxn--d1acj3basicservercelliguriau" + + "tomotivelandeportenrittogitsulikes-piedmonticellocalzoneastcoast" + + "aldefenceastus2xn--d1alfaromeoxn--d1atrycloudflareplantationxn--" + + "d5qv7z876clinichofunatoriginstitutemasekd1xn--davvenjrga-y4axn--" + + "djrs72d6uyxn--djty4konskowolayangroupiemontexn--dnna-grajewolter" + + "skluwerxn--drbak-wuaxn--dyry-iraxn--e1a4cliniquenoharavennagasak" + + "indlecznagasukexn--eckvdtc9dxn--efvn9storjcloud-ver-jpchungnamda" + + "lseidfjordyndns-homednsandvikcoromantovalle-daostavangerxn--efvy" + + "88haibarakitahatakanezawaxn--ehqz56nxn--elqq16hair-surveillancex" + + "n--eveni-0qa01gaxn--f6qx53axn--fct429konsulatrobeeldengeluidvare" + + "serve-onlinexn--fhbeiarnxn--finny-yuaxn--fiq228c5hstpetersburgxn" + + "--fiq64basilicataniautoscanadaeguambulancentralus-2xn--fiqs8stre" + + "amscompute-1xn--fiqz9studioxn--fjord-lraxn--fjq720axn--fl-ziaxn-" + + "-flor-jraxn--flw351exn--forl-cesena-fcbsstudynamisches-dnsoundca" + + "stronomy-routerxn--forlcesena-c8axn--fpcrj9c3dxn--frde-grandrapi" + + "dstuff-4-salexn--frna-woaraisaijosoyrovigotsukisofukushimangyshl" + + "akasamatsudopaasnesoddenmarkhangelskjakdnepropetrovskiervaapstei" + + "ermarkonyvelohmusashimurayamarylhurstjordalshalsenxn--frya-hraxn" + + "--fzc2c9e2clintonoshoesannohelplfinancialutskarumaifarsundyndns-" + + "picsanokasaokamikitayamatsurinvestmentsantabarbaraxn--fzys8d69uv" + + "gmailxn--g2xx48clothingdustdataitogakushimotoganewyorkshirebungo" + + "onordkappartyxn--gckr3f0fauskedsmokorsetagayaseralingenoamishira" + + "satogliattis-a-conservativegasaveincloudynufcfanxn--gecrj9cn-nor" + + "thwest-1xn--ggaviika-8ya47hakatanorth-kazakhstanxn--gildeskl-g0a" + + "xn--givuotna-8yasugitpagefrontapplantsolundbeckmpspbar2xn--gjvik" + + "-wuaxn--gk3at1exn--gls-elacaixaxn--gmq050is-into-animeinforumzxn" + + "--gmqw5axn--gnstigbestellen-zvbrplsbxn--3oq18vl8pn36axn--gnstigl" + + "iefern-wobihirosakikamijimatsushigexn--h-2failxn--h1aeghakodatex" + + "n--h1ahnxn--h1alizxn--h2breg3evenestufftoread-booksnesouthcaroli" + + "natalxn--h2brj9c8cngrondarxn--h3cuzk1discountysnestuttgartrogsta" + + "dxn--hbmer-xqaxn--hcesuolo-7ya35basketballfinanzgorzeleccogjovik" + + "aragandaveroykenflfanpachigasakids3-eu-central-1xn--hery-iraxn--" + + "hgebostad-g3axn--hkkinen-5waxn--hmmrfeasta-s4accident-prevention" + + "-k3susakis-bytomaritimekeepingxn--hnefoss-q1axn--hobl-iraxn--hol" + + "tlen-hxaxn--hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-54ax" + + "n--i1b6b1a6a2exn--imr513nxn--indery-fyasuokannamihokkaidovre-eik" + + "erxn--io0a7is-into-carshiraokamitondabayashiogamagoriziaxn--j1ad" + + "platformshangrilaquilanxessomaxn--j1aefbsbxn--12co0c3b4evalled-a" + + "ostaobaomoriguchiharag-cloud-charitychyattorneyagawakayamagnethn" + + "ologyxn--j1ael8batochiokinoshimaintenanceu-2xn--j1amhakonexn--j6" + + "w193gxn--jlq480n2rgxn--jlq61u9w7batsfjordisrechtranakaiwamizawav" + + "ocatanzarowbq-aukraanghkembuchikumagayagawakepnogatagajoboji234l" + + "ima-cityeatselinogradult3l3p0rtatamotorsitestingdyniabruzzoologi" + + "calabamagasakishimabaraogakibichuobiraetnaamesjevuemielnoboribet" + + "sucks3-ap-northeast-1xn--jlster-byatominamidaitomanchesterxn--jr" + "peland-54axn--jvr189mintereisenxn--k7yn95exn--karmy-yuaxn--kbrq7" + "oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7dx" + - "n--kltx9axn--klty5xn--3oq18vl8pn36axn--koluokta-7ya57hakubahcavu" + - "otnagaivuotnagaokakyotambabyenglandxn--kprw13dxn--kpry57dxn--kpu" + - "t3is-into-gamessinazawaxn--krager-gyatsukanoyaltakasugais-leetre" + - "ntino-aadigexn--kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--" + - "krjohka-hwab49jdevcloudjiffylkesbiblackbaudcdn-edgestackhero-net" + - "workinggroupaashorokanaiexn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-" + - "fyatsushiroxn--kvnangen-k0axn--l-1fairwindstuff-4-salexn--l1acce" + - "ntureklamborghinikolaeventstufftoread-booksnesor-odalxn--laheadj" + - "u-7yawaraxn--langevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagaviika" + - "-52batochiokinoshimaintenanceobninskaragandavocatanzarowbq-aursk" + - "og-holandingdyniajudaicadaquest-mon-blogueurovision-riopretobish" + - "imagazinekobayashikshacknetnedalaheadjudygarlanddnslivelanddnss3" + - "-ap-southeast-1xn--lesund-huaxn--lgbbat1ad8jdfastlylbanzaiclouda" + - "ppscbgivingjemnes3-fips-us-gov-west-1xn--lgrd-poacctromsojamison" + - "xn--lhppi-xqaxn--linds-pramericanartrusteexn--lns-qlaquilanstutt" + - "gartrentoyonakagyokutoyakolobrzegersundxn--loabt-0qaxn--lrdal-sr" + - "axn--lrenskog-54axn--lt-liacolonialwilliamsburgrondarxn--lten-gr" + - "anexn--lury-iraxn--m3ch0j3axn--mely-iraxn--merker-kuaxn--mgb2dde" + - "susakis-certifiedunetlifyis-a-musicianxn--mgb9awbfbxostrowwlkpmg" + - "ruexn--mgba3a3ejtrvaroyxn--mgba3a4f16axn--mgba3a4fra1-dexn--mgba" + - "7c0bbn0axn--mgbaakc7dvfedorainfracloudfrontdoorxn--mgbaam7a8haku" + - "is-a-greenxn--mgbab2bdxn--mgbah1a3hjkrdxn--mgbai9a5eva00batsfjor" + - "diskussionsbereichattanooganordeste-idcasertairanzanhktcmemergen" + - "cyahikobeardubaiduckdns3-us-west-2xn--mgbai9azgqp6jejuniperxn--m" + - "gbayh7gpaleoxn--mgbbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn--mgber" + - "p4a5d4a87gxn--mgberp4a5d4arxn--mgbgu82axn--mgbi4ecexposedxn--mgb" + - "pl2fhappouxn--mgbqly7c0a67fbcoloradoplateaudiopsysantamariakexn-" + - "-mgbqly7cvafr-1xn--mgbt3dhdxn--mgbtf8flatangerxn--mgbtx2bauhausp" + - "osts-and-telecommunicationswedeniwaizumiotsukumiyamazonawsmpplan" + - "etariumemorialillyombolzano-altoadigeometre-experts-comptables3-" + - "website-ap-northeast-1xn--mgbx4cd0abbvieeexn--mix082fedorapeople" + - "gallodingenxn--mix891fedoraprojectozsdeportevadsobetsulikes-pied" + - "monticellocalzonexn--mjndalen-64axn--mk0axin-dslgbtrycloudflarep" + - "bodynamic-dnsortlandxn--mk1bu44columbusheyxn--mkru45is-lostre-to" + - "teneis-a-nascarfanxn--mlatvuopmi-s4axn--mli-tlarvikonyvelolipopu" + - "sinteractivegashisuifuettertdasnetzxn--mlselv-iuaxn--moreke-juax" + - "n--mori-qsakuragawaxn--mosjen-eyawatahamaxn--mot-tlavagiskexn--m" + - "re-og-romsdal-qqbuseranishiaritakurashikis-not-certifiedxn--msy-" + - "ula0hakusanagochijiwadellogliastradingxn--mtta-vrjjat-k7aflaksta" + - "daokagakicks-assnasaarlandxn--muost-0qaxn--mxtq1misakis-an-accou" + - "ntantshiojirishirifujiedaxn--ngbc5azdxn--ngbe9e0axn--ngbrxn--3px" + - "u8komvuxn--30rr7yxn--nit225kooris-a-personaltrainerxn--nmesjevue" + - "mie-tcbalsan-sudtirollagdenesnaaseinet-freaksusonoxn--nnx388axn-" + - "-nodessakurais-savedxn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn" + - "--ntsq17gxn--nttery-byaeservehalflifeinsurancexn--nvuotna-hwaxn-" + - "-nyqy26axn--o1achernihivgubsuzakananiikappuboliviajessheimpertri" + - "xcdn77-secureggiocalabriaxn--o3cw4haldenxn--o3cyx2axn--od0algxn-" + - "-od0aq3beneventoeidskoguchikuzenvironmentalconservationionjukudo" + - "yamaizuruovat-band-campaniavoues3-eu-west-3utilities-1kappchizip" + - "6116-b-datacentermezgorabogadobeaemcloud-dealerimo-i-rana4u2-loc" + - "alhostrodawarabruzzoologicalvinklein-addrammenuorochestereport3l" + - "3p0rtashkentatamotors3-ap-northeast-1337xn--ogbpf8flekkefjordxn-" + - "-oppegrd-ixaxn--ostery-fyaxn--osyro-wuaxn--otu796dxn--p1acfeiraq" + - "uarelleaseeklogesaveincloudxn--p1ais-slickazteleportlligatrentin" + - "o-alto-adigexn--pgbs0dhlxn--porsgu-sta26fermochizukirkenesaves-t" + - "he-whalessandria-trani-barletta-andriatranibarlettaandriaxn--pss" + - "u33lxn--pssy2uxn--q9jyb4communewyorkshirebungoonordkappartintuit" + - "oyotomiyazakinuyamashinatsukigatakasakitauraxn--qcka1pmcdirxn--q" + - "qqt11misasaguris-an-actorxn--qxa6axn--qxamsterdamnserverbaniaxn-" + - "-rady-iraxn--rdal-poaxn--rde-ulavangenxn--rdy-0nabaris-uberleetr" + - "entino-altoadigexn--rennesy-v1axn--rhkkervju-01aferraraxn--rholt" + - "-mragowoodsidevelopmentrysiljanxn--rhqv96gxn--rht27zxn--rht3dxn-" + - "-rht61exn--risa-5nativeamericanantiquesuzukanazawaxn--risr-iraxn" + - "--rland-uuaxn--rlingen-mxaxn--rmskog-byaxn--rny31halsaitamatsuku" + - "ris-a-gurusrcfastly-terrariuminamiechizenxn--rovu88bentleyomitan" + - "observerxn--rros-granvindafjordxn--rskog-uuaxn--rst-0naturalhist" + - "orymuseumcenterxn--rsta-franamizuholdingsmall-webhostingxn--rvc1" + - "e0am3exn--ryken-vuaxn--ryrvik-byaxn--s-1faithammarfeastafricarbo" + - "nia-iglesias-carboniaiglesiascarboniaxn--s9brj9community-prochow" + - "icexn--sandnessjen-ogbeppublishproxyzjampagexlimanowarudaxarnetf" + - "lixilovecollegefantasyleaguernseyokozeatonsbergivestbytemarkanza" + - "kiwielunnerhcloudiscourses3-external-1xn--sandy-yuaxn--sdtirol-n" + - "2axn--seral-lraxn--ses554gxn--sgne-graphoxn--42c2d9axn--skierv-u" + - "tazasuzukis-foundationxn--skjervy-v1axn--skjk-soaxn--sknit-yqaxn" + - "--sknland-fxaxn--slat-5naturalsciencesnaturellesvalbardunloppaci" + - "ficivilizationxn--slt-elabcn-north-1xn--smla-hraxn--smna-gratang" + - "entlentapisa-geekopervikfh-muensterxn--snase-nraxn--sndre-land-0" + - "cbeskidyn-ip24xn--snes-poaxn--snsa-roaxn--sr-aurdal-l8axn--sr-fr" + - "on-q1axn--sr-odal-q1axn--sr-varanger-ggbestbuyshouses3-website-a" + - "p-southeast-1xn--srfold-byaxn--srreisa-q1axn--srum-gratis-a-bull" + - "s-fanxn--stfold-9xaxn--stjrdal-s1axn--stjrdalshalsen-sqbetainabo" + - "xfusejnyanagawaltervistaikikugawashingtondclk3xn--stre-toten-zcb" + - "hzcasinorddalimitedisrechtranaharimalselvendrellimoliseminempres" + - "ashibetsukuibmdivtasvuodnakaiwamizawaweddingjesdalivornoceanogra" + - "phiquemrxn--t60b56axn--tckwebspacexn--tiq49xqyjelasticbeanstalka" + - "zunotteroyxn--tjme-hraxn--tn0agrinetbankoryokamikawanehonbetsuru" + - "taharaxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trentin-sd-tiro" + - "l-rzbieidsvollombardynaliasnesoddenmarkhangelskjakdnepropetrovsk" + - "iervaapsteiermarkarasjohkamikoaniihamatamakawajimarriottcp4xn--t" + - "rentin-sdtirol-7vbrplsbxn--45br5cylxn--trentino-sd-tirol-c3biela" + - "washtenawdev-myqnapcloudcontrolledekagaminogifts3-website-ap-sou" + - "theast-2xn--trentino-sdtirol-szbiellaakesvuemielecceu-1xn--trent" + - "inosd-tirol-rzbieszczadygeyachts3-website-eu-west-1xn--trentinos" + - "dtirol-7vbievathletajimabaridagawakkanaibetsubamericanfamilydscl" + - "ouderacingjovikarasjokarasuyamarshallstatebankarateu-2xn--trenti" + - "nsd-tirol-6vbifukagawassamukawatarikuzentakatainaioirasebastopol" + - "ogyeongnamegawafaicloudineat-urlomzaporizhzheguriitatebayashijon" + - "awateu-3xn--trentinsdtirol-nsbigv-infolldalondonetskaratsuginami" + - "katagamilanoticias3-website-sa-east-1xn--trgstad-r1axn--trna-woa" + - "xn--troms-zuaxn--tysvr-vraxn--uc0atvestfoldxn--uc0ay4axn--uist22" + - "hamurakamigoris-a-hard-workershawaiijimarcheapigeelvinckaufenxn-" + - "-uisz3gxn--unjrga-rtarumizusawaxn--unup4yxn--uuwu58axn--vads-jra" + - "xn--valle-aoste-ebbtunesorumincomcastresindevicenzaporizhzhiaxn-" + - "-valle-d-aoste-ehbodoes-it1-eurxn--valleaoste-e7axn--valledaoste" + - "-ebbvacationsvcivilwarmiastagets-itmparochernigovernmentoyosatoy" + - "okawaxn--vard-jraxn--vegrshei-c0axn--vermgensberater-ctbihorolog" + - "yonagoyaxn--vermgensberatung-pwblogoipizzaxn--vestvgy-ixa6oxn--v" + - "g-yiabkhaziaxn--vgan-qoaxn--vgsy-qoa0jelenia-goraxn--vgu402comob" + - "araxn--vhquvestnesouthcarolinarvikomakiyosatokamachintaifun-dnsa" + - "liashishikuis-a-patsfanxn--vler-qoaxn--vre-eiker-k8axn--vrggt-xq" + - "adxn--vry-yla5gxn--vuq861bikedaemoneyonagunicloudivttasvuotnakam" + - "agayahooguyoriikarelianceu-4xn--w4r85el8fhu5dnraxn--w4rs40lxn--w" + - "cvs22dxn--wgbh1comparemarkerryhotelsantoandreamhostersanukinvest" + - "mentsaobernardownloadyndns-workshopitsitexasaogoncasacamdvrcampi" + - "nagrandebuilderschlesischesaotomelbournexn--wgbl6axn--xhq521bilb" + - "aokinawashirosatochigiessensiositechnologyoshiokanumazuryukiiyam" + - "anouchikuhokuryugasakitashiobaraxn--xkc2al3hye2axn--xkc2dl3a5ee0" + - "handsonyoursidelmenhorstalbanshellaspeziaxn--y9a3aquariumisawaxn" + - "--yer-znaturbruksgymnxn--yfro4i67oxn--ygarden-p1axn--ygbi2ammxn-" + - "-45brj9cldmailuzernxn--ystre-slidre-ujbillustrationredumbrellahp" + - "piacenzachpomorskienhlfanhs3-website-us-east-1xn--zbx025dxn--zf0" + - "ao64axn--zf0avxlxn--zfr164biocelotenkawaxnbayxz" + "n--kltx9axn--klty5xn--3pxu8komvuxn--32vp30hagakhanamigawaxn--kol" + + "uokta-7ya57hakubahcavuotnagaivuotnagaokakyotambabyenglandxn--kpr" + + "w13dxn--kpry57dxn--kput3is-into-cartoonshiratakahagithubusercont" + + "entrentino-altoadigexn--krager-gyatsukanoyaltakasugais-into-game" + + "ssinazawaxn--kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--krj" + + "ohka-hwab49jdevcloudfunctionshishikuis-a-patsfanxn--ksnes-uuaxn-" + + "-kvfjord-nxaxn--kvitsy-fyatsushiroxn--kvnangen-k0axn--l-1fairwin" + + "dsusonoxn--l1accentureklamborghinikolaeventsuzakanagawaxn--lahea" + + "dju-7yawaraxn--langevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagavii" + + "ka-52bauhausposts-and-telecommunicationsncfditchyouripalmsprings" + + "akerxn--lesund-huaxn--lgbbat1ad8jdfastlylbanzaicloudappspaceuser" + + "contentatsunobninskanzakiwielunnereviewsaitamatsukuribmdevelopme" + + "ntattoolforgerockartuzyolasitebinordre-landgcanonoichinomiyakebi" + + "zenakanotoddenavuotnarashinobserverevistarnbergjerstadotsuruokak" + + "amigaharaustinnavigationavoizumizakibigawamswatch-and-clockeretr" + + "osnubaltimore-og-romsdalpha-myqnapcloud66xn--lgrd-poacctrysiljan" + + "xn--lhppi-xqaxn--linds-pramericanartunespeedpartnersortlandxn--l" + + "ns-qlavagiskexn--loabt-0qaxn--lrdal-sraxn--lrenskog-54axn--lt-li" + + "acnpyatigorskodjeepsondriodejaneirodoyxn--lten-granexn--lury-ira" + + "xn--m3ch0j3axn--mely-iraxn--merker-kuaxn--mgb2ddesuzukananiikapp" + + "uboliviajessheimpertrixcdn77-secureggiocalabriaxn--mgb9awbfbx-os" + + "trowwlkpmgujoinvilleirvikashiwazakiyokawaraxn--mgba3a3ejtunkommu" + + "nalforbundxn--mgba3a4f16axn--mgba3a4fra1-deltaiwanairforcechirea" + + "dthedocscbgxn--mgba7c0bbn0axn--mgbaakc7dvfbxosaves-the-whalessan" + + "dria-trani-barletta-andriatranibarlettaandriaxn--mgbaam7a8hakuis" + + "-a-hard-workershimokitayamayfirstockholmestrandxn--mgbab2bdxn--m" + + "gbah1a3hjkrdxn--mgbai9a5eva00bellunord-frontierxn--mgbai9azgqp6j" + + "ejuniperxn--mgbayh7gpalermomahachijolsterxn--mgbbh1a71exn--mgbc0" + + "a9azcgxn--mgbca7dzdoxn--mgbcpq6gpa1axn--mgberp4a5d4a87gxn--mgber" + + "p4a5d4arxn--mgbgu82axn--mgbi4ecexposedxn--mgbpl2fhskydivingxn--m" + + "gbqly7c0a67fbcnsantacruzsewhalingrongausdaluxuryxn--mgbqly7cvafr" + + "-1xn--mgbt3dhdxn--mgbtf8flapymnturystykaneyamazoexn--mgbtx2benev" + + "entodayombolzano-altoadigeometre-experts-comptables3-us-gov-west" + + "-1xn--mgbx4cd0abbvieeexn--mix082fedorainfraclouderaxn--mix891fed" + + "orapeoplegallodingenxn--mjndalen-64axn--mk0axin-dsldxn--mk1bu44c" + + "ntoyotsukaidoxn--mkru45is-leetrentino-s-tirolxn--mlatvuopmi-s4ax" + + "n--mli-tlavangenxn--mlselv-iuaxn--moreke-juaxn--mori-qsakuragawa" + + "xn--mosjen-eyawatahamaxn--mot-tlazioxn--mre-og-romsdal-qqbuseran" + + "ishiaritakurashikis-lostre-toteneis-a-nursembokukitauraxn--msy-u" + + "la0hakusanagochijiwadefinimamateramobaraxn--mtta-vrjjat-k7afedor" + + "aprojectrani-andria-barletta-trani-andriaxn--muost-0qaxn--mxtq1m" + + "isakis-an-actresshiraois-a-musicianxn--ngbc5azdxn--ngbe9e0axn--n" + + "gbrxn--41axn--nit225kooris-a-personaltrainerxn--nmesjevuemie-tcb" + + "alsan-sudtirollagdenesnaaseinet-freaksuzukis-certifiedunetlifyis" + + "-a-nascarfanxn--nnx388axn--nodessakurais-not-certifiedxn--nqv7fs" + + "00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--nttery-byaeserveg" + + "ame-serverxn--nvuotna-hwaxn--nyqy26axn--o1achernihivgubsvalbardu" + + "nloppacificivilaviationissayokkaichiropractichocolatelevisionthe" + + "wifiatmparmatsuzakinfinitintelligencexn--o3cw4haldenxn--o3cyx2ax" + + "n--od0algxn--od0aq3bentleyomitanocelotenkawavoues3-eu-west-1xn--" + + "ogbpf8flatangerxn--oppegrd-ixaxn--ostery-fyaxn--osyro-wuaxn--otu" + + "796dxn--p1acfeiraquarelleaseeklogesavonarutolgaxn--p1ais-savedxn" + + "--pgbs0dhlxn--porsgu-sta26fermochizukirkenesaxoxn--pssu33lxn--ps" + + "sy2uxn--q7ce6axn--q9jyb4collectionxn--qcka1pmckinseyxn--qqqt11mi" + + "sasaguris-an-anarchistoricalsocietyxn--qxa6axn--qxamsterdamnserv" + + "erbaniaxn--rady-iraxn--rdal-poaxn--rde-ulaxn--rdy-0nabaris-slick" + + "autokeinoticeablevangerxn--rennesy-v1axn--rhkkervju-01aferraraxn" + + "--rholt-mragowoltlab-democraciaxn--rhqv96gxn--rht27zxn--rht3dxn-" + + "-rht61exn--risa-5naturalsciencesnaturellesvcivilisationissedaluc" + + "ernexn--risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmskog-byaxn--rn" + + "y31halsaintlouis-a-anarchistoireggio-emilia-romagnakayamannorthf" + + "lankatsushikabeebyteapplinzis-a-hunterxn--rovu88beppublishproxyo" + + "nagoyaxarnetflixilovecollegefantasyleaguernseyokozeatonsbergivin" + + "gjemnes3-eu-west-2xn--rros-granvindafjordxn--rskog-uuaxn--rst-0n" + + "aturbruksgymnxn--rsta-framercanvasveioxn--rvc1e0am3exn--ryken-vu" + + "axn--ryrvik-byaxn--s-1faithammarfeastafricapitalonewportrentino-" + + "a-adigexn--s9brj9colognexus-3xn--sandnessjen-ogbeskidyn-ip24xn--" + + "sandy-yuaxn--sdtirol-n2axn--seral-lraxn--ses554gxn--sgne-graphox" + + "n--42c2d9axn--skierv-utazasvelvikomforbarcelonagawakuyachimataij" + + "iitatebayashiibahccavuotnagaragusarts3-eu-west-3utilities-1xn--s" + + "kjervy-v1axn--skjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat-5natu" + + "rhistorischesvizzeraxn--slt-elabcn-north-1xn--smla-hraxn--smna-g" + + "ratangentlentapisa-geekopervikazunoticiashitaramaxn--snase-nraxn" + + "--sndre-land-0cbestbuyshouses3-us-west-1xn--snes-poaxn--snsa-roa" + + "xn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-varanger-g" + + "gbetainaboxfusejnyanagawalmartaxihuanhktcmembers3-us-west-2xn--s" + + "rfold-byaxn--srreisa-q1axn--srum-gratis-a-bulls-fanxn--stfold-9x" + + "axn--stjrdal-s1axn--stjrdalshalsen-sqbhzcasertairaholtalenhlfanh" + + "s3-website-ap-northeast-1xn--stre-toten-zcbieidskoguchikuzenviro" + + "nmentalconservationionjukudoyamaizuruhrxn--t60b56axn--tckwebthin" + + "gsvn-reposouthwest1-uslivinghistoryxn--tiq49xqyjelasticbeanstalk" + + "azoologyxn--tjme-hraxn--tn0agrinetbankoryokamikawanehonbetsuruta" + + "haraxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trentin-sd-tirol-" + + "rzbielawaltervistainaioirasebastopologyeongnamegawafaicloudinebr" + + "askaunicommbankarasjohkameyamatotakadazurewebsiteshikagamiishibu" + + "kawakkanaibetsubamericanfamilydsmynasushiobaracingjerdrumcpebets" + + "uikiraurskog-holandingivestbytemark12xn--trentin-sdtirol-7vbiell" + + "ahppiacenzachpomorskienikonanporocpanamatsuuraxn--trentino-sd-ti" + + "rol-c3bieszczadygeyachiyodaejeonbukcoalwaysdatabaseballangenkain" + + "anaejrietisalatinabenonicasinorddalivornowtv-infolldalombardiade" + + "mbroideryonagunicloudivtasvuodnakamagayahooguyoriikarasjokarasuy" + + "amarriottcp4xn--trentino-sdtirol-szbievat-band-campaniaxn--trent" + + "inosd-tirol-rzbifukagawashingtondclk3xn--trentinosdtirol-7vbigva" + + "lledaostargetmyipanasonicateringebuildingladedyn-berlincolninohe" + + "kinannestadivttasvuotnakamuratajimidsundiyoshiokanumazuryukin-th" + + "e-bandain-vpncatholicaxiaskimitsubatamibudejjuedischesapeakebaye" + + "rnuorochesterxn--trentinsd-tirol-6vbihorologyukuhashimoichinosek" + + "igaharaxn--trentinsdtirol-nsbikedaemonmoutheworkpccweddinglassas" + + "sinationalheritagets-itgoryurihonjournalistjohninomiyakonojorpel" + + "andrangedalombardynalias3-website-ap-southeast-1xn--trgstad-r1ax" + + "n--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvestre-totennishia" + + "wakuraxn--uc0ay4axn--uist22hamurakamigoris-a-knightpointtohnosho" + + "ooshikamaishimodatexn--uisz3gxn--unjrga-rtashkentuscanyxn--unup4" + + "yxn--uuwu58axn--vads-jraxn--valle-aoste-ebbtushuissier-justicexn" + + "--valle-d-aoste-ehbodoes-itvedestrandxn--valleaoste-e7axn--valle" + + "daoste-ebbvadsobetsuitaikikuchikuseihicampobassociatest-iserveco" + + "unterstrikeymachinewhampshirealtydalvdalaskanittedallasalleangav" + + "iikaasdaburxn--vard-jraxn--vegrshei-c0axn--vermgensberater-ctbit" + + "swidnicartoonartdecologiaxn--vermgensberatung-pwblogoiplatter-ap" + + "pinkhplaystation-cloudyclusterxn--vestvgy-ixa6oxn--vg-yiabkhazia" + + "xn--vgan-qoaxn--vgsy-qoa0jelenia-goraxn--vgu402colonialwilliamsb" + + "urgrossetouchihayaakasakawaharaxn--vhquvestvagoyxn--vler-qoaxn--" + + "vre-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq861bilbaokinawash" + + "irosatobishimagentositechnologyusuharaxn--w4r85el8fhu5dnraxn--w4" + + "rs40lxn--wcvs22dxn--wgbh1coloradoplateaudiopsysantafedjeffersonx" + + "n--wgbl6axn--xhq521billustrationredumbrellair-traffic-controlley" + + "usuisservehalflifeinsuranceu-3xn--xkc2al3hye2axn--xkc2dl3a5ee0ha" + + "ndsonyxn--y9a3aquariumisawaxn--yer-znatuurwetenschappenginexn--y" + + "fro4i67oxn--ygarden-p1axn--ygbi2ammxn--45br5cylxn--ystre-slidre-" + + "ujbioddaxn--zbx025dxn--zf0ao64axn--zf0avxlxn--zfr164biparachutin" + + "gleezeu-4xnbayxz" // nodes is the list of nodes. Each node is represented as a uint32, which // encodes the node's children, wildcard bit and node type (as an index into @@ -535,9233 +542,9307 @@ const text = "9guacuiababia-goracleaningroks-theatree12hpalermomahachijolstere" // [15 bits] text index // [ 6 bits] text length var nodes = [...]uint32{ - 0x20bc43, - 0x25d9c4, - 0x2f8cc6, - 0x217243, - 0x217246, - 0x38e886, - 0x3bb603, - 0x2392c4, - 0x3a15c7, - 0x2f8908, + 0x329b43, + 0x2f0784, + 0x31f886, + 0x21a5c3, + 0x21a5c6, + 0x399386, + 0x3bf783, + 0x277104, + 0x2029c7, + 0x31f4c8, 0x1a000c2, - 0x1f3cf47, - 0x376f09, - 0x397eca, - 0x397ecb, - 0x23a2c3, - 0x23cf05, - 0x22070c2, - 0x2f5304, - 0x2f8e43, - 0x30eb85, - 0x260ad42, - 0x360f03, - 0x2a58bc4, - 0x30f345, - 0x2e13602, - 0x21638e, - 0x25c3c3, - 0x3b3dc6, - 0x3202302, - 0x3096c7, - 0x23fa86, - 0x3606a82, - 0x28e183, - 0x235e06, - 0x2f4148, - 0x295bc6, - 0x3c7c04, + 0x1f3cd07, + 0x37f349, + 0x2ddb4a, + 0x2ddb4b, + 0x23d883, + 0x23f745, + 0x2202ac2, + 0x28c4c4, + 0x2c9743, + 0x3734c5, + 0x2602c02, + 0x354743, + 0x2a85584, + 0x374945, + 0x2e0f242, + 0x229d8e, + 0x260543, + 0x3b9946, + 0x3205b42, + 0x378ac7, + 0x242446, + 0x36041c2, + 0x293b03, + 0x232946, + 0x38ec88, + 0x298246, + 0x359944, 0x3a00ac2, - 0x34b449, - 0x220787, - 0x32e5c6, - 0x36ba09, - 0x3ce888, - 0x210944, - 0x2acb06, - 0x2076c6, - 0x3e02002, - 0x38cc46, - 0x24d68f, - 0x3cdb8e, - 0x22b1c4, - 0x234c85, - 0x330d45, - 0x3aaa09, - 0x247e89, - 0x236607, - 0x2584c6, - 0x267083, - 0x422d0c2, - 0x22d543, - 0x29b5ca, - 0x4609983, - 0x3403c5, - 0x30a8c2, - 0x3a4f89, - 0x4e03b42, - 0x207a04, - 0x354186, - 0x243885, - 0x36ebc4, - 0x5626e04, - 0x203b43, - 0x23c4c4, - 0x5a030c2, - 0x25b344, - 0x5f2d504, - 0x316d0a, + 0x34b549, + 0x22d607, + 0x2094c6, + 0x3679c9, + 0x224748, + 0x210204, + 0x2f9546, + 0x207b46, + 0x3e03742, + 0x239b06, + 0x216b8f, + 0x3cd40e, + 0x22ff04, + 0x311205, + 0x32dbc5, + 0x3aec89, + 0x2494c9, + 0x233147, + 0x221b46, + 0x21da43, + 0x420b602, + 0x233843, + 0x2b200a, + 0x4602043, + 0x3402c5, + 0x30c842, + 0x3ab409, + 0x4e00ec2, + 0x207e84, + 0x346706, + 0x2c54c5, + 0x376bc4, + 0x5646644, + 0x2030c3, + 0x23a844, + 0x5a00b82, + 0x3e3104, + 0x5f35d04, + 0x3e1b0a, 0x6200882, - 0x3cd347, - 0x27b5c8, - 0x7a08502, - 0x336287, - 0x2d36c4, - 0x2d36c7, - 0x38aa45, - 0x38bf07, - 0x34a906, - 0x29ac84, - 0x3633c5, - 0x282507, - 0x920c142, - 0x38cdc3, - 0x960b4c2, - 0x3b5e03, - 0x9a08742, - 0x2691c5, + 0x2b82c7, + 0x36f9c8, + 0x7a01e02, + 0x335087, + 0x2f5404, + 0x2f5407, + 0x3ea985, + 0x381247, + 0x340886, + 0x349f84, + 0x3544c5, + 0x26d147, + 0x9205202, + 0x239c83, + 0x961a7c2, + 0x3b6143, + 0x9a04142, + 0x26e645, 0x9e00202, - 0x371604, - 0x387345, - 0x22b107, - 0x2e954e, - 0x206984, - 0x283b04, - 0x2079c3, - 0x30d489, - 0x2c4e4b, - 0x2e1248, - 0x32b788, - 0x3328c8, - 0x20a888, - 0xa36b84a, - 0x38be07, - 0x2f7086, - 0xa617282, - 0x35ca43, - 0x3d6443, - 0x3d8084, - 0x35ca83, - 0x3bb643, - 0x1738b82, - 0xaa04702, - 0x28a385, - 0x261e86, - 0x252084, - 0x3b0cc7, - 0x25b186, - 0x2d4704, - 0x3be9c7, - 0x204703, - 0xb2dc982, - 0xb728c42, - 0xba13982, - 0x230646, - 0xbe00282, - 0x26b385, - 0x33a0c3, - 0x3de644, - 0x2fd584, - 0x2fd585, - 0x3e9683, - 0xc253c43, - 0xc606342, - 0x20e9c5, - 0x20e9cb, - 0x223c8b, - 0x20e804, - 0x20ee49, - 0x210404, - 0xca10d82, - 0x211a83, - 0x2121c3, - 0xce02502, - 0x23020a, - 0xd20bd42, - 0x2f5585, - 0x2ece4a, - 0x246f44, - 0x213f43, - 0x2154c4, - 0x2178c3, - 0x2178c4, - 0x2178c7, - 0x218705, - 0x219546, - 0x21a186, - 0x2172c3, - 0x220f88, - 0x215b03, - 0xd604242, - 0x2fc548, - 0x295e4b, - 0x229c88, - 0x22ac46, - 0x22b987, - 0x22e908, - 0xee016c2, - 0xf2295c2, - 0x278408, - 0x20b947, - 0x206e85, - 0x3e2208, - 0xf61c008, - 0x26a0c3, - 0x235a44, - 0x38e902, - 0xfa36c42, - 0xfe07f42, - 0x10637242, - 0x237243, - 0x10a04182, - 0x312683, - 0x2135c4, - 0x210903, - 0x210904, - 0x3a264b, - 0x204183, - 0x2f27c6, - 0x284a84, - 0x2ccf8e, - 0x240ec5, - 0x257008, - 0x2716c7, - 0x2716ca, - 0x21b9c3, - 0x25d7c7, - 0x2c5005, - 0x239e44, - 0x25ef06, - 0x25ef07, - 0x3601c4, - 0x10f10344, - 0x3169c4, - 0x3169c6, - 0x25d4c4, - 0x3c2086, - 0x206c43, - 0x206c48, - 0x20b2c8, - 0x2b3843, - 0x2301c3, - 0x344544, - 0x357203, - 0x11604042, - 0x11aea202, - 0x217843, - 0x203c06, - 0x3796c3, - 0x2fd344, - 0x11efd0c2, - 0x343583, - 0x332f83, - 0x21cdc2, - 0x12200d42, - 0x2d7946, - 0x228b07, - 0x27b347, - 0x2c7cc5, - 0x386404, - 0x3d4a45, - 0x3dcc47, - 0x2b5ec9, - 0x2cb106, - 0x2c7bc6, - 0x1320c602, - 0x2b6688, - 0x321346, - 0x327b05, - 0x2f7787, - 0x2fafc4, - 0x2fafc5, - 0x1370e7c4, - 0x30e7c8, - 0x13a08d02, - 0x13e00482, - 0x24c3c6, + 0x379b84, + 0x239305, + 0x22fe47, + 0x2f78ce, + 0x2c4ac4, + 0x219684, + 0x207e43, + 0x3bc989, + 0x2e700b, + 0x2f8288, + 0x32acc8, + 0x330248, + 0x3d0bc8, + 0xa36780a, + 0x381147, + 0x3d7f06, + 0xa61a602, + 0x271d03, + 0x3dfa43, + 0x3e1204, + 0x271d43, + 0x396303, + 0x17385c2, + 0xaa02b82, + 0x28ffc5, + 0x266446, + 0x2a59c4, + 0x3a94c7, + 0x24f486, + 0x2d64c4, + 0x3c13c7, + 0x2194c3, + 0xb6e29c2, + 0xbb27082, + 0xbe27bc2, + 0x227bc6, + 0xc200282, + 0x269185, + 0x339b03, + 0x3d9704, + 0x2fe784, + 0x2fe785, + 0x3ef083, + 0xc658843, + 0xca06f02, + 0x20d3c5, + 0x20d3cb, + 0x20e18b, + 0x2045c4, + 0x20d7c9, + 0x20fcc4, + 0xce10602, + 0x210e43, + 0x2113c3, + 0xd20a182, + 0x21e78a, + 0xd602a02, + 0x28c745, + 0x2f348a, + 0x2510c4, + 0x212a43, + 0x213104, + 0x2151c3, + 0x2151c4, + 0x2151c7, + 0x217005, + 0x217c06, + 0x2183c6, + 0x21a643, + 0x21ffc8, + 0x213743, + 0xda037c2, + 0x230d08, + 0x2984cb, + 0x2284c8, + 0x229146, + 0x22a187, + 0x22d208, + 0xf205f42, + 0xf6272c2, + 0x27c848, + 0x2370c7, + 0x314b85, + 0xfb14b88, + 0xfe23848, + 0x2551c3, + 0x2319c4, + 0x399402, + 0x10232002, + 0x106083c2, + 0x10e32382, + 0x232383, + 0x11203702, + 0x30e183, + 0x220ec4, + 0x207243, + 0x2101c4, + 0x24f18b, + 0x203703, + 0x2fa346, + 0x28cfc4, + 0x2d06ce, + 0x384b05, + 0x277848, + 0x3b9a47, + 0x3b9a4a, + 0x223203, + 0x2f0587, + 0x2e71c5, + 0x238b84, + 0x25fc86, + 0x25fc87, + 0x36d4c4, + 0x117145c4, + 0x3c5a04, + 0x24ed84, + 0x3d1606, + 0x224dc3, + 0x3d5608, + 0x3d7348, + 0x29e303, + 0x21e743, + 0x343a04, + 0x356943, + 0x11e035c2, + 0x122b79c2, + 0x202546, + 0x2f9643, + 0x3b2fc4, + 0x12648fc2, + 0x29ed03, + 0x381a43, + 0x21ce82, + 0x12a02102, + 0x2dd246, + 0x21e247, + 0x36f747, + 0x2ef505, + 0x348b84, + 0x2fbb05, + 0x2d1bc7, + 0x2ba349, + 0x2bbdc6, + 0x2ef406, + 0x13a12fc2, + 0x318508, + 0x321246, + 0x30a6c5, + 0x309f47, + 0x310244, + 0x310245, + 0x373104, + 0x373108, + 0x13e0d482, + 0x14200482, + 0x254206, 0x200488, - 0x325105, - 0x3264c6, - 0x329dc8, - 0x34c608, - 0x14203ec5, - 0x16e2f004, - 0x2b0f87, - 0x1720fe82, - 0x1762e702, - 0x18a16542, - 0x354285, - 0x192904c5, - 0x241c06, - 0x3b6207, - 0x368e07, - 0x19616543, - 0x3d6787, - 0x283a08, - 0x273b4bc9, - 0x216547, - 0x3e03c7, - 0x238308, - 0x238b06, - 0x239946, - 0x23a58c, - 0x23b58a, - 0x23ba87, - 0x23cdcb, - 0x23dd47, - 0x23dd4e, - 0x2763eb84, - 0x23ec84, - 0x240d87, - 0x24be07, - 0x246386, - 0x246387, - 0x3b74c7, - 0x203643, - 0x27a13b02, - 0x248746, - 0x24874a, - 0x248acb, - 0x249f07, - 0x24aac5, - 0x24b283, - 0x24c646, - 0x24c647, - 0x2feac3, - 0x27e00102, - 0x24d30a, - 0x28378742, - 0x2863d842, - 0x28a47402, - 0x28e3fb82, - 0x24f085, - 0x24fdc4, - 0x29a0c542, - 0x25b3c5, - 0x231943, - 0x29d005, - 0x20a784, - 0x21e5c4, - 0x2d9d06, - 0x25cc06, - 0x20ebc3, - 0x3c1a44, - 0x341883, - 0x2aa03242, - 0x2b1504, - 0x3a1a46, - 0x2b1505, - 0x207106, - 0x2f7888, - 0x233d04, - 0x2b0ac8, - 0x2f3f05, - 0x27ce88, - 0x2d57c6, - 0x21c787, - 0x279ec4, - 0x2be79ec6, - 0x2c220a83, - 0x3a6543, - 0x2c05c8, - 0x334684, - 0x2c615587, - 0x280dc6, - 0x2e9b49, - 0x362488, - 0x32c448, - 0x333004, - 0x20d303, - 0x249182, - 0x2ce57f02, - 0x2d226cc2, - 0x20dd83, - 0x2d615fc2, - 0x2fea44, - 0x285786, - 0x23ca03, - 0x2c72c7, - 0x36ca43, - 0x3e1348, - 0x2253c5, - 0x267d03, - 0x3872c5, - 0x387404, - 0x3bad86, - 0x22a386, - 0x22b046, - 0x2580c4, - 0x23e103, - 0x2da15282, - 0x2de3d545, + 0x328205, + 0x34c246, + 0x34ea08, + 0x35d3c8, + 0x14602cc5, + 0x17243244, + 0x285687, + 0x1760f742, + 0x17ab90c2, + 0x18e05842, + 0x346805, + 0x19a96945, + 0x277e86, + 0x3b6547, + 0x3ba447, + 0x19e29f43, + 0x33f007, + 0x3cc1c8, + 0x27635149, + 0x229f47, + 0x235887, + 0x342548, + 0x236086, + 0x238686, + 0x23b74c, + 0x23cd0a, + 0x23d8c7, + 0x23f60b, + 0x240307, + 0x24030e, + 0x27a40ec4, + 0x241284, + 0x244887, + 0x253c47, + 0x248706, + 0x248707, + 0x32b4c7, + 0x261c03, + 0x27e0f1c2, + 0x249ec6, + 0x249eca, + 0x24ab0b, + 0x24c887, + 0x24d305, + 0x24d783, + 0x24df46, + 0x24df47, + 0x38f183, + 0x28200102, + 0x24eaca, + 0x28729c42, + 0x28ba8ac2, + 0x28e48e02, + 0x29238fc2, + 0x251805, + 0x252204, + 0x29e01bc2, + 0x3e3185, + 0x24b103, + 0x2a4585, + 0x202444, + 0x216384, + 0x2dfb06, + 0x2608c6, + 0x20d5c3, + 0x3d4804, + 0x340b43, + 0x2ae00d02, + 0x22a504, + 0x22a506, + 0x257a85, + 0x2b5a46, + 0x30a048, + 0x2138c4, + 0x31de08, + 0x38ea45, + 0x281d88, + 0x2d9f06, + 0x21ba87, + 0x27f784, + 0x2c27f786, + 0x2c605483, + 0x3ac1c3, + 0x2cc488, + 0x333444, + 0x2ca131c7, + 0x24c106, + 0x2f1289, + 0x366948, + 0x330988, + 0x332384, + 0x3d69c3, + 0x24b1c2, + 0x2d25d9c2, + 0x2d61c982, + 0x31f383, + 0x2da02b02, + 0x38f104, + 0x288c46, + 0x23eb43, + 0x2cd707, + 0x385d43, + 0x2c4b88, + 0x229545, + 0x26c9c3, + 0x239285, + 0x2393c4, + 0x3a6f86, + 0x22bb06, + 0x22fd86, + 0x25db84, + 0x2406c3, + 0x2de46882, + 0x2e23fd85, 0x200843, - 0x2e603e82, - 0x23a543, - 0x3ca805, - 0x2ea22bc3, - 0x2f23c589, - 0x2f600942, - 0x2fe05342, - 0x2973c5, + 0x2ea03402, + 0x220203, + 0x205a45, + 0x2ee24d03, + 0x2f63e6c9, + 0x2fa00942, + 0x30204f42, + 0x29bc85, + 0x21ecc6, + 0x29d146, + 0x308d88, + 0x308d8b, + 0x345ecb, + 0x38a445, + 0x2e2f49, + 0x1602642, + 0x31fb88, + 0x20dac4, + 0x30a03642, + 0x33dfc3, + 0x31253e06, + 0x3160ea82, + 0x3d11c8, + 0x31a06cc2, + 0x26f54a, + 0x322771c3, + 0x32b7f986, + 0x315d88, + 0x398846, + 0x3957c7, + 0x216d87, + 0x2076ca, + 0x251144, + 0x364a84, + 0x37ee49, + 0x32fb9585, + 0x229dc6, + 0x22e783, + 0x282a04, + 0x3320a6c4, + 0x20a6c7, + 0x33656c07, + 0x29ed44, + 0x2400c5, + 0x277f48, + 0x252d07, + 0x252f87, + 0x33a18b02, + 0x3a8084, + 0x2a51c8, + 0x2547c4, + 0x259344, + 0x259745, + 0x259887, + 0x34689bc9, + 0x25a444, + 0x25b309, + 0x25b9c8, + 0x25c604, + 0x25c607, + 0x25d7c3, + 0x25e587, + 0x34a00c02, + 0x16c7402, + 0x25f746, + 0x2bf047, + 0x2600c4, + 0x261687, + 0x263287, + 0x263883, + 0x34e62642, + 0x213802, + 0x2649c3, + 0x2649c4, + 0x2649cb, + 0x32adc8, + 0x213804, + 0x265e85, + 0x2676c7, + 0x2f4d05, + 0x31b2ca, + 0x26ac43, + 0x35202e42, + 0x215a44, + 0x271f49, + 0x275843, + 0x275907, + 0x330689, + 0x3929c8, + 0x20f283, + 0x28f107, + 0x27e1c3, + 0x295f04, + 0x2975c9, + 0x29a286, + 0x3a3f03, + 0x202a82, + 0x26dc83, + 0x2c7207, + 0x39a245, + 0x2ca6c6, + 0x29e6c4, + 0x37bf05, + 0x28fa83, + 0x21c186, + 0x218143, + 0x20d9c2, + 0x258804, + 0x356a5c02, + 0x35b10a03, + 0x35e038c2, + 0x2574c3, + 0x218844, + 0x242047, 0x21f406, - 0x2b2986, - 0x308cc8, - 0x308ccb, - 0x346d8b, - 0x35b445, - 0x2dcf09, - 0x1600b42, - 0x2d2908, - 0x20f144, - 0x30602bc2, - 0x33e203, - 0x30e4bfc6, - 0x31200fc2, - 0x20ae88, - 0x31613242, - 0x37aa4a, - 0x32239383, - 0x32b77546, - 0x318348, - 0x38db06, - 0x389c87, - 0x24d887, - 0x20724a, - 0x246fc4, - 0x360c84, - 0x376889, - 0x32fb3a05, - 0x2163c6, - 0x20bb43, - 0x263284, - 0x33232d44, - 0x32d187, - 0x3365e987, - 0x2edb44, - 0x250145, - 0x241cc8, - 0x250387, - 0x250607, - 0x33a18242, - 0x2a2704, - 0x29e388, - 0x251b04, - 0x254744, - 0x254b05, - 0x254c47, - 0x3468b8c9, - 0x2555c4, - 0x256b09, - 0x256d48, - 0x257604, - 0x257607, - 0x257d03, - 0x259ac7, - 0x34a01282, - 0x16c0502, - 0x25b506, - 0x25bb47, - 0x25c404, - 0x25e347, - 0x25f247, - 0x25fc83, - 0x34e5c082, - 0x239fc2, - 0x260743, - 0x260744, - 0x26074b, - 0x32b888, - 0x2891c4, - 0x2618c5, - 0x262fc7, - 0x2ee845, - 0x3b930a, - 0x266b03, - 0x3520eb02, - 0x21dc84, - 0x26b6c9, - 0x26f443, - 0x26f507, - 0x384989, - 0x211fc8, - 0x213bc3, - 0x286bc7, - 0x288f89, - 0x276a83, - 0x290984, - 0x291d49, - 0x2951c6, - 0x3825c3, - 0x204982, - 0x268803, - 0x2c0307, - 0x38f005, - 0x2c4c46, - 0x219a44, - 0x372285, - 0x289e43, - 0x21abc6, - 0x22e143, - 0x20c342, - 0x253c04, - 0x35634402, - 0x35a34403, - 0x35e04342, - 0x253283, - 0x21a604, - 0x323c87, - 0x21fb46, - 0x290942, - 0x3620e8c2, - 0x32c684, - 0x36a17a42, - 0x36e09ac2, - 0x3caac4, - 0x3caac5, - 0x3b6b85, - 0x37d146, - 0x37207042, - 0x207045, - 0x20f745, - 0x213dc3, - 0x2267c6, - 0x227105, - 0x2305c2, - 0x35ac85, - 0x2305c4, - 0x233c43, - 0x233e83, - 0x3760a302, - 0x2318c7, - 0x257784, - 0x257789, - 0x263184, - 0x290343, - 0x2bd008, - 0x37a90344, - 0x290346, - 0x2b05c3, - 0x262243, - 0x343b43, - 0x37f03e02, - 0x30ad42, + 0x20a682, + 0x36204682, + 0x330bc4, + 0x36a15342, + 0x36e05d02, + 0x205d04, + 0x205d05, + 0x3ce545, + 0x3b6ec6, + 0x37208442, + 0x3d5a05, + 0x3d9e45, + 0x296883, + 0x239d46, + 0x212005, + 0x227b42, + 0x35d005, + 0x227b44, + 0x230783, + 0x2309c3, + 0x3760ccc2, + 0x26d347, + 0x267884, + 0x267889, + 0x282904, + 0x2967c3, + 0x2c3e48, + 0x37a967c4, + 0x2967c6, + 0x2b5543, + 0x266803, + 0x2e9c43, + 0x37f003c2, + 0x392ec2, 0x38200642, - 0x33bfc8, - 0x2158c8, - 0x3bfcc6, - 0x385145, - 0x323e05, - 0x202347, - 0x386823c5, - 0x2038c2, - 0x38aa0a82, + 0x33b848, + 0x213508, + 0x3c4846, + 0x2916c5, + 0x234b85, + 0x209fc7, + 0x3868a905, + 0x21e682, + 0x38aa71c2, 0x38e00042, - 0x2832c8, - 0x2b65c5, - 0x302f84, - 0x250d45, - 0x2514c7, - 0x3b0184, - 0x24d202, - 0x3923b502, - 0x350984, - 0x22fec7, - 0x297b47, - 0x38bec4, - 0x3d7403, - 0x2b3784, - 0x2b3788, - 0x239c86, - 0x25ed8a, - 0x358e44, - 0x29ddc8, - 0x24ffc4, - 0x22ba86, - 0x2a0a44, - 0x354586, - 0x257a49, - 0x221247, - 0x39d543, - 0x39605102, - 0x386d03, - 0x210f82, - 0x39a027c2, - 0x268f86, - 0x3b2848, - 0x2b2b07, - 0x2331c9, - 0x2b2cc9, - 0x2b5585, - 0x2b6f09, - 0x2b7705, - 0x2b8545, - 0x2b94c8, - 0x39e17a84, - 0x3a25fdc7, - 0x2b96c3, - 0x2b96c7, - 0x3e0786, - 0x2b9c87, - 0x2af945, - 0x2d0843, - 0x3a63b342, - 0x214184, - 0x3aa11402, - 0x3ae1ec82, - 0x31e946, - 0x27b545, - 0x2bbd87, - 0x3c32c3, - 0x20ccc4, - 0x21e103, - 0x2f6883, - 0x3b2042c2, - 0x3ba08e82, - 0x38e984, - 0x25c043, - 0x308985, - 0x3be05502, - 0x3c602102, - 0x222f86, - 0x2e9484, - 0x2f0284, - 0x2f028a, - 0x3ce005c2, - 0x20e103, - 0x23498a, - 0x26a7c8, - 0x3d2b1b84, + 0x321ec8, + 0x318445, + 0x302d04, + 0x24da05, + 0x2562c7, + 0x295d04, + 0x262442, + 0x3922cf82, + 0x351b84, + 0x230607, + 0x29c207, + 0x381204, + 0x3e0443, + 0x29e244, + 0x29e248, + 0x396389c6, + 0x25fb0a, + 0x35b6c4, + 0x2a4c08, + 0x23ff44, + 0x22a286, + 0x2a7184, + 0x346b06, + 0x267b49, + 0x223d07, + 0x3a6c43, + 0x39a04d02, + 0x3c3943, + 0x210802, + 0x39e0a442, + 0x26e406, + 0x24bc88, + 0x2b6347, + 0x233549, + 0x2b6509, + 0x2b9a05, + 0x2bb609, + 0x2bc705, + 0x2bd545, + 0x2be748, + 0x3a207304, + 0x3a634307, + 0x235c43, + 0x2be947, + 0x235c46, + 0x2bf5c7, + 0x2b4445, + 0x2354c3, + 0x3aa3cac2, + 0x212c84, + 0x3ae05302, + 0x3b21d7c2, + 0x30db46, + 0x36f945, + 0x2c2507, + 0x383d03, + 0x238404, + 0x20f583, + 0x236e03, + 0x3b603842, + 0x3be075c2, + 0x399484, + 0x262603, + 0x308a45, + 0x3c209c42, + 0x3ca08102, + 0x39f646, + 0x2f7804, + 0x2fd3c4, + 0x2fd3ca, + 0x3d2005c2, + 0x203e83, + 0x310f0a, + 0x3a8488, + 0x3d658104, 0x2005c3, - 0x3d687643, - 0x326909, - 0x280609, - 0x2c73c6, - 0x3da43543, - 0x2887cd, - 0x3a8e86, - 0x3e0e8b, - 0x3de087c2, - 0x2ac948, - 0x42221082, - 0x42601e02, - 0x398285, - 0x42a02642, - 0x2b3187, - 0x202983, - 0x2272c8, - 0x42e06002, - 0x3a9984, - 0x22a003, - 0x3532c5, - 0x2491c6, - 0x22cf04, - 0x230183, - 0x44205b42, - 0x35b3c4, - 0x2beb45, - 0x2bff07, - 0x285203, - 0x2c1443, - 0x1619e82, - 0x2c1b03, - 0x2c2103, - 0x44600e02, - 0x239104, - 0x23e306, - 0x288d83, - 0x2c2a83, - 0x44a54202, - 0x254208, - 0x2c3a04, - 0x2052c6, - 0x387d07, - 0x3d4dc6, - 0x2c0544, - 0x52e025c2, - 0x3e064b, - 0x30624e, - 0x2201cf, - 0x3bc5c3, - 0x536687c2, - 0x161ee02, - 0x53a01f42, - 0x2f9843, - 0x20b603, - 0x2732c6, - 0x2cb846, - 0x2bc847, - 0x3b7004, - 0x53e1f542, - 0x542258c2, - 0x302645, - 0x32a647, - 0x2c6106, - 0x5463d782, - 0x382f04, - 0x2cc083, - 0x54a07bc2, - 0x54f73803, - 0x2cd984, - 0x2d2249, - 0x552da042, - 0x55611b82, - 0x2876c5, - 0x55ada802, - 0x56205542, - 0x35fb87, - 0x37718b, - 0x24d645, - 0x264489, - 0x275d46, - 0x56608004, - 0x208009, - 0x2f9cc7, - 0x349887, - 0x205543, - 0x2f1a46, - 0x351887, - 0x24c243, - 0x2a4106, - 0x56e1f002, - 0x57225e82, - 0x217443, - 0x3a5145, - 0x21c307, - 0x23f286, - 0x38ef85, - 0x263104, - 0x2aee85, - 0x390bc4, - 0x5760b402, - 0x2d8d84, - 0x2cbe44, - 0x39c84d, - 0x2cbe49, - 0x237848, - 0x262c84, - 0x38d345, - 0x3c2307, - 0x3c2bc4, - 0x273847, - 0x228f05, - 0x57ab4484, - 0x2c5b45, - 0x26e104, - 0x316546, - 0x3b6005, - 0x57e6b2c2, - 0x225e43, - 0x333e43, - 0x2c8784, - 0x2c8785, - 0x208c86, - 0x235585, - 0x263944, - 0x58392e03, - 0x587d1a86, - 0x219405, - 0x21b385, - 0x3b6104, - 0x2f93c3, - 0x358ecc, - 0x58ac0002, - 0x58e00e82, - 0x59209d42, - 0x21b283, - 0x21b284, - 0x59610442, - 0x308108, - 0x2c4d05, - 0x2dafc4, - 0x359186, - 0x59a205c2, - 0x59e109c2, - 0x5a200c42, - 0x2a3c05, - 0x354806, - 0x232c84, - 0x236346, - 0x213186, - 0x25aa03, - 0x5a694b4a, - 0x2853c5, - 0x29b583, - 0x20f546, - 0x5aa0f549, - 0x22c4c7, - 0x3c8c08, - 0x3ce749, - 0x2b6048, - 0x209146, - 0x207cc3, - 0x5af1de42, - 0x32bd88, - 0x5b256e02, - 0x5b601582, - 0x233243, - 0x2efe85, - 0x280f44, - 0x3e27c9, - 0x386e04, - 0x38d188, - 0x5be10fc3, - 0x5c3a2ac4, - 0x21f448, - 0x5c70df02, - 0x2cf1c2, - 0x330cc5, - 0x34af09, - 0x216443, - 0x31b884, - 0x36e504, - 0x20b683, - 0x28bf8a, - 0x5cb0f082, - 0x5ce13fc2, - 0x2dc903, - 0x3939c3, - 0x1609382, - 0x35c243, - 0x5d228882, - 0x5d600bc2, - 0x5da8d4c4, - 0x28d4c6, - 0x276e84, - 0x283103, - 0x28f583, - 0x5de00bc3, - 0x248e46, - 0x3de805, - 0x2e0947, - 0x2e0886, - 0x2e0e48, - 0x2e1046, - 0x2239c4, - 0x2a6a8b, - 0x2e30c3, - 0x2e30c5, - 0x2165c2, - 0x35fe82, - 0x5e24f102, - 0x5e603742, - 0x20a083, - 0x5ea77782, - 0x277783, - 0x2e4103, - 0x5f2093c2, - 0x5f6e8306, - 0x35e3c6, - 0x5fae8442, - 0x5fe12202, - 0x60233ec2, - 0x60ea9542, - 0x61345342, - 0x61602802, - 0x20b0c3, - 0x3da086, - 0x61a1b544, - 0x2b130a, - 0x3b1d46, - 0x285084, - 0x202703, - 0x62606c02, - 0x204cc2, - 0x26f843, - 0x62a296c3, - 0x3c5847, - 0x3b5f07, - 0x67e60847, - 0x341607, - 0x232403, - 0x23240a, - 0x257204, - 0x31e544, - 0x31e54a, - 0x24a905, - 0x6823a382, - 0x2583c3, - 0x68600602, - 0x257743, - 0x386cc3, - 0x68e00582, - 0x283984, - 0x202544, - 0x2032c5, - 0x3301c5, - 0x236e86, - 0x2fb4c6, - 0x6924ba82, - 0x69601cc2, - 0x2f97c5, - 0x35e0d2, - 0x298a06, - 0x291c43, - 0x2b4ac6, - 0x2cf8c5, - 0x1603442, - 0x71a056c2, - 0x341143, - 0x212bc3, - 0x29c403, - 0x71e01102, - 0x21e803, - 0x7222d4c2, - 0x201d03, - 0x3b1008, - 0x241c43, - 0x2b5406, - 0x3e3047, - 0x34dbc6, - 0x34dbcb, - 0x284fc7, - 0x33ee44, - 0x72a00c02, - 0x2c4b85, - 0x72e2f483, - 0x23b843, - 0x39fd45, - 0x348ec3, - 0x73748ec6, - 0x3e514a, - 0x2ade43, - 0x213a04, + 0x249bc3, + 0x34c689, + 0x27ddc9, + 0x2cd806, + 0x3da5e043, + 0x2baf8d, + 0x328846, + 0x35c70b, + 0x3de0f002, + 0x2f9388, + 0x42a200c2, + 0x42e019c2, + 0x2c0c85, + 0x43203382, + 0x2b2507, + 0x2121c3, + 0x2121c8, + 0x43605fc2, + 0x39ec44, + 0x3e0643, + 0x24b206, + 0x2274c4, + 0x21e703, + 0x44a06702, + 0x38a3c4, + 0x2c6045, + 0x2c6e07, + 0x28d743, + 0x2c7dc3, + 0x161a742, + 0x2c8483, + 0x2c8803, + 0x44e00c42, + 0x276f44, + 0x2408c6, + 0x328cc3, + 0x2c8c83, + 0x45258e02, + 0x258e08, + 0x2c9a44, + 0x204ec6, + 0x393047, + 0x2a2046, + 0x2cc404, + 0x53604842, + 0x235b0b, + 0x2e894e, + 0x21fa8f, + 0x2e1803, + 0x53e6dc42, + 0x161d942, + 0x54203e42, + 0x2a94c3, + 0x28d243, + 0x2bc506, + 0x34efc6, + 0x2d8bc7, + 0x3835c4, + 0x5461ee02, + 0x54a17682, + 0x240d85, + 0x31a707, + 0x2cb806, + 0x54e78102, + 0x38d184, + 0x2d12c3, + 0x55208042, + 0x5577c743, + 0x2d2684, + 0x2d8149, + 0x55adfe42, + 0x55e19f42, + 0x254b45, + 0x562e0602, + 0x56a065c2, + 0x362607, + 0x37f5cb, + 0x216b45, + 0x2610c9, + 0x268b06, + 0x56e08484, + 0x208489, + 0x36e507, + 0x3e2d07, + 0x225903, + 0x2f9206, + 0x352a87, + 0x21b643, + 0x2ab186, + 0x5762cbc2, + 0x57a2b342, + 0x215703, + 0x3ab5c5, + 0x223b47, + 0x241886, + 0x39a1c5, + 0x267804, + 0x2b3985, + 0x30c904, + 0x57e04442, + 0x2deb84, + 0x2d1084, + 0x3ec38d, + 0x2d1089, + 0x25c088, + 0x267384, + 0x209c05, + 0x32b287, + 0x3470c4, + 0x3d5d07, + 0x242f45, + 0x582b7144, + 0x2b2b85, + 0x20c444, + 0x3c8586, + 0x3b6345, + 0x58601a82, + 0x22b303, + 0x3018c3, + 0x244bc4, + 0x244bc5, + 0x386dc6, + 0x255d45, + 0x2680c4, + 0x58b0b703, + 0x58e12686, + 0x222705, + 0x222bc5, + 0x3b6444, + 0x2fde43, + 0x35b74c, + 0x592c5b02, + 0x59601742, + 0x59a0b982, + 0x2280c3, + 0x2280c4, + 0x59e0fd02, + 0x3619c8, + 0x227904, + 0x396a86, + 0x5a22d442, + 0x5a609cc2, + 0x5aa00b42, + 0x28ae85, + 0x286446, + 0x35bc04, + 0x232e86, + 0x211c46, + 0x2097c3, + 0x5ae99c0a, + 0x296705, + 0x2b1fc3, + 0x20e986, + 0x5b20e989, + 0x22a9c7, + 0x3d3048, + 0x224609, + 0x2ba4c8, + 0x2503c6, + 0x208143, + 0x5b602c82, + 0x3adb08, + 0x5ba54902, + 0x5be026c2, + 0x2335c3, + 0x2f7305, + 0x24c284, + 0x245489, + 0x238dc4, + 0x2472c8, + 0x5c610843, + 0x5ca643c4, + 0x21ed08, + 0x5ce08f02, + 0x23f002, + 0x32db45, + 0x270a09, + 0x219c03, + 0x319ac4, + 0x376504, + 0x267c43, + 0x29190a, + 0x5d20bdc2, + 0x5d612ac2, + 0x2e2943, + 0x39c503, + 0x1635002, + 0x271503, + 0x5da1dfc2, + 0x5de0dec2, + 0x5e292e44, + 0x292e46, + 0x27e5c4, + 0x28bc83, + 0x3d8d43, + 0x5e706943, + 0x24ae86, + 0x32df05, + 0x2e6707, + 0x2e6646, + 0x2e6c08, + 0x2e6e06, + 0x20dec4, + 0x2abf8b, + 0x2e9703, + 0x2e9705, + 0x226e42, + 0x362902, + 0x5ea51882, + 0x5ee0f782, + 0x21ee43, + 0x5f27eec2, + 0x27eec3, + 0x2ea783, + 0x5fa03b02, + 0x5feedcc6, + 0x29d686, + 0x60246542, + 0x60611402, + 0x60a30a02, + 0x60e05582, + 0x6120d082, + 0x61604342, + 0x21a083, + 0x3b6006, + 0x61a22d84, + 0x33bc86, + 0x28d5c4, + 0x20a383, + 0x62603bc2, + 0x2048c2, + 0x2350c3, + 0x62a127c3, + 0x3c97c7, + 0x3b6247, + 0x67e582c7, + 0x348507, + 0x2166c3, + 0x68277a44, + 0x31d704, + 0x31d70a, + 0x3ba585, + 0x6863b542, + 0x261643, + 0x68a00602, + 0x25c743, + 0x3c3903, + 0x69200582, + 0x3cc144, + 0x20a1c4, + 0x3cf585, + 0x32c5c5, + 0x2fd606, + 0x3a7586, + 0x69616602, + 0x69a01242, + 0x2f9bc5, + 0x29d392, + 0x2af9c6, + 0x209843, + 0x2dd486, + 0x3d19c5, + 0x161e7c2, + 0x71e09f02, + 0x209f03, + 0x211683, + 0x3a5bc3, + 0x72214542, + 0x21d343, + 0x7261c682, + 0x249c83, + 0x3856c8, + 0x25d543, + 0x2b9886, + 0x3e8dc7, + 0x34d686, + 0x34d68b, + 0x28d507, + 0x30b684, + 0x72e07c42, + 0x2ca605, + 0x73212783, + 0x22d043, + 0x3c7445, + 0x2165c3, + 0x73a165c6, + 0x3ddfc3, + 0x20f0c4, 0x2003c6, - 0x327f06, - 0x73a0cb83, - 0x20cb87, - 0x326807, - 0x2a8485, - 0x239706, - 0x217303, - 0x76626a03, - 0x76a00a82, - 0x76ec8044, - 0x2114c9, - 0x22f7c5, - 0x361cc4, - 0x31e288, - 0x24ac45, - 0x7724ccc5, - 0x255849, - 0x32e683, - 0x23d7c4, - 0x77608402, - 0x21f783, - 0x77a96dc2, - 0x296dc6, - 0x169a902, - 0x77e15982, - 0x2a3b08, - 0x2b3743, - 0x2c5a87, - 0x2c1b85, - 0x2c5645, - 0x34de4b, - 0x2f17c6, - 0x34e046, - 0x277304, - 0x219d06, - 0x782f1e48, - 0x28e543, - 0x265043, - 0x265044, - 0x2fa884, - 0x309447, - 0x3da945, - 0x786f8842, - 0x78a059c2, - 0x792059c5, - 0x2ca784, - 0x2fa9cb, - 0x2fd488, - 0x24bd04, - 0x796376c2, - 0x79a06bc2, - 0x206bc3, - 0x2ff644, - 0x2ff905, - 0x300487, - 0x79f02ac4, - 0x38bfc4, - 0x7a2037c2, - 0x37e5c9, - 0x303fc5, - 0x24d905, - 0x304b45, - 0x7a61f6c3, - 0x240644, - 0x24064b, - 0x305b04, - 0x305dcb, - 0x306745, - 0x22030a, - 0x307108, - 0x30730a, - 0x307b83, - 0x307b8a, - 0x7ae1a782, - 0x7b24cec2, - 0x7b604683, - 0x7bad3b02, + 0x30aac6, + 0x73e1f483, + 0x2382c7, + 0x34c587, + 0x2ad945, + 0x31cec6, + 0x21a683, + 0x76ac9683, + 0x76e00a82, + 0x7723e044, + 0x3d5409, + 0x218b85, + 0x30a444, + 0x388b08, + 0x328b05, + 0x7775e205, + 0x24d489, + 0x209583, + 0x3d9c04, + 0x77a0f102, + 0x21f043, + 0x77e78302, + 0x278306, + 0x162e6c2, + 0x782135c2, + 0x28ad88, + 0x29e203, + 0x2b2ac7, + 0x2bd9c5, + 0x2cb045, + 0x2cb48b, + 0x2f8f86, + 0x2cb686, + 0x27ea44, + 0x215506, + 0x786f9788, + 0x293ec3, + 0x26b483, + 0x26b484, + 0x3e5004, + 0x2fe047, + 0x316985, + 0x78b1f402, + 0x78e06582, + 0x79606585, + 0x298f04, + 0x3e514b, + 0x2fe688, + 0x253b44, + 0x79a58e42, + 0x79e53ac2, + 0x3d72c3, + 0x2ff984, + 0x2ffc45, + 0x3006c7, + 0x7a302844, + 0x381304, + 0x7a602782, + 0x3885c9, + 0x303d45, + 0x216e05, + 0x3045c5, + 0x7aa02783, + 0x244084, + 0x24408b, + 0x305d44, + 0x30600b, + 0x306885, + 0x21fbca, + 0x307048, + 0x30724a, + 0x307ac3, + 0x307aca, + 0x7b2189c2, + 0x7b685042, + 0x7baa31c3, + 0x7bed2102, 0x309ec3, - 0x7bef57c2, - 0x7c33a842, - 0x30a904, - 0x2210c6, - 0x236085, - 0x30ccc3, - 0x3ce106, - 0x219045, - 0x35a504, - 0x7c600902, - 0x2b4004, - 0x2dcb8a, - 0x2c3687, - 0x349246, - 0x25d607, - 0x248783, - 0x2cd9c8, - 0x3e7ccb, - 0x221e45, - 0x36e645, - 0x36e646, - 0x2f8384, - 0x3df448, - 0x205703, - 0x2075c4, - 0x2075c7, - 0x33ea86, - 0x3a2e06, - 0x2ccdca, - 0x256b84, - 0x2c244a, - 0x7ca08dc6, - 0x208dc7, - 0x261947, - 0x266584, - 0x266589, - 0x336705, - 0x2f9c43, - 0x22a543, - 0x7ce264c3, - 0x23a044, - 0x7d200682, - 0x3d8986, - 0x7d6d05c5, - 0x2b4d05, - 0x25b746, - 0x31d704, - 0x7da12742, - 0x24b2c4, - 0x7de04a02, - 0x20c2c5, - 0x336884, - 0x7f22ccc3, - 0x7f609742, - 0x209743, - 0x21e946, - 0x7fa01ec2, - 0x397488, - 0x22c344, - 0x22c346, - 0x394246, - 0x7fe63084, - 0x21a7c5, - 0x22ef08, - 0x231dc7, - 0x326fc7, - 0x326fcf, - 0x29e286, - 0x23cc03, - 0x241684, - 0x20f843, - 0x22bbc4, - 0x252e44, - 0x80207f02, - 0x3747c3, - 0x337cc3, - 0x80602b02, - 0x204143, - 0x37d083, - 0x21878a, - 0x27eb47, - 0x258ecc, - 0x80a59186, - 0x25abc6, - 0x25bcc7, - 0x80e38747, - 0x262389, - 0x812fc684, - 0x8160a0c2, - 0x81a01702, - 0x2cd186, - 0x20c984, - 0x39e1c6, - 0x267ec8, - 0x3a5204, - 0x2f8ec6, - 0x2b2945, - 0x81e7c4c8, - 0x24c743, - 0x28a485, - 0x35d1c3, - 0x24da03, - 0x24da04, - 0x21dc43, - 0x82254642, - 0x826014c2, - 0x2f9b09, - 0x296cc5, - 0x3d4744, - 0x3e5745, - 0x20f244, - 0x37b3c7, - 0x338685, - 0x82ed1984, - 0x2d1988, - 0x2dd986, - 0x2e1dc4, - 0x2e1fc8, - 0x83204ac2, - 0x2f0d84, - 0x20f904, - 0x2d38c7, - 0x83605fc4, - 0x2171c2, - 0x83a0b5c2, - 0x20b5c3, - 0x2875c4, - 0x2512c3, - 0x2ba385, - 0x83e35542, - 0x30ac45, - 0x279c42, - 0x311f85, - 0x2db805, - 0x842010c2, - 0x332f04, - 0x84602d82, - 0x30dd46, - 0x2192c6, - 0x34b048, - 0x2d49c8, - 0x31e8c4, - 0x301805, - 0x2c0d09, - 0x2d2a44, - 0x3e5104, - 0x21f203, - 0x207383, - 0x84a07385, - 0x26fac5, - 0x269544, - 0x337d4d, - 0x352902, - 0x352903, - 0x84e04102, - 0x85200ec2, - 0x396f45, - 0x354c47, - 0x22d144, - 0x3ce949, - 0x2dccc9, - 0x282303, - 0x282308, - 0x246809, - 0x227d47, - 0x85755b45, - 0x3615c6, - 0x362786, - 0x365cc5, - 0x2cbf45, - 0x85a01c42, - 0x2930c5, - 0x2c9448, - 0x2d6a06, - 0x85ed7247, - 0x306984, - 0x2b9ac7, - 0x3b9106, - 0x8624b302, - 0x208986, - 0x31160a, - 0x311e85, - 0x86615a82, - 0x86a14442, - 0x278b86, - 0x86e97d07, - 0x8720c4c2, - 0x20a803, - 0x2250c6, - 0x2d5884, - 0x27ac86, - 0x32fa86, - 0x3a32ca, - 0x32e805, - 0x30d8c6, - 0x36c343, - 0x36c344, - 0x87603bc2, - 0x321303, - 0x87a1b2c2, - 0x31fec3, - 0x87e34c04, - 0x2d8284, - 0x883e380a, - 0x209203, - 0x326ac7, - 0x315106, - 0x38fa84, - 0x236d42, - 0x2b0982, - 0x886007c2, - 0x232a43, - 0x261707, + 0x7c30afc2, + 0x7c73a282, + 0x30c584, + 0x220106, + 0x232bc5, + 0x3101c3, + 0x3cdb06, + 0x20ef45, + 0x255884, + 0x7ca00902, + 0x2a1b84, + 0x2e2bca, + 0x2c5747, + 0x3e26c6, + 0x24eec7, + 0x249f03, + 0x2d26c8, + 0x3eb80b, + 0x2282c5, + 0x376645, + 0x376646, + 0x2fd9c4, + 0x21cb08, + 0x207a43, + 0x207a44, + 0x207a47, + 0x30b2c6, + 0x33e886, + 0x2d050a, + 0x25b384, + 0x27d94a, + 0x7cf83846, + 0x383847, + 0x265f07, + 0x2696c4, + 0x2696c9, + 0x220a45, + 0x36e343, + 0x22bcc3, + 0x7d225f83, + 0x298ac4, + 0x7d600682, + 0x2f08c6, + 0x7dad3105, + 0x2dd6c5, + 0x245d86, + 0x2c8b44, + 0x7de01082, + 0x245e84, + 0x7e209942, + 0x237a05, + 0x3c78c4, + 0x7f62cac3, + 0x7fa116c2, + 0x2116c3, + 0x21d486, + 0x7fe01782, + 0x32d608, + 0x22a844, + 0x22a846, + 0x39cd86, + 0x80267784, + 0x21fe05, + 0x243148, + 0x255547, + 0x350587, + 0x35058f, + 0x2a50c6, + 0x248083, + 0x24d684, + 0x215c83, + 0x22a3c4, + 0x3acac4, + 0x80608382, + 0x2b76c3, + 0x337703, + 0x80a036c2, + 0x2036c3, + 0x38f1c3, + 0x21708a, + 0x314d47, + 0x25cbcc, + 0x25ce86, + 0x25e406, + 0x262287, + 0x80e65507, + 0x269d89, + 0x81230e44, + 0x81a1ee82, + 0x81e033c2, + 0x2d08c6, + 0x2380c4, + 0x38c746, + 0x26cb88, + 0x3ab684, + 0x32ea46, + 0x29d105, + 0x82280408, + 0x24e043, + 0x282ac5, + 0x396603, + 0x216f03, + 0x216f04, + 0x215a03, + 0x82639d02, + 0x82a04082, + 0x36e209, + 0x28ac85, + 0x28af84, + 0x28c845, + 0x204084, + 0x2e43c7, + 0x35b485, + 0x8324a3c4, + 0x2d1548, + 0x2d2e86, + 0x2d4204, + 0x2d53c8, + 0x83605f82, + 0x2e7cc4, + 0x315484, + 0x337f87, + 0x83a05f84, + 0x21a542, + 0x83e12882, + 0x254a43, + 0x254a44, + 0x2ae6c3, + 0x2bfcc5, + 0x8420c402, + 0x2f8dc5, + 0x246f82, + 0x312685, + 0x2e15c5, + 0x8460c582, + 0x3819c4, + 0x84a04942, + 0x208d46, + 0x25b846, + 0x270b48, + 0x2da1c8, + 0x30dac4, + 0x2fb0c5, + 0x2ba8c9, + 0x31fcc4, + 0x3ed084, + 0x224b03, + 0x207803, + 0x84e07805, + 0x268285, + 0x2800c4, + 0x29ec82, + 0x329e83, + 0x85203682, + 0x85601402, + 0x32d0c5, + 0x289807, + 0x286f44, + 0x224809, + 0x2e2d09, + 0x28a843, + 0x28a848, + 0x3917c9, + 0x222207, + 0x85b2e885, + 0x354f06, + 0x355546, + 0x356a05, + 0x2d1185, + 0x85e01882, + 0x375005, + 0x2cf188, + 0x2dcac6, + 0x862d4807, + 0x306ac4, + 0x2bde47, + 0x3a3946, + 0x866088c2, + 0x386ac6, + 0x311d0a, + 0x312585, + 0x86a136c2, + 0x86e14cc2, + 0x27cfc6, + 0x8729c3c7, + 0x87601b42, + 0x237fc3, + 0x2f0206, + 0x2d9fc4, + 0x36f086, + 0x3d51c6, + 0x37378a, + 0x200e05, + 0x384046, + 0x3c3743, + 0x3c3744, + 0x87a03142, + 0x321203, + 0x87e28102, + 0x320e43, + 0x88311184, + 0x2db744, + 0x887e954a, + 0x229c83, + 0x34c847, + 0x3dcdc6, + 0x268644, + 0x243502, + 0x2b5902, + 0x88a007c2, + 0x231403, + 0x265cc7, 0x2007c7, - 0x292704, - 0x258d47, - 0x300586, - 0x20ba87, - 0x230744, - 0x2b61c5, - 0x221c45, - 0x88a0d782, - 0x219e46, - 0x230bc3, - 0x29d6c2, - 0x2fc146, - 0x88e12682, - 0x89213402, - 0x213405, - 0x8962bdc2, - 0x89a02a02, - 0x351e45, - 0x2e3405, - 0x30a705, - 0x8a268b83, - 0x285845, - 0x2f1887, - 0x2b9385, - 0x32e9c5, - 0x257104, - 0x361b46, - 0x24e044, - 0x8a6008c2, - 0x8b2510c5, - 0x3967c7, - 0x213c08, - 0x27d046, - 0x27d04d, - 0x2803c9, - 0x2803d2, - 0x37e8c5, - 0x383403, - 0x8b6091c2, - 0x32f684, - 0x3a8f03, - 0x3d64c5, - 0x3136c5, - 0x8ba2a042, - 0x267d43, - 0x8be32982, - 0x8c629742, - 0x8ca00082, - 0x2ead45, - 0x39d643, - 0x8ce04942, - 0x8d206502, - 0x283946, - 0x2484ca, - 0x201c83, - 0x2638c3, - 0x2f2d43, - 0x8ee04a42, - 0x9d666342, - 0x9de0e002, - 0x205002, - 0x3d8109, - 0x2d9444, - 0x2e5488, - 0x9e308542, - 0x9ea017c2, - 0x393285, - 0x23d208, - 0x2f8088, - 0x30500c, - 0x241403, - 0x9ee6dac2, - 0x9f208e42, - 0x39dbc6, - 0x315f85, - 0x2e8c43, - 0x24cb06, - 0x3160c6, - 0x251403, - 0x317703, - 0x317dc6, - 0x319884, - 0x2a2446, - 0x34cd04, - 0x319f44, - 0x31aa0a, - 0x9f603582, - 0x257e85, - 0x31bfca, - 0x31bf05, - 0x31ce84, - 0x31cf86, - 0x31d104, - 0x21fa46, - 0x9fa16ec2, - 0x216ec6, - 0x271385, - 0x30d747, - 0x3c1346, - 0x25bec4, - 0x2e8ec7, - 0x2089c5, - 0x242c07, - 0x228947, - 0x22894e, - 0x2849c6, - 0x2b6dc5, - 0x205f07, - 0x3c3947, - 0x212d85, - 0x229b84, - 0x3235c2, - 0x23d887, - 0x249e04, - 0x35a784, - 0x2cf04b, - 0x9fe246c3, - 0x301387, - 0x2246c4, - 0x301687, - 0x310883, - 0x34e54d, - 0x3ad188, - 0xa0233984, - 0x3e16c5, - 0x31f985, - 0x31fdc3, - 0xa0608f02, - 0x3212c3, - 0x321a83, - 0x215ac4, - 0x289085, - 0x219fc7, - 0x36c3c6, - 0x390a43, - 0x233f0b, - 0x35be8b, - 0x2b504b, - 0x2cae8b, - 0x3991ca, - 0x2d6bcb, - 0x2f228b, - 0x32178c, - 0x31a34b, - 0x370491, - 0x398e4a, - 0x3b8a4b, - 0x3c95cc, - 0x3e6f4b, - 0x3230ca, - 0x323f4a, - 0x324dce, - 0x325a4b, - 0x325d0a, - 0x328911, - 0x328d4a, - 0x32924b, - 0x32978e, - 0x32a14c, - 0x32ae8b, - 0x32b14e, - 0x32b4cc, - 0x32ef0a, - 0x33068c, - 0xa0b3098a, - 0x331288, - 0x331e49, - 0x3348ca, - 0x334b4a, - 0x334dcb, - 0x33744e, - 0x338091, - 0x341cc9, - 0x341f0a, - 0x342c8b, - 0x343dcd, - 0x344c4a, - 0x345616, - 0x34698b, - 0x34844a, - 0x34888a, - 0x34a48b, - 0x34b2c9, - 0x34eec9, - 0x34f44d, - 0x34fc0b, - 0x3514cb, - 0x351f89, - 0x3525ce, - 0x3529ca, - 0x3550ca, - 0x35590a, - 0x3562cb, - 0x356b0b, - 0x35798d, - 0x359fcd, - 0x35a910, - 0x35adcb, - 0x35bacc, - 0x35cc8b, - 0x35f68b, - 0x3611ce, - 0x3617cb, - 0x3617cd, - 0x36740b, - 0x367e8f, - 0x36824b, - 0x36918a, - 0x369f49, - 0x36ab49, - 0xa0f6aecb, - 0x36b18e, - 0x36b50e, - 0x36e28b, - 0x36f04f, - 0x3718cb, - 0x371b8b, - 0x371e4a, - 0x376d89, - 0x37c74f, - 0x381d4c, - 0x38298c, - 0x3830ce, - 0x3835cf, - 0x38398e, - 0x383e10, - 0x38420f, - 0x384bce, - 0x38528c, - 0x385591, - 0x3859d2, - 0x387891, - 0x387ece, - 0x38830b, - 0x38830e, - 0x38868f, - 0x388a4e, - 0x388dd3, - 0x389291, - 0x3896cc, - 0x3899ce, - 0x389e4c, - 0x38a293, - 0x38af50, - 0x38b3cc, - 0x38b6cc, - 0x38bb8b, - 0x38e58e, - 0x38ea8b, - 0x38f2cb, - 0x39150c, - 0x3979ca, - 0x39864c, - 0x39894c, - 0x398c49, - 0x39ac8b, - 0x39af48, - 0x39b509, - 0x39b50f, - 0x39cf4b, - 0xa139e64a, - 0x3a3a0c, - 0x3a49cb, - 0x3a4c89, - 0x3a56c8, - 0x3a630b, - 0x3a810a, - 0x3a838b, - 0x3a9b0c, - 0x3aa649, - 0x3aa888, - 0x3ad7cb, - 0x3b0a4b, - 0x3b2e0e, - 0x3b494b, - 0x3b83cb, - 0x3c420b, - 0x3c44c9, - 0x3c488d, - 0x3d57ca, - 0x3d9857, - 0x3da218, - 0x3dc0c9, - 0x3de3cb, - 0x3df714, - 0x3dfc0b, - 0x3e018a, - 0x3e2a0a, - 0x3e2c8b, - 0x3e4810, - 0x3e4c11, - 0x3e5a4a, - 0x3e654d, - 0x3e6c4d, - 0x3e940b, - 0x219f43, - 0xa17b5883, - 0x3cc686, - 0x3df0c5, - 0x27a587, - 0x2ddec6, - 0x164bf82, - 0x2729c9, - 0x20c004, - 0x2f0788, - 0x226403, - 0x32f5c7, - 0x247f82, - 0x2bbdc3, - 0xa1a0e042, - 0x2dd846, - 0x2defc4, - 0x2c8404, - 0x3a0f43, - 0xa22da842, - 0xa262f444, - 0x2664c7, - 0xa2a35b02, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x117bc8, - 0x20d903, + 0x297f84, + 0x2fcd07, + 0x3007c6, + 0x237207, + 0x227cc4, + 0x221705, + 0x201985, + 0x88e15642, + 0x21a706, + 0x226243, + 0x228882, + 0x228886, + 0x89227202, + 0x89608ec2, + 0x220d05, + 0x89a01c82, + 0x89e00fc2, + 0x398085, + 0x2e9a45, + 0x30c185, + 0x8a66e003, + 0x224e45, + 0x2f9047, + 0x2b6985, + 0x200fc5, + 0x277944, + 0x328986, + 0x24c344, + 0x8aa008c2, + 0x8b6dc005, + 0x213b47, + 0x20f2c8, + 0x278606, + 0x27860d, + 0x27db89, + 0x27db92, + 0x333505, + 0x33e543, + 0x8ba10702, + 0x31be44, + 0x3288c3, + 0x3888c5, + 0x3dfac5, + 0x8be6ca02, + 0x26ca03, + 0x8c231342, + 0x8ca27442, + 0x8ce00082, + 0x219645, + 0x3a6d43, + 0x8d205182, + 0x8d609e42, + 0x3cc106, + 0x27988a, + 0x24e2c3, + 0x244b43, + 0x2f1c43, + 0x8f201b02, + 0x9da55202, + 0x9e20d682, + 0x204c02, + 0x329c89, + 0x2df244, + 0x2eb948, + 0x9e708602, + 0x9ee08602, + 0x35f645, + 0x23fa48, + 0x23b2c8, + 0x30010c, + 0x2450c3, + 0x9f273ec2, + 0x9f612182, + 0x38c146, + 0x313dc5, + 0x2eef43, + 0x256186, + 0x313f06, + 0x24f243, + 0x3153c3, + 0x315806, + 0x317284, + 0x26f646, + 0x240fc4, + 0x317944, + 0x318c4a, + 0x9fa52ec2, + 0x25d945, + 0x31a20a, + 0x31a145, + 0x31b804, + 0x31b906, + 0x31ba84, + 0x21f306, + 0x9fe08902, + 0x21a246, + 0x23ab05, + 0x3c35c7, + 0x3cb1c6, + 0x262484, + 0x2ef1c7, + 0x224045, + 0x323447, + 0x21e087, + 0x21e08e, + 0x28cf06, + 0x3266c5, + 0x205ec7, + 0x3d9cc7, + 0x211845, + 0x213e04, + 0x325f42, + 0x24bb47, + 0x287304, + 0x249b04, + 0x2d77cb, + 0xa0225103, + 0x307f07, + 0x225104, + 0x308207, + 0x22f403, + 0x34de8d, + 0x31dc88, + 0xa06348c4, + 0x24a2c5, + 0x31e145, + 0x31e583, + 0xa0a2a742, + 0x3211c3, + 0x321743, + 0x213704, + 0x2262c5, + 0x2263c7, + 0x3c37c6, + 0x39ab03, + 0x22b7cb, + 0x27114b, + 0x2b6d8b, + 0x2bbb4b, + 0x2c858a, + 0x2dcc8b, + 0x2f9e0b, + 0x31418c, + 0x317d4b, + 0x363911, + 0x37848a, + 0x3bbfcb, + 0x3ee8cc, + 0x322a0b, + 0x32370a, + 0x323d8a, + 0x324c0e, + 0x32520b, + 0x3254ca, + 0x326d51, + 0x32718a, + 0x32768b, + 0x327bce, + 0x329f4c, + 0x32a3cb, + 0x32a68e, + 0x32aa0c, + 0x32b94a, + 0x32ca8c, + 0xa0f2d80a, + 0x32e048, + 0x32f4c9, + 0x3336ca, + 0x33394a, + 0x333bcb, + 0x336e8e, + 0x3379d1, + 0x340f89, + 0x3411ca, + 0x341dcb, + 0x34328d, + 0x34410a, + 0x344756, + 0x345acb, + 0x34748a, + 0x347dca, + 0x34980b, + 0x34b3c9, + 0x34e809, + 0x34f3cd, + 0x350e0b, + 0x3526cb, + 0x353309, + 0x35394e, + 0x353f8a, + 0x354cca, + 0x35530a, + 0x355a0b, + 0x35624b, + 0x35784d, + 0x35af8d, + 0x35cc90, + 0x35d14b, + 0x35e34c, + 0x35fc0b, + 0x36210b, + 0x36548e, + 0x36614b, + 0x36614d, + 0x36b54b, + 0x36bfcf, + 0x36c38b, + 0x36d08a, + 0x36e789, + 0x370b09, + 0xa1370e8b, + 0x37114e, + 0x3714ce, + 0x37628b, + 0x37704f, + 0x379e4b, + 0x37a10b, + 0x37a3ca, + 0x37f1c9, + 0x38248f, + 0x38b98c, + 0x38cbcc, + 0x38dace, + 0x38e28f, + 0x38e64e, + 0x38f2d0, + 0x38f6cf, + 0x390b4e, + 0x391bcc, + 0x391ed1, + 0x392312, + 0x392bd1, + 0x39320e, + 0x393a4b, + 0x393a4e, + 0x393dcf, + 0x39418e, + 0x394510, + 0x394913, + 0x394dd1, + 0x39520c, + 0x39550e, + 0x39598c, + 0x395ed3, + 0x396c10, + 0x39708c, + 0x39738c, + 0x397c4b, + 0x39908e, + 0x39958b, + 0x399ccb, + 0x39ad0c, + 0x3a0d8a, + 0x3a18cc, + 0x3a1bcc, + 0x3a1ec9, + 0x3a430b, + 0x3a45c8, + 0x3a4d89, + 0x3a4d8f, + 0x3a664b, + 0xa17a894a, + 0x3a9f0c, + 0x3aae4b, + 0xa1bab109, + 0x3abbc8, + 0x3abf8b, + 0x3ace8a, + 0x3ad10a, + 0x3ad38b, + 0x3ad88c, + 0x3ae8c9, + 0x3aeb08, + 0x3b17cb, + 0x3b598b, + 0x3b898e, + 0x3ba1cb, + 0x3bb94b, + 0x3c79cb, + 0x3c7c89, + 0x3c88cd, + 0x3dedca, + 0x3e39d7, + 0x3e4658, + 0x3e77c9, + 0x3e8a0b, + 0x3e9994, + 0x3e9e8b, + 0x3ea40a, + 0x3eafca, + 0x3eb24b, + 0x3ec790, + 0x3ecb91, + 0x3ed18a, + 0x3edecd, + 0x3ee5cd, + 0x3efa8b, + 0x21a803, + 0xa1e02843, + 0x2181c6, + 0x3d2985, + 0x2eaf47, + 0x2c2006, + 0xa2209302, + 0x2700c9, + 0x237744, + 0x2f7d08, + 0x225ec3, + 0x31bd87, + 0xa2601c42, + 0x2c2543, + 0xa2a04182, + 0x2e3786, + 0x2e4d84, + 0x2efc44, + 0x2021c3, + 0xa32e0642, + 0xa3632284, + 0x269607, + 0xa3a32642, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x10bb08, + 0x20bc03, 0x2000c2, - 0x793c8, - 0x216542, - 0x343b43, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x202b03, - 0x33d956, - 0x365753, - 0x258bc9, - 0x2b0e88, - 0x2c4a09, - 0x31c146, - 0x3509d0, - 0x218053, - 0x33eb48, - 0x285c87, - 0x2929c7, - 0x2aebca, - 0x363749, - 0x333bc9, - 0x25dd0b, - 0x34a906, - 0x32b98a, - 0x22ac46, - 0x238c43, - 0x231805, - 0x206c48, - 0x28b04d, - 0x35434c, - 0x271047, - 0x309f4d, - 0x22f004, - 0x23a30a, - 0x23b0ca, - 0x23b58a, - 0x218347, - 0x2461c7, - 0x249d44, - 0x279ec6, - 0x34abc4, - 0x222bc8, - 0x386e49, - 0x209a46, - 0x308cc8, - 0x24dd4d, - 0x2dcf09, - 0x318348, - 0x24d887, - 0x21364a, - 0x25bb46, - 0x34bbc4, - 0x2298c7, - 0x3d8b8a, - 0x242f8e, - 0x2823c5, - 0x29788b, - 0x232789, - 0x280609, - 0x20d547, - 0x20d54a, - 0x2d3807, - 0x306389, - 0x37b048, - 0x37948b, - 0x2efe85, - 0x23770a, - 0x233c89, - 0x33324a, - 0x22654b, - 0x2297cb, - 0x25da95, - 0x2f0c45, - 0x24d905, - 0x24064a, - 0x26ba4a, - 0x390f47, - 0x23d343, - 0x2cd108, - 0x2e640a, - 0x22c346, - 0x261289, - 0x27c4c8, - 0x2e1dc4, - 0x2512c9, - 0x2d49c8, - 0x2d5707, - 0x2510c6, - 0x3967c7, - 0x399b07, - 0x248c45, - 0x37500c, - 0x3e16c5, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x216542, - 0x216543, - 0x2296c3, - 0x20d903, - 0x20cb83, - 0x216543, - 0x2296c3, - 0xd903, - 0x241c43, - 0x20cb83, - 0x1d5b83, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x793c8, - 0x216542, - 0x216543, - 0x3a8607, - 0x17b1c4, - 0x2296c3, - 0xbbc4, - 0x20cb83, - 0x19045, - 0x216542, - 0x2104c2, - 0x31d0c2, - 0x206002, - 0x205c02, - 0x2160c2, - 0x9a6c6, - 0x5c549, - 0x182487, - 0x1550e, - 0x99049, - 0x482ccc3, - 0x95c87, - 0x152e06, - 0x1643, - 0x11e505, + 0x7ffc8, + 0x205842, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x217083, + 0x33d716, + 0x369b53, + 0x2fcb89, + 0x285588, + 0x2ca489, + 0x31a386, + 0x351bd0, + 0x3eba93, + 0x30b388, + 0x28bd87, + 0x28de87, + 0x2b36ca, + 0x354849, + 0x335dc9, + 0x29f80b, + 0x340886, + 0x32aeca, + 0x229146, + 0x2361c3, + 0x26d285, + 0x3d5608, + 0x290e4d, + 0x3468cc, + 0x23a7c7, + 0x3a728d, + 0x243244, + 0x23b4ca, + 0x23c84a, + 0x23cd0a, + 0x205847, + 0x248547, + 0x24ba84, + 0x27f786, + 0x384a84, + 0x224d08, + 0x238e09, + 0x308d86, + 0x308d88, + 0x24fa4d, + 0x2e2f49, + 0x315d88, + 0x216d87, + 0x220f4a, + 0x2bf046, + 0x33ed44, + 0x211e87, + 0x2f0aca, + 0x23cf4e, + 0x28a905, + 0x29bf4b, + 0x231149, + 0x27ddc9, + 0x2b2347, + 0x3da84a, + 0x2f5547, + 0x2e8a89, + 0x346d88, + 0x37078b, + 0x2f7305, + 0x25bf4a, + 0x2307c9, + 0x38638a, + 0x3efd8b, + 0x211d8b, + 0x29f595, + 0x2d8345, + 0x216e05, + 0x24408a, + 0x2722ca, + 0x32ee87, + 0x216e43, + 0x2d0848, + 0x2ece4a, + 0x22a846, + 0x266949, + 0x280408, + 0x2d4204, + 0x395c89, + 0x2da1c8, + 0x2d9e47, + 0x2dc006, + 0x213b47, + 0x3a2947, + 0x24ac85, + 0x2b7f0c, + 0x24a2c5, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x205842, + 0x229f43, + 0x2127c3, + 0x20bc03, + 0x21f483, + 0x229f43, + 0x2127c3, + 0xbc03, + 0x25d543, + 0x21f483, + 0x1df183, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x7ffc8, + 0x205842, + 0x229f43, + 0x234f87, + 0x98704, + 0x2127c3, + 0x37344, + 0x21f483, + 0xef45, + 0x205842, + 0x201902, + 0x30b602, + 0x205fc2, + 0x202a42, + 0x229ac2, + 0x164ca, + 0x14244b, + 0x5b547, + 0x1b8586, + 0xa1606, + 0x60209, + 0xebb49, + 0x1a3dc7, + 0x15b4e8a, + 0x1314e, + 0x10ad89, + 0x482cac3, + 0x98307, + 0x149c86, + 0x5ec3, + 0x11d6c5, 0xc1, - 0x5216543, - 0x222bc3, - 0x2f5503, - 0x343b43, - 0x243543, - 0x216443, - 0x2e8706, - 0x2296c3, - 0x20cb83, - 0x202883, - 0x793c8, - 0x209b84, - 0x3a2887, - 0x3a0f83, - 0x25e704, - 0x20d3c3, - 0x20d5c3, - 0x343b43, - 0xb46c7, + 0x5229f43, + 0x224d03, + 0x28c6c3, + 0x2e9c43, + 0x25e043, + 0x219c03, + 0x2ee0c6, + 0x2127c3, + 0x21f483, + 0x236f03, + 0x7ffc8, + 0x20a944, + 0x264187, + 0x202203, + 0x261a44, + 0x225f43, + 0x2455c3, + 0x2e9c43, + 0xf1a47, 0x9c4, - 0x12db83, - 0x10e645, + 0x14c3, + 0x172f85, 0x66000c2, - 0x53c43, - 0x6a16542, - 0x6e90b89, - 0x7096ac9, - 0x96f4d, - 0x9728d, - 0x31d0c2, - 0xb1b84, - 0x10e689, + 0x58843, + 0x6a05842, + 0x6e96109, + 0x709b3c9, + 0x9b80d, + 0x9bb4d, + 0x30b602, + 0x58104, + 0x172fc9, 0x2003c2, - 0x76b1a88, - 0x105504, - 0x320b43, - 0x793c8, - 0x49e04, - 0x1407242, + 0x7658008, + 0x105744, + 0x320a03, + 0x7ffc8, + 0x87304, + 0x14076c2, 0x14005c2, - 0x1407242, - 0x151a146, - 0x23bb83, - 0x2cc803, - 0x7e16543, - 0x23a304, - 0x8622bc3, - 0x8f43b43, - 0x2042c2, - 0x2b1b84, - 0x2296c3, - 0x38c643, - 0x203c82, - 0x20cb83, - 0x221a42, - 0x30a303, - 0x201ec2, - 0x26a603, - 0x220b03, - 0x2089c2, - 0x793c8, - 0x82fdcc9, - 0x27b43, - 0x23bb83, - 0x20b2c8, - 0x8b8c643, - 0x203c82, - 0x30a303, - 0x201ec2, - 0x26a603, - 0x220b03, - 0x2089c2, - 0x259187, - 0x30a303, - 0x201ec2, - 0x26a603, - 0x220b03, - 0x2089c2, - 0x216543, - 0x4702, - 0x6c43, - 0x2bc2, - 0x13242, - 0xe8c2, - 0x11de42, - 0x4a42, - 0x4da82, - 0x253c43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x243543, - 0x216443, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x204642, - 0x21f6c3, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x8503, - 0x2d4c2, - 0x253c43, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x2296c3, - 0x20cb83, - 0x355b45, - 0x22a042, + 0x14076c2, + 0x1517b46, + 0x23d9c3, + 0x2c9ec3, + 0x7e29f43, + 0x23b4c4, + 0x8624d03, + 0x8ee9c43, + 0x203842, + 0x258104, + 0x2127c3, + 0x239503, + 0x200f82, + 0x21f483, + 0x222402, + 0x30bd83, + 0x201782, + 0x2b32c3, + 0x221943, + 0x205242, + 0x7ffc8, + 0x829db89, + 0x22003, + 0x23d9c3, + 0x3d7348, + 0x8a39503, + 0x200f82, + 0x30bd83, + 0x201782, + 0x2b32c3, + 0x221943, + 0x205242, + 0x25ce87, + 0x30bd83, + 0x201782, + 0x2b32c3, + 0x221943, + 0x205242, + 0x229f43, + 0x2b82, + 0x24dc3, + 0x3642, + 0x6cc2, + 0x4682, + 0x2c82, + 0x1b02, + 0x2842, + 0x258843, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x25e043, + 0x219c03, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x202082, + 0x202783, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x9a03, + 0x1c682, + 0x258843, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x2127c3, + 0x21f483, + 0x32e885, + 0x26ca02, 0x2000c2, - 0x793c8, - 0xaec0ad2, - 0x1472588, - 0x1b2b8a, - 0x3ec5, - 0x343b43, - 0x230d41, + 0x7ffc8, + 0xaeba692, + 0xb2d6d88, + 0x1475dc8, + 0x3424a, + 0x2cc5, + 0x2707, + 0x2e9c43, + 0x228ac1, 0x2009c1, 0x200a01, - 0x202c41, - 0x201b41, - 0x211101, - 0x209c01, - 0x230e41, - 0x2fd181, + 0x201101, + 0x200dc1, + 0x218341, + 0x202281, + 0x202f81, + 0x249081, 0x200001, 0x2000c1, 0x200201, - 0x146c05, - 0x793c8, + 0x145d45, + 0x7ffc8, 0x200101, - 0x201381, + 0x200d01, 0x200501, - 0x201281, + 0x200c01, 0x200041, 0x200801, 0x200181, - 0x200e01, + 0x200c41, 0x200701, 0x2004c1, - 0x200bc1, + 0x200b41, 0x200581, 0x2003c1, 0x200a81, - 0x2210c1, + 0x205601, 0x200401, 0x200741, 0x2007c1, 0x200081, - 0x2017c1, - 0x201641, - 0x207281, - 0x2024c1, - 0x208481, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x216542, - 0x216543, - 0x222bc3, + 0x204c01, + 0x205241, + 0x201541, + 0x201c41, + 0x201b81, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x205842, + 0x229f43, + 0x224d03, 0x2003c2, - 0x20cb83, - 0x22a83, - 0xb46c7, - 0x1cdf07, - 0x32f46, - 0x4280a, - 0x95748, - 0x60c88, - 0x61607, - 0xbc3c4, - 0x15c246, - 0xeec85, - 0x10f7c5, - 0x129643, - 0x30846, - 0x13906, - 0x25dd04, - 0x336147, - 0x793c8, - 0x2e8fc4, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x16542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x330b88, - 0x202304, - 0x23c4c4, - 0x20e804, - 0x39dac7, - 0x2e59c7, - 0x216543, - 0x23ec8b, - 0x33100a, - 0x38f947, - 0x300288, - 0x353348, - 0x222bc3, - 0x3c2e87, - 0x2f5503, - 0x214fc8, - 0x224309, - 0x2b1b84, - 0x243543, - 0x244688, - 0x216443, - 0x2e320a, - 0x2e8706, - 0x3b1d47, - 0x2296c3, - 0x2f1b46, - 0x3d2288, - 0x20cb83, - 0x275546, - 0x2fd6cd, - 0x2ffe48, - 0x305b0b, - 0x223bc6, - 0x354b47, - 0x21d985, - 0x22e68a, - 0x2fce05, - 0x26f9ca, - 0x22a042, - 0x201643, - 0x35a784, + 0x21f483, + 0xf1a47, + 0x84447, + 0x332c6, + 0x46aca, + 0x9a808, + 0x64f08, + 0x65bc7, + 0xc3184, + 0x71506, + 0xf58c5, + 0xcab05, + 0xb0e03, + 0x18a46, + 0x5b646, + 0x29f804, + 0x334f47, + 0x7ffc8, + 0x2ef2c4, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x5842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x32da08, + 0x209f84, + 0x23a844, + 0x2045c4, + 0x38c047, + 0x2ec207, + 0x229f43, + 0x24128b, + 0x3b154a, + 0x34a2c7, + 0x3e4448, + 0x220208, + 0x224d03, + 0x2886c7, + 0x28c6c3, + 0x214688, + 0x22f089, + 0x258104, + 0x25e043, + 0x247608, + 0x219c03, + 0x2e984a, + 0x2ee0c6, + 0x33bc87, + 0x2127c3, + 0x30eec6, + 0x3c0848, + 0x21f483, + 0x25a6c6, + 0x2fe8cd, + 0x300408, + 0x305d4b, + 0x20e0c6, + 0x385887, + 0x22ab45, + 0x2b904a, + 0x22b685, + 0x26818a, + 0x26ca02, + 0x205ec3, + 0x249b04, 0x200006, - 0x3bb603, - 0x2b4083, - 0x28bb03, - 0x202303, - 0x37a403, - 0x202002, - 0x39d805, - 0x2b5949, - 0x209983, - 0x2492c3, - 0x203b43, - 0x216c43, + 0x3bf783, + 0x2a1c03, + 0x289e03, + 0x209f83, + 0x20c083, + 0x203742, + 0x38bd85, + 0x2b9dc9, + 0x202043, + 0x24b303, + 0x2030c3, + 0x219243, 0x200201, - 0x2d2807, - 0x2eaa85, - 0x3c1fc3, - 0x26b383, - 0x3e9683, - 0x20e804, - 0x3c3303, - 0x2271c8, - 0x35bdc3, - 0x3e1ecd, - 0x284a88, - 0x20b486, - 0x2e9443, - 0x35a2c3, - 0x361ac3, - 0xda16543, - 0x23bdc8, - 0x23ec84, - 0x247203, - 0x249f03, + 0x31fa87, + 0x219385, + 0x3c5943, + 0x269183, + 0x3ef083, + 0x2045c4, + 0x383d43, + 0x2120c8, + 0x36e9c3, + 0x31484d, + 0x28cfc8, + 0x3d7506, + 0x2f77c3, + 0x366443, + 0x39afc3, + 0xde29f43, + 0x23dc08, + 0x241284, + 0x248c03, + 0x24c883, 0x200106, - 0x24e888, - 0x266943, - 0x228fc3, - 0x2ba1c3, - 0x220a83, - 0x22e6c3, - 0x23a543, - 0x222bc3, - 0x22d743, - 0x255ec3, - 0x209a43, - 0x290583, - 0x325243, - 0x20ae83, - 0x232d43, - 0x3a4e85, - 0x25c504, - 0x25dfc7, - 0x25c082, - 0x260183, - 0x263c46, - 0x265743, - 0x266c03, - 0x2822c3, - 0x35cb03, - 0x21fb43, - 0x32d103, - 0x2a1807, - 0xe743b43, - 0x2d3103, - 0x207c83, - 0x20e443, - 0x26a7c3, - 0x217203, - 0x3b5945, - 0x37cac3, - 0x252749, - 0x2012c3, - 0x3139c3, - 0xea53203, - 0x2daf43, - 0x20e843, - 0x214808, - 0x2b5886, - 0x35c8c6, - 0x2be186, - 0x267347, - 0x202143, - 0x233243, - 0x216443, - 0x295846, - 0x2165c2, - 0x2e69c3, - 0x33c405, - 0x2296c3, - 0x31c887, - 0x160d903, - 0x29ae43, - 0x2183c3, - 0x23c9c3, - 0x23b843, - 0x20cb83, - 0x21de86, - 0x202fc6, - 0x37db83, - 0x29a8c3, - 0x21f6c3, - 0x259143, - 0x317783, - 0x309603, - 0x30ac03, - 0x219045, - 0x24c343, - 0x250046, - 0x21b103, - 0x2f4f88, - 0x22a543, - 0x22a549, - 0x37ad08, - 0x220548, - 0x22eac5, - 0x38ac4a, - 0x3e08ca, - 0x3e110b, - 0x3e1ac8, - 0x2aa6c3, - 0x230143, - 0x390b83, - 0x2f34c3, - 0x312588, - 0x355303, - 0x36c344, - 0x203bc2, + 0x250bc8, + 0x24dac3, + 0x22f903, + 0x2bfb03, + 0x205483, + 0x2b9083, + 0x220203, + 0x224d03, + 0x233a43, + 0x254583, + 0x209343, + 0x296a03, + 0x328343, + 0x20ea83, + 0x20a6c3, + 0x3ab305, + 0x2601c4, + 0x261307, + 0x262642, + 0x263d83, + 0x268406, + 0x269fc3, + 0x26ad43, + 0x28a803, + 0x271dc3, + 0x21f403, + 0x20a643, + 0x2a7a87, + 0xeae9c43, + 0x2421c3, + 0x208103, + 0x204203, + 0x258103, + 0x21a583, + 0x226dc5, + 0x382803, + 0x38d2c9, + 0x200c43, + 0x3dfdc3, + 0xee57443, + 0x227883, + 0x204603, + 0x217388, + 0x2b9d06, + 0x271b86, + 0x2c4f06, + 0x26bf87, + 0x22ea83, + 0x2335c3, + 0x219c03, + 0x29a906, + 0x226e42, + 0x2ed403, + 0x366005, + 0x2127c3, + 0x31b087, + 0x160bc03, + 0x219d03, + 0x2058c3, + 0x23eb03, + 0x22d043, + 0x21f483, + 0x215c46, + 0x200a86, + 0x387c83, 0x22e683, - 0x24c0c3, + 0x202783, + 0x227d43, + 0x315443, + 0x309743, + 0x30c883, + 0x20ef45, + 0x23ffc3, + 0x23ffc6, + 0x21ad03, + 0x28c148, + 0x22bcc3, + 0x22bcc9, + 0x2b8a88, + 0x22d3c8, + 0x310ac5, + 0x235d8a, + 0x23ed4a, + 0x24430b, + 0x244cc8, + 0x31c843, + 0x21e6c3, + 0x30c8c3, + 0x2f3883, + 0x30e088, + 0x32a203, + 0x3c3744, + 0x203142, + 0x23c7c3, + 0x253f03, 0x2007c3, - 0x3d8883, - 0x281003, - 0x202883, - 0x22a042, - 0x2d3703, - 0x241403, - 0x31a2c3, - 0x31b444, - 0x35a784, - 0x227083, - 0x793c8, - 0xdf1854c, - 0xe2ac245, - 0xbb705, + 0x3a8143, + 0x280183, + 0x236f03, + 0x26ca02, + 0x2f5443, + 0x2450c3, + 0x317cc3, + 0x319684, + 0x249b04, + 0x231a83, + 0x7ffc8, + 0xe315f8c, + 0xe6e5745, + 0xc1e05, 0x2000c2, 0x200ac2, - 0x202002, - 0x202cc2, + 0x203742, + 0x201182, 0x200202, - 0x202402, - 0x250cc2, - 0x202bc2, + 0x202542, + 0x25a282, + 0x203642, 0x200382, - 0x200c42, - 0x30df02, - 0x203742, - 0x277782, + 0x200b42, + 0x208f02, + 0x20f782, + 0x27eec2, 0x200a82, - 0x2160c2, - 0x208402, - 0x219d02, - 0x2037c2, - 0x2cb042, - 0x205d42, + 0x229ac2, + 0x20f102, + 0x215502, + 0x202782, + 0x2bbd02, + 0x206902, 0x200682, - 0x214f42, - 0x212742, - 0x202b02, - 0x201702, - 0x203782, - 0x202a02, + 0x214602, + 0x201082, + 0x2036c2, + 0x2033c2, + 0x207802, + 0x200fc2, 0xc2, 0xac2, - 0x2002, - 0x2cc2, + 0x3742, + 0x1182, 0x202, - 0x2402, - 0x50cc2, - 0x2bc2, + 0x2542, + 0x5a282, + 0x3642, 0x382, - 0xc42, - 0x10df02, - 0x3742, - 0x77782, + 0xb42, + 0x8f02, + 0xf782, + 0x7eec2, 0xa82, - 0x160c2, - 0x8402, - 0x19d02, - 0x37c2, - 0xcb042, - 0x5d42, + 0x29ac2, + 0xf102, + 0x15502, + 0x2782, + 0xbbd02, + 0x6902, 0x682, - 0x14f42, - 0x12742, - 0x2b02, - 0x1702, - 0x3782, - 0x2a02, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x1642, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x16542, - 0x216542, - 0x20cb83, - 0x10216543, - 0x343b43, - 0x216443, - 0xeb2c7, - 0x7ca83, - 0x2386c2, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x30103, - 0x2296c3, - 0xd903, - 0x7ca83, - 0x20cb83, - 0xe042, + 0x14602, + 0x1082, + 0x36c2, + 0x33c2, + 0x7802, + 0xfc2, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x5ec2, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x9c589, + 0x5842, + 0x205842, + 0x21f483, + 0x10a29f43, + 0x2e9c43, + 0x219c03, + 0xf19c7, + 0x81983, + 0x247f42, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x1e683, + 0x2127c3, + 0xbc03, + 0x81983, + 0x21f483, + 0x4182, 0x2001c2, - 0x15ca1c5, - 0x146c05, - 0x20cd42, - 0x793c8, - 0x16542, - 0x23dec2, - 0x204202, - 0x202702, - 0x23a382, - 0x24ba82, - 0x10f7c5, - 0x201482, - 0x203c82, - 0x201102, - 0x203382, - 0x208402, - 0x2473c2, - 0x20b5c2, - 0x21c282, - 0x11278384, + 0x1405405, + 0x145d45, + 0x212d02, + 0x7ffc8, + 0x5842, + 0x240482, + 0x203782, + 0x20a382, + 0x23b542, + 0x216602, + 0xcab05, + 0x20ad82, + 0x200f82, + 0x214542, + 0x203fc2, + 0x20f102, + 0x248dc2, + 0x212882, + 0x223ac2, + 0x11a7c7c4, 0x142, - 0xb46c7, - 0x15a43, - 0x1b63cd, - 0xeed09, - 0xef94b, - 0xf1748, - 0x64f09, - 0x114786, - 0x343b43, - 0x793c8, + 0xf1a47, + 0x13683, + 0x1b670d, + 0xf5949, + 0x1a5fcb, + 0xf8f08, + 0x6b349, + 0x1133c6, + 0x2e9c43, + 0x7ffc8, 0x9c4, - 0x12db83, - 0x10e645, - 0x793c8, - 0xebe47, - 0x12455f47, - 0x12a5f244, - 0x62246, - 0x10e689, - 0xb448e, - 0x13e247, - 0x15d8303, - 0x12e0ad42, - 0x9989, - 0xa144, + 0x14c3, + 0x172f85, + 0x7ffc8, + 0xf2447, + 0x12c5a847, + 0x13263284, + 0x66806, + 0x172fc9, + 0xb714e, + 0x13e007, + 0x15b2a43, + 0x13602c02, + 0x1edc89, + 0x1f04, 0x2000c2, - 0x25dd04, - 0x216542, - 0x216543, - 0x2104c2, - 0x222bc3, - 0x1a003, + 0x29f804, + 0x205842, + 0x229f43, + 0x201902, + 0x224d03, + 0x26403, 0x200382, - 0x2e8fc4, - 0x243543, - 0x256e02, - 0x2296c3, - 0x4ba82, + 0x2ef2c4, + 0x25e043, + 0x254902, + 0x2127c3, + 0x16602, 0x2003c2, - 0x20cb83, - 0x24d906, - 0x33538f, - 0x602, - 0x723543, - 0x2f5dca, - 0x793c8, - 0x216542, - 0x2f5503, - 0x343b43, - 0x216443, - 0xd903, - 0x147b5e07, - 0x157cd06, - 0x13f046, - 0x14bc4b88, - 0x1db944, - 0x14ebe40a, - 0x15abe40d, - 0xb4488, - 0x142e44b, - 0x147888a, - 0x15c66b43, - 0xf3949, - 0x16104b48, - 0x1664c347, - 0x15e360a, - 0x1513e47, - 0xaec8b, - 0x16a9068c, - 0xa5545, - 0xcf9c5, - 0x11c5c9, - 0x1a0c84, - 0x117703, - 0x152be545, - 0x124443, - 0x15635c43, - 0x124443, - 0x1d7607, - 0x2bdc2, - 0x6502, - 0x6502, - 0x4182, - 0x6502, - 0x4a42, - 0xd42, - 0x3242, - 0x146c05, - 0xb46c7, - 0x1db944, - 0x102784, - 0x216542, - 0x216543, - 0x343b43, - 0x2296c3, + 0x21f483, + 0x216e06, + 0x33418f, + 0x725ec3, + 0x2fc58a, + 0x7ffc8, + 0x205842, + 0x28c6c3, + 0x2e9c43, + 0x219c03, + 0xbc03, + 0x14bb6147, + 0x1582a46, + 0x1d1ec6, + 0x14fc8bc8, + 0x1e6644, + 0x152c518a, + 0x15c34147, + 0xd6d88, + 0xb7148, + 0x15e930b, + 0x147ccca, + 0x1606ac83, + 0xfb6c9, + 0x165045c8, + 0x16a54187, + 0x14b8e4a, + 0x1500f47, + 0xb378b, + 0x16e81f4c, + 0xaa845, + 0xfc185, + 0x11adc9, + 0x1bddc4, + 0x1153c3, + 0x156c52c5, + 0x124283, + 0x15a32783, + 0x124283, + 0x13682, + 0x1c82, + 0x9e42, + 0x9e42, + 0x3702, + 0x9e42, + 0x1b02, + 0x2102, + 0xd02, + 0x145d45, + 0xf1a47, + 0x1e6644, + 0x102504, + 0x205842, + 0x229f43, + 0x2e9c43, + 0x2127c3, 0x2000c2, - 0x200c82, - 0x206342, - 0x17a16543, - 0x247382, - 0x222bc3, - 0x201282, - 0x234402, - 0x343b43, - 0x2038c2, - 0x271cc2, - 0x22f402, - 0x200cc2, - 0x29a402, + 0x204cc2, + 0x206f02, + 0x17e29f43, + 0x248d82, + 0x224d03, + 0x200c02, + 0x2a5c02, + 0x2e9c43, + 0x21e682, + 0x271102, + 0x232242, + 0x2086c2, + 0x2a1342, 0x200802, - 0x200d82, - 0x205102, - 0x2870c2, - 0x2027c2, - 0x132a0c, - 0x2c1442, - 0x25adc2, - 0x230c02, - 0x253582, - 0x216443, - 0x200bc2, - 0x2296c3, - 0x20f502, - 0x298642, - 0x20cb83, - 0x249342, - 0x202b02, - 0x20a0c2, - 0x2014c2, - 0x2010c2, - 0x215a82, - 0x20d782, - 0x232982, - 0x22cec2, - 0x325d0a, - 0x36918a, - 0x39ecca, - 0x3e9b42, - 0x20cec2, - 0x2be702, - 0x17f8cc49, - 0x183bb68a, - 0x14380c7, - 0x18601682, - 0x1430483, - 0x2c02, - 0x1bb68a, - 0x14f0ce, - 0x21d684, - 0xe8805, - 0x18e16543, - 0x48383, - 0x222bc3, - 0x256d44, - 0x343b43, - 0x2b1b84, - 0x243543, - 0x13e049, - 0x133e86, - 0x216443, - 0xf1dc4, - 0x1b03, - 0x2296c3, - 0x149f05, - 0x20d903, - 0x20cb83, - 0x1561c04, - 0x24c343, - 0x114bc4, - 0x201643, - 0x793c8, - 0x154db43, - 0x123486, - 0x155c1c4, - 0x1a0d45, - 0x1a0a8a, - 0x130602, - 0x199a16cd, - 0x1b3dc6, - 0x147f11, - 0x19f8cc49, - 0x1a0dc8, - 0x42008, - 0x20869487, - 0x3b42, - 0x18cdc7, - 0x208ce, - 0x146c0b, - 0x148d8b, - 0x1c0dca, - 0x34347, - 0x793c8, - 0xb4188, - 0xfd87, - 0x20c1fe0b, - 0x22a87, - 0x4242, - 0x3288d, - 0x163907, - 0x127b0a, - 0x12510c, - 0x1252cf, - 0x1ca4cf, - 0x212eb34d, - 0x2e702, - 0x16542, - 0x904c8, - 0x214e91cc, - 0x1aab8a, - 0xeb94a, - 0x7d54a, - 0x84888, - 0x1db88, - 0x68608, - 0xebe08, - 0x17bbc8, - 0x3242, - 0x1ca24f, - 0xcaa8b, - 0x1dcf08, - 0x3e1c7, - 0x874ca, - 0x3aa4b, - 0x51b89, - 0x873c7, - 0x136f46, - 0x1da88, - 0x1e0a8c, - 0xf4547, - 0x31a0a, - 0x1c74c8, - 0x32f4e, - 0x3370e, - 0x3418b, - 0x3518b, - 0x3678b, - 0xfc849, - 0x880cb, - 0xb688d, - 0x158a8b, - 0xf7a8d, - 0xf7e0d, - 0x12378a, - 0x15a5cb, - 0x1e150b, - 0x3f545, - 0x219c4bd0, - 0x21c41a88, - 0x3610f, - 0x7854f, - 0x2254d, - 0x17a710, - 0x13242, - 0x22258908, - 0x1cdd88, - 0x1b0350, - 0x106a4e, - 0x2275bd85, - 0x555cb, - 0x13d150, - 0x1dc8a, - 0x35349, - 0x6ff47, - 0x70287, - 0x70447, - 0x71587, - 0x72407, - 0x72787, - 0x734c7, - 0x73a07, - 0x73f07, - 0x74287, - 0x74947, - 0x74b07, - 0x74cc7, - 0x74e87, - 0x75207, - 0x756c7, - 0x75ec7, - 0x76287, - 0x768c7, - 0x76b87, - 0x76d47, - 0x77047, - 0x77647, - 0x77847, - 0x78d07, - 0x78ec7, - 0x79087, - 0x79807, - 0x7a047, - 0x7a8c7, - 0x7d387, - 0x7d7c7, - 0x7db47, - 0x7dd07, - 0x7e107, - 0x7e547, - 0x7ea07, + 0x202142, + 0x204d02, + 0x227e02, + 0x20a442, + 0x13038c, + 0x2c7dc2, + 0x2803c2, + 0x226282, + 0x240e42, + 0x219c03, + 0x20dec2, + 0x2127c3, + 0x20e942, + 0x2a28c2, + 0x21f483, + 0x24b382, + 0x2036c2, + 0x21ee82, + 0x204082, + 0x20c582, + 0x2136c2, + 0x215642, + 0x231342, + 0x226d82, + 0x3254ca, + 0x36d08a, + 0x3a8fca, + 0x3f0382, + 0x2102c2, + 0x227482, + 0x18239b09, + 0x187bf80a, + 0x1542547, + 0x18a05f02, + 0x142cb83, + 0x10c2, + 0x1bf80a, + 0x15fe8e, + 0x259b44, + 0x100585, + 0x19229f43, + 0x498c3, + 0x224d03, + 0x25b9c4, + 0x2e9c43, + 0x258104, + 0x25e043, + 0x13de09, + 0x136086, + 0x219c03, + 0xf9704, + 0xd83, + 0x2127c3, + 0x8e345, + 0x20bc03, + 0x21f483, + 0x1528a44, + 0x23ffc3, + 0x1954bc04, + 0x205ec3, + 0x7ffc8, + 0x3842, + 0x154d603, + 0x125e06, + 0x1471484, + 0x1fc5, + 0x1bdbca, + 0x86a42, + 0x1a002acd, + 0x1b9946, + 0x187591, + 0x1a639b09, + 0x15500a, + 0x2048, + 0x1b5508, + 0x6e90e, + 0x182d13, + 0x21121487, + 0xec2, + 0x39c94, + 0x46f07, + 0x2d74e, + 0x145d4b, + 0x1482cb, + 0x1c304a, + 0x110947, + 0x7ffc8, + 0xa1d08, + 0xf647, + 0x2141f6cb, + 0x21646, + 0x24bc7, + 0x37c2, + 0x3124d, + 0x142e85, + 0x18ee07, + 0x10a6ca, + 0x12820c, + 0x1283cf, + 0x570f, + 0xb90c2, + 0x5842, + 0x96948, + 0x218f754c, + 0x1aee0a, + 0xf1f4a, + 0x8240a, + 0x8cdc8, + 0x15948, + 0x6da88, + 0xf2408, + 0xc348, + 0xd02, + 0x548f, + 0x152038d, + 0x181acb, + 0xd1e88, + 0x40787, + 0x5494a, + 0x3bc0b, + 0xa54c9, + 0x54847, + 0x159286, + 0x15848, + 0x3ef0c, + 0x1cd787, + 0x2f5ca, + 0x1db408, + 0x332ce, + 0x3464e, + 0x11078b, + 0x5594b, + 0x15024b, + 0x10a249, + 0x11870b, + 0x12618d, + 0x15be4b, + 0x3accd, + 0x3b04d, + 0x41b4a, + 0x4994b, + 0x4a10b, + 0x50ec5, + 0x21dc8c10, + 0x32c4f, + 0x7c98f, + 0x147a8d, + 0x85f10, + 0x6cc2, + 0x222fc8c8, + 0x1cd608, + 0x9ed50, + 0x1217ce, + 0x2276e985, + 0x5a44b, + 0x13cf10, + 0xa650b, + 0x1b858c, + 0x15a4a, + 0x55b09, + 0x6f248, + 0x762c7, + 0x76607, + 0x767c7, + 0x77707, + 0x78487, + 0x78947, + 0x79607, + 0x79b07, + 0x7a007, + 0x7a387, + 0x7aa47, + 0x7ac07, + 0x7adc7, + 0x7af87, + 0x7b307, + 0x7b847, + 0x7d147, + 0x7d587, + 0x7e007, + 0x7e2c7, + 0x7e487, + 0x7e787, + 0x7ed87, 0x7ef87, - 0x7f147, - 0x7f307, - 0x7f747, - 0x7fd07, + 0x7f907, + 0x7fac7, + 0x7fc87, 0x80247, - 0x80847, - 0x80a07, - 0x810c7, - 0x81607, - 0xc342, - 0x6870a, - 0x1a608, - 0x1bbfcc, - 0x12fb47, - 0x44405, - 0xc3d91, - 0x13dc6, - 0x12100a, - 0x9034a, - 0x62246, - 0xb7f4b, + 0x80887, + 0x81247, + 0x82247, + 0x82687, + 0x82e87, + 0x83047, + 0x83687, + 0x83a07, + 0x83ec7, + 0x842c7, + 0x84607, + 0x847c7, + 0x85187, + 0x86c47, + 0x87407, + 0x879c7, + 0x87b87, + 0x88007, + 0x89347, + 0xd9c2, + 0x6db8a, + 0x18848, + 0x1c014c, + 0x1d5287, + 0x9ae85, + 0x17ac91, + 0x1f0006, + 0x12c00a, + 0x967ca, + 0x66806, + 0xbcf4b, 0x642, - 0x39c91, - 0xc5889, - 0xa0689, - 0xa12c6, - 0x5102, - 0x9c50a, - 0xb4e49, - 0xb558f, - 0xb5b8e, - 0xb7288, - 0x22a17a92, - 0x19b88, - 0x22f2fd07, - 0x1ec82, - 0x15c709, - 0x15490a, - 0x23347589, - 0x19de09, - 0x19de0c, - 0x15f4b, - 0x436ce, - 0xe6cc, - 0xf364f, - 0x1bfdce, - 0x4594c, - 0x5e789, - 0x658d1, - 0x65e88, - 0x7bd12, - 0x7cd4d, - 0x7e6cd, - 0x8564b, - 0x8b795, - 0x932c9, - 0x18500a, - 0x1b0049, - 0x1d4350, - 0x99acb, - 0x9ee0f, - 0xa3fcb, - 0xad6cc, - 0xbac90, - 0xd844a, - 0x18264d, - 0x19210e, - 0xbc48a, - 0xc090c, - 0x1997d4, - 0xc5511, - 0xca64b, - 0xccc8f, - 0xd048d, - 0xd42ce, - 0xd55cc, - 0xd5dcc, - 0xd814b, - 0x14284e, - 0x197d50, - 0x1aa38b, - 0xddacd, - 0xe730f, - 0xec90c, - 0x108b4e, - 0x10c891, - 0x18214c, - 0x11ca07, - 0x144e8d, - 0x15ffcc, - 0x1693d0, - 0x17208d, - 0x172dc7, - 0x195a10, - 0x1a5888, - 0x1abd0b, - 0xbd9cf, - 0x1bc248, - 0x68e8d, - 0x111f10, - 0x174389, - 0x237c4b88, - 0x23ac2a86, - 0xc3943, - 0x52a89, - 0x54c9, - 0xcbc45, - 0x7bc2, - 0x18fd89, - 0x62c8a, - 0x23e7c1c6, - 0x147c1cd, - 0x24363b04, - 0x1da806, - 0x2630a, - 0x2778d, - 0x246da54b, - 0x2484f809, - 0x2b203, - 0x11b88a, - 0xe9951, - 0xe9d89, - 0xeb8c7, - 0xec648, - 0xecd07, - 0x12fc08, - 0x14808b, - 0x1326c9, - 0xf2550, - 0xf2a0c, - 0x24ef31cd, - 0xf5c48, - 0xf7685, - 0x1d0608, - 0x19a8ca, - 0x16c507, - 0x1cc2, - 0x25239155, - 0x13de4a, - 0x1363c9, - 0x5688, - 0xa2549, - 0x1df185, - 0x11c70a, - 0x97c4f, - 0xa55cb, - 0x15ee8c, - 0xc8052, - 0x1b5a06, - 0x9a905, - 0x15f148, - 0xfa0cb, - 0xfa9d1, - 0x143847, - 0x5788a, - 0x25704a05, - 0x1b560c, - 0x13a843, - 0x1953c6, - 0x473c2, - 0x10ad8b, - 0x10b8ca, - 0x150bc4c, - 0xf48c8, - 0xf7c48, - 0x25a05706, - 0x1b7287, - 0x4a02, - 0x1ec2, - 0x1a6e50, - 0x67dc7, - 0x67ecf, - 0x30846, - 0x12270e, - 0x9d3cb, - 0x46c88, - 0x51f49, - 0x117052, - 0x11820d, - 0x118d88, - 0xef809, - 0x19c60d, - 0x112c9, - 0x6824b, - 0x69d88, - 0x73d08, - 0x75388, - 0x771c9, - 0x773ca, - 0x799cc, - 0x1e17ca, - 0xf14ca, - 0x1177c7, - 0xa38ca, - 0x738d, - 0x174cd1, - 0x25ed45c6, - 0x17768b, - 0xbe0c, - 0x414c8, - 0x3d609, - 0x14c6cd, - 0x57110, - 0x190c8d, - 0x6502, - 0x6540d, - 0x4a42, - 0x66342, - 0x11770a, - 0x263d034a, - 0x25c4a, - 0x26680b48, - 0x120f0a, - 0x12f4cb, - 0x3398c, - 0x1203ca, - 0x2692064f, - 0x120a0e, - 0x26de9a05, - 0x12bf48, - 0xe042, - 0x1420a83, - 0x1a38e20e, - 0x1ab2eb8e, - 0x1b202cca, - 0x1bb7c04e, - 0x1c32d84e, - 0x1cb3408c, - 0x14380c7, - 0x14380c9, - 0x1430483, - 0x1d3419cc, - 0x1db54e89, - 0x1e36d309, - 0x1eba0889, - 0x2c02, - 0x1a3511, - 0x12ead1, - 0x2c0d, - 0x17bf91, - 0x12d791, - 0x133fcf, - 0x14190f, - 0x154dcc, - 0x16d24c, - 0x1a07cc, - 0x1b764d, - 0x17d415, - 0xc510c, - 0xe140c, - 0x1439d0, - 0x14a18c, - 0x18758c, - 0x18df59, - 0x1bed19, - 0x1cabd9, - 0x1cc7d4, - 0x1d2454, - 0x1e8694, - 0x5e54, - 0xff14, - 0x1f2c51c9, - 0x1f9e8949, - 0x202e14c9, - 0x1a666089, - 0x2c02, - 0x1ae66089, - 0x2c02, - 0x5e4a, - 0x2c02, - 0x1b666089, - 0x2c02, - 0x5e4a, - 0x2c02, - 0x1be66089, - 0x2c02, - 0x1c666089, - 0x2c02, - 0x1ce66089, - 0x2c02, - 0x5e4a, - 0x2c02, - 0x1d666089, - 0x2c02, - 0x5e4a, - 0x2c02, - 0x1de66089, - 0x2c02, - 0x1e666089, - 0x2c02, - 0x5e4a, - 0x2c02, - 0x1ee66089, - 0x2c02, - 0x5e4a, - 0x2c02, - 0x1f666089, - 0x2c02, - 0x1fe66089, - 0x2c02, - 0x20666089, - 0x2c02, - 0x5e4a, - 0x2c02, + 0x389d1, + 0xcb289, + 0xa6a09, + 0xa7546, + 0x4d02, + 0x6b04a, + 0xb92c9, + 0xb9a0f, + 0xba00e, + 0xbb988, + 0x22a6eb12, + 0x15388, + 0x22e6f447, + 0xbee0f, + 0x1d7c2, + 0x719c9, + 0x8654a, + 0x23217d09, + 0x18c389, + 0x18c38c, + 0x2994b, + 0x1b438e, + 0x448c, + 0xfb3cf, + 0x1c494e, + 0x3f30c, + 0x56a09, + 0x15f291, + 0x61ac8, + 0x6a152, + 0x81c4d, + 0x83b8d, + 0x88b0b, + 0x89a95, + 0x90249, + 0x9158a, + 0x95bc9, + 0x190f90, + 0x1b56cb, + 0xa0dcf, + 0xab04b, + 0xb194c, + 0xc1390, + 0xdb90a, + 0x1a158d, + 0x1a3f8e, + 0x19e84a, + 0xc324c, + 0x1a2614, + 0xcaf11, + 0xce00b, + 0xd03cf, + 0xd2fcd, + 0xd608e, + 0xd9d0c, + 0xda74c, + 0xdb60b, + 0xdc60e, + 0xdd9d0, + 0x141b0b, + 0x1a110d, + 0x1ae1cf, + 0xf2ecc, + 0x108c0e, + 0x10fd91, + 0x1a3a8c, + 0x144347, + 0x162a4d, + 0x16d2cc, + 0x17a610, + 0x17bd0d, + 0x19b5c7, + 0x1a4990, + 0x1afe08, + 0xc284b, + 0xc480f, + 0x1c03c8, + 0x6e30d, + 0x112610, + 0x17d2c9, + 0x237c8bc8, + 0x23ac8c86, + 0xc9983, + 0x61ec9, + 0x25889, + 0xd0e85, + 0x8042, + 0x14a749, + 0x6738a, + 0x23e6a606, + 0x146a60d, + 0x242ff684, + 0x1e4c46, + 0x25dca, + 0x2c60d, + 0x246e034b, + 0x98e08, + 0x2489f389, + 0x2f443, + 0x119aca, + 0xebb49, + 0xf1091, + 0xf14c9, + 0xf1ec7, + 0xf2c08, + 0xf3347, + 0x6f348, + 0x558b, + 0x130049, + 0xfa0d0, + 0xfa58c, + 0xfaa09, + 0x24efadcd, + 0xfc408, + 0xfd045, + 0x146f08, + 0x1a370a, + 0x1325c7, + 0x1242, + 0x25276f95, + 0x13dc0a, + 0x142cc9, + 0x25a48, + 0x1a7ec9, + 0x1d2a45, + 0x11af0a, + 0x173947, + 0x9c30f, + 0xaa8cb, + 0x16154c, + 0xef892, + 0x3e046, + 0x1409588, + 0x7b645, + 0x115608, + 0x1e4d8b, + 0x1e5151, + 0x17587, + 0x6798a, + 0x25704485, + 0x1b5ccc, + 0x2590afce, + 0x13a283, + 0x19de06, + 0x48dc2, + 0x10d2cb, + 0x10de4a, + 0x150f14c, + 0x98d08, + 0x3ae88, + 0x25e25ac6, + 0x152f8e, + 0x132207, + 0x9942, + 0x1782, + 0x18fb50, + 0x6ca87, + 0x6cb8f, + 0x18a46, + 0x5c88e, + 0xa494b, + 0x566c8, + 0xa5889, + 0x1e1e52, + 0x115c4d, + 0x1167c8, + 0x1a5e89, + 0x1ec14d, + 0x6cf09, + 0x6d6cb, + 0x6fe48, + 0x79e08, + 0x7b488, + 0x7e909, + 0x7eb0a, + 0x7f28c, + 0xcf34a, + 0xe808a, + 0x115487, + 0xae6ca, + 0xf8ac8, + 0x780d, + 0xb7bd1, + 0x262d6386, + 0x16588b, + 0x3754c, + 0x45188, + 0x1d9a49, + 0x15d48d, + 0x77950, + 0x1476cc, + 0x14b94d, + 0x9e42, + 0x8a4cd, + 0x1b02, + 0x55202, + 0x1153ca, + 0x267cbc4a, + 0x2b10a, + 0x26a87cc8, + 0x12bf0a, + 0x11bc8b, + 0x11c9c7, + 0x1b134c, + 0x348cc, + 0x11e90a, + 0x26d1eb8f, + 0x11ef4c, + 0x11f247, + 0x1208ce, + 0x271f0245, + 0x184588, + 0x4182, + 0x1405483, + 0x1ab751ce, + 0x1b20118e, + 0x1ba0c98a, + 0x1c332dce, + 0x1ca060ce, + 0x1d340c8c, + 0x1542547, + 0x15550c9, + 0x142cb83, + 0x1db6890c, + 0x1e206cc9, + 0x1ebb7249, + 0x1f3bd9c9, + 0x10c2, + 0x175111, + 0x10d1, + 0xc8cd, + 0x132d11, + 0x1361d1, + 0x140bcf, + 0x16884f, + 0x1a9c0c, + 0x1b718c, + 0x1bd90c, + 0xe72cd, + 0xf8455, + 0x12b64c, + 0x142f8c, + 0x198c90, + 0x1c170c, + 0x1c3bcc, + 0x1c6019, + 0x1db5d9, + 0x5e19, + 0x6a14, + 0xf7d4, + 0x10954, + 0x10ed4, + 0x17714, + 0x1fa0fa89, + 0x20010c09, + 0x20b43049, + 0x1ae61cc9, + 0x10c2, + 0x1b661cc9, + 0x10c2, + 0x5e0a, + 0x10c2, + 0x1be61cc9, + 0x10c2, + 0x5e0a, + 0x10c2, + 0x1c661cc9, + 0x10c2, + 0x1ce61cc9, + 0x10c2, + 0x1d661cc9, + 0x10c2, + 0x5e0a, + 0x10c2, + 0x1de61cc9, + 0x10c2, + 0x5e0a, + 0x10c2, + 0x1e661cc9, + 0x10c2, + 0x1ee61cc9, + 0x10c2, + 0x5e0a, + 0x10c2, + 0x1f661cc9, + 0x10c2, + 0x5e0a, + 0x10c2, + 0x1fe61cc9, + 0x10c2, + 0x20661cc9, + 0x10c2, + 0x20e61cc9, + 0x10c2, + 0x5e0a, + 0x10c2, 0x1400401, - 0x147f05, - 0x1c0dc4, - 0x8903, - 0x8502, - 0x54642, - 0x1419303, - 0x1403603, - 0x14fea83, - 0x18e20e, - 0x12eb8e, - 0x89e8e, - 0x2cca, - 0x17c04e, - 0x12d84e, - 0x13408c, - 0x1419cc, - 0x154e89, - 0x16d309, - 0x1a0889, - 0xc51c9, - 0x1e8949, - 0xe14c9, - 0x143a8d, - 0x6109, - 0x101c9, - 0x3d1c2, - 0x1cbcc4, - 0x1cec84, - 0x1d1104, - 0x1df604, - 0xaef44, - 0xacdc4, - 0x4a9c4, - 0x35644, - 0x1a704, - 0x136fc4, - 0x7b0c9, - 0x7b0cc, - 0x158286, - 0x15828e, - 0x7ce84, - 0x155cf03, - 0x14a007, - 0x148ae0c, - 0x9983, - 0x136fc4, - 0x13242, - 0xe91c8, - 0xd6b04, - 0x1e9706, - 0xdd5c4, - 0x121646, - 0x1f8c2, - 0x7281, - 0x27c44, - 0x69306, - 0x15b83, - 0x9983, - 0x71703, - 0xc7e43, - 0x14803, - 0xf7a03, - 0xc8045, - 0x5adc2, - 0x148a42, - 0x1a1e88, - 0xee7c7, - 0x132747, - 0x3242, + 0x187585, + 0x1c3044, + 0x145b883, + 0x15cf803, + 0x158f143, + 0x1751ce, + 0x118e, + 0x8face, + 0xc98a, + 0x132dce, + 0x60ce, + 0x140c8c, + 0x16890c, + 0x6cc9, + 0x1b7249, + 0x1bd9c9, + 0xfa89, + 0x10c09, + 0x143049, + 0xf864d, + 0x11189, + 0x179c9, + 0x147384, + 0x170a04, + 0x1ec684, + 0x1f0144, + 0xb3a44, + 0x154bc4, + 0x1ba644, + 0x55e04, + 0x18944, + 0x212c4, + 0x16f4c9, + 0x16f4cc, + 0x14fa46, + 0x14fa4e, + 0x81d84, + 0x1596343, + 0x1c3a47, + 0x1490c0c, + 0x2043, + 0x212c4, + 0x6cc2, + 0x4f087, + 0xf7548, + 0xa2108, + 0xdcbc4, + 0x1a9806, + 0x1351c7, + 0xe3504, + 0x114046, + 0x1f182, + 0x1541, + 0x22104, + 0x6e786, + 0x1a883, + 0x6cc2, + 0x2043, + 0xdc843, + 0xef683, + 0x12683, + 0x10a1c3, + 0xef885, + 0x803c2, + 0x7102, + 0x7108, + 0xf4c87, + 0x1300c7, + 0xd02, 0x2000c2, - 0x216542, - 0x2104c2, - 0x218242, + 0x205842, + 0x201902, + 0x218b02, 0x200382, 0x2003c2, - 0x201ec2, - 0x216543, - 0x222bc3, - 0x343b43, - 0x26a7c3, - 0x2296c3, - 0x20cb83, - 0x793c8, - 0x216543, - 0x222bc3, - 0x2296c3, - 0x20cb83, - 0xb303, - 0x343b43, - 0xb1b84, + 0x201782, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258103, + 0x2127c3, + 0x21f483, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2127c3, + 0x21f483, + 0x12c03, + 0x2e9c43, + 0x58104, 0x2000c2, - 0x253c43, - 0x29216543, - 0x3a5287, - 0x343b43, - 0x21b283, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x23098a, - 0x24d905, - 0x21f6c3, - 0x213402, - 0x793c8, - 0x296df98a, - 0xe01, - 0x793c8, - 0x16542, - 0x138402, - 0x29e4f58b, - 0x2a2093c4, - 0x163a45, - 0x1403ec5, - 0xe91c6, - 0x2a603ec5, - 0x5fa83, - 0x1b0243, + 0x258843, + 0x29629f43, + 0x3ab707, + 0x2e9c43, + 0x2280c3, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x22600a, + 0x216e05, + 0x202783, + 0x208ec2, + 0x7ffc8, + 0x29ae574a, + 0xc41, + 0x7ffc8, + 0x5842, + 0x137d42, + 0x2a29f10b, + 0x2a635204, + 0xff5c5, + 0x1402cc5, + 0xf7546, + 0x2aa02cc5, + 0x635c3, + 0x9ec43, 0x9c4, - 0x12db83, - 0x10e645, - 0x146c05, - 0x793c8, - 0x22a87, - 0x16543, - 0x1b4bcd, - 0x2ae42647, - 0x1386, - 0x2b17be85, - 0x186012, - 0x1447, - 0x1e48a, - 0x17588, - 0x1e387, - 0x7368a, - 0x1bd188, - 0x110a47, - 0x165d8f, - 0x3db87, - 0x4bb86, - 0x13d150, - 0x19350f, - 0x1b009, - 0x1da884, - 0x2b40150e, - 0x5b0c9, - 0x74fc6, - 0x1113c9, - 0x190a86, - 0x6ac6, - 0xb8e4c, - 0x3ac4a, - 0x51d07, - 0x14140a, - 0x1909, - 0x25e8c, - 0x2954a, - 0x6b44a, - 0x10e689, - 0x1da806, - 0x51dca, - 0x11934a, - 0xa954a, - 0x114309, - 0xe8b88, - 0xe8e06, - 0xef08d, - 0x5b88b, - 0xcc205, - 0x2bb1e14c, - 0x13e247, - 0x10fcc9, - 0xd6187, - 0xc5c14, - 0x11230b, - 0x1dcd4a, - 0x116eca, - 0xb080d, - 0x152f6c9, - 0x117fcc, - 0x118b8b, - 0x31a03, - 0x31a03, - 0x32f46, - 0x31a03, - 0xe91c8, - 0x157243, - 0x4ebc4, - 0x5fc83, - 0x14a9607, - 0x51f05, - 0x15186c3, - 0x5c549, - 0xc8045, - 0xfa0cb, - 0x14ecb83, - 0x152e06, - 0x1523947, - 0x1d45c7, - 0x2c97ce89, - 0x1d1a86, - 0x53c43, - 0x793c8, - 0x16542, - 0x56d44, - 0x43ac3, - 0x155b45, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x203b43, - 0x216543, - 0x222bc3, - 0x2f5503, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x2a0843, - 0x201643, - 0x203b43, - 0x25dd04, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x20e603, - 0x2192c3, - 0x213402, - 0x2e17cf85, - 0x1438003, - 0x216543, - 0x222bc3, - 0x21a003, - 0x2f5503, - 0x343b43, - 0x2b1b84, - 0x34b203, - 0x233243, - 0x216443, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x21f6c3, - 0x2ee0fc03, - 0xc7f49, - 0x16542, - 0x225103, - 0x2fa16543, - 0x222bc3, - 0x252183, - 0x343b43, - 0x2207c3, - 0x233243, - 0x20cb83, - 0x2037c3, - 0x3df304, - 0x793c8, - 0x30216543, - 0x222bc3, - 0x2b7343, - 0x343b43, - 0x216443, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x238743, - 0x793c8, - 0x30a16543, - 0x222bc3, - 0x2f5503, - 0x20d903, - 0x20cb83, - 0x793c8, - 0x14380c7, - 0x253c43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x146c05, - 0xb46c7, - 0xc5e4b, - 0x31a3ca06, - 0x31efdb4b, - 0xea184, - 0xcc205, - 0x1472588, - 0x2f20d, - 0x1c4b88, - 0x136fc4, - 0x3264ccc5, - 0x27804, - 0x16542, - 0x1a143, - 0x158185, - 0x386c2, - 0x34aac5, - 0x793c8, - 0x33e98f0d, - 0x343a11ca, - 0x24642, - 0x5483, - 0x164f4f, - 0x18242, - 0x7ce84, - 0x136fc4, - 0x16542, + 0x14c3, + 0x172f85, + 0x145d45, + 0x7ffc8, + 0x24bc7, + 0x29f43, + 0x3514d, + 0x2b246907, + 0xac86, + 0x2b40c7c5, + 0x148792, + 0xad47, + 0x1624a, + 0x14e88, + 0x16147, + 0x1d5b4a, + 0x1bad08, + 0x6d487, + 0x156acf, + 0x4dd87, + 0x539c6, + 0x13cf10, + 0xc9c8f, + 0x1ac09, + 0x1e4cc4, + 0x2b80ae0e, + 0x4f3c9, + 0x7b0c6, + 0x111ac9, + 0x19ab46, + 0x1d71c6, + 0xbe24c, + 0x3be0a, + 0xa5647, + 0x1e224a, + 0xb209, + 0xfe38c, + 0x2724a, + 0x6b68a, + 0x172fc9, + 0x1e4c46, + 0xa570a, + 0x116d4a, + 0xaf4ca, + 0x157189, + 0xeee88, + 0xef106, + 0xf644d, + 0x5fe0b, + 0xd1445, + 0x2bf889cc, + 0x13e007, + 0x1c8049, + 0xdab07, + 0xb2c54, + 0x112a0b, + 0xd1cca, + 0x1e1cca, + 0xb578d, + 0x151be89, + 0x115a0c, + 0x1165cb, + 0x163217, + 0x163d55, + 0x2f5c3, + 0x2f5c3, + 0x332c6, + 0x2f5c3, + 0xf7548, + 0x156983, + 0x51384, + 0x1c244, + 0x1c24c, + 0x63883, + 0x14af587, + 0xa5845, + 0x142b343, + 0x142b348, + 0x60209, + 0xef885, + 0x1e4d8b, + 0xce2cb, + 0x14f3143, + 0x14f3148, + 0x149c86, + 0x1441d07, + 0x191207, + 0x2cd82bc9, + 0x12686, + 0x58843, + 0x7ffc8, + 0x5842, + 0x5b9c4, + 0x97783, + 0x12e885, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x2030c3, + 0x229f43, + 0x224d03, + 0x28c6c3, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x39ac43, + 0x205ec3, + 0x2030c3, + 0x29f804, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x2043c3, + 0x208d43, + 0x208ec2, + 0x2e582cc5, + 0x14325c3, + 0x229f43, + 0x224d03, + 0x226403, + 0x28c6c3, + 0x2e9c43, + 0x258104, + 0x3ce883, + 0x2335c3, + 0x219c03, + 0x2127c3, + 0x81983, + 0x21f483, + 0x202783, + 0x2f2265c3, + 0xef789, + 0x5842, + 0x2f0243, + 0x2fe29f43, + 0x224d03, + 0x255f03, + 0x2e9c43, + 0x22d643, + 0x2335c3, + 0x21f483, + 0x203303, + 0x3d2bc4, + 0x7ffc8, + 0x30629f43, + 0x224d03, + 0x2bba43, + 0x2e9c43, + 0x219c03, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x265503, + 0x7ffc8, + 0x30e29f43, + 0x224d03, + 0x28c6c3, + 0x20bc03, + 0x21f483, + 0x7ffc8, + 0x1542547, + 0x258843, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x145d45, + 0xf1a47, + 0xb2e8b, + 0x31e3eb46, + 0xf18c4, + 0xd1445, + 0x1475dc8, + 0x3204d, + 0x1c8bc8, + 0x3275e205, + 0x2c684, + 0x5842, + 0xb8c3, + 0x14f945, + 0x47f42, + 0x340a45, + 0x7ffc8, + 0x33f0ac4d, + 0x3420244a, + 0xc142, + 0x5083, + 0x16934f, + 0x18b02, + 0x81d84, + 0x212c4, + 0x5842, 0x2000c2, - 0x253c43, - 0x216543, - 0x343b43, - 0x2b1b84, - 0x216443, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x21f6c3, - 0x216543, - 0x222bc3, - 0x2296c3, - 0x20cb83, - 0x19045, - 0x331408, - 0x25dd04, - 0x379ac6, - 0x3a0686, - 0x793c8, - 0x2b6643, - 0x2f6689, - 0x21c495, - 0x1c49f, - 0x216543, - 0xf4d87, - 0x38db12, - 0x16a146, - 0x182c45, - 0x1dc8a, - 0x35349, - 0x38d8cf, - 0x2e8fc4, - 0x237a05, - 0x313790, - 0x2b1087, - 0x20d903, - 0x2c2308, - 0x13846, - 0x29fc4a, - 0x26fb04, - 0x304443, - 0x213402, - 0x2fe64b, - 0x222bc3, - 0x343b43, - 0xd903, - 0x15b044, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, + 0x258843, + 0x229f43, + 0x2e9c43, + 0x258104, + 0x219c03, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x202783, + 0x229f43, + 0x224d03, + 0x2127c3, + 0x21f483, + 0xef45, + 0x32e1c8, + 0x29f804, + 0x371f86, + 0x3a9ac6, + 0x7ffc8, + 0x3184c3, + 0x236c09, + 0x21b795, + 0x1b79f, + 0x229f43, + 0x8bf47, + 0x398852, + 0x18ce86, + 0x18fa45, + 0x15a4a, + 0x55b09, + 0x39860f, + 0x2ef2c4, + 0x231b05, + 0x3dfb90, + 0x285787, + 0x20bc03, + 0x219d08, + 0x21146, + 0x28aa0a, + 0x257fc4, + 0x3041c3, + 0x208ec2, + 0x2ff38b, + 0x224d03, + 0x2e9c43, + 0xbc03, + 0x18a044, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, 0x309a43, - 0x216542, - 0x187003, - 0x149c04, - 0x2296c3, - 0x20cb83, - 0x364419c5, - 0x1de746, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x21b283, - 0x233c83, - 0x20cb83, - 0x53c43, - 0x216542, - 0x216543, - 0x222bc3, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x19f42, + 0x205842, + 0x38fc3, + 0x1e3084, + 0x2127c3, + 0x21f483, + 0x36426b85, + 0x1d9806, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2280c3, + 0x2307c3, + 0x21f483, + 0x58843, + 0x205842, + 0x229f43, + 0x224d03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x1a802, 0x2000c2, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x3ec5, - 0x63a09, - 0x9983, - 0x25dd04, - 0x216543, - 0x222bc3, - 0x28d4c4, - 0x2296c3, - 0x20cb83, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x1b7409, - 0xe804, - 0x216543, - 0x3242, - 0x222bc3, - 0x2f5503, - 0x20e443, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x2a02, - 0x216543, - 0x222bc3, - 0x343b43, - 0x3636c4, - 0x2b1b84, - 0x2296c3, - 0x20cb83, - 0x201643, - 0x4702, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x284103, - 0xe103, - 0x1b283, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x38bc6, - 0x325d0a, - 0x3453c9, - 0x35fd4b, - 0x36084a, - 0x36918a, - 0x37860b, - 0x39084a, - 0x3979ca, - 0x39ecca, - 0x39ef4b, - 0x3c5589, - 0x3d368a, - 0x3d3acb, - 0x3dfecb, - 0x3e914a, - 0x4042, - 0x216543, - 0x222bc3, - 0x2f5503, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x3ecb, - 0x106a47, - 0x69a08, - 0x19c744, - 0x1db944, - 0x98e48, - 0xedac6, - 0x1481c6, - 0x13a09, - 0x793c8, - 0x216543, - 0x1dc84, - 0x26ff44, - 0x215d42, - 0x21b544, - 0x30eb85, - 0x203b43, - 0x25dd04, - 0x216543, - 0x23ec84, - 0x222bc3, - 0x256d44, - 0x2e8fc4, - 0x2b1b84, - 0x233243, - 0x2296c3, - 0x20cb83, - 0x2655c5, - 0x20e603, - 0x21f6c3, - 0x27d683, - 0x2d1984, - 0x323404, - 0x34bd45, - 0x793c8, - 0x32e744, - 0x3c2086, - 0x30e7c4, - 0x216542, - 0x2c8447, - 0x250707, - 0x254744, - 0x2ee845, - 0x372285, - 0x2b96c5, - 0x2b1b84, - 0x267408, - 0x25d206, - 0x392c88, - 0x287105, - 0x2efe85, - 0x257204, - 0x20cb83, - 0x305504, - 0x3770c6, - 0x24da03, - 0x2d1984, - 0x26fac5, - 0x38fd04, - 0x2aacc4, - 0x213402, - 0x38f846, - 0x3b8fc6, - 0x315f85, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x2cc5, + 0x63649, + 0x2043, + 0x29f804, + 0x229f43, + 0x224d03, + 0x292e44, + 0x2127c3, + 0x21f483, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x81983, + 0x21f483, + 0x12b409, + 0x45c4, + 0x229f43, + 0xd02, + 0x224d03, + 0x28c6c3, + 0x204203, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0xfc2, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x3547c4, + 0x258104, + 0x2127c3, + 0x21f483, + 0x205ec3, + 0x2b82, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x81983, + 0x21f483, + 0x15aec3, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x352e83, + 0x3e83, + 0x280c3, + 0x2127c3, + 0x81983, + 0x21f483, + 0x36146, + 0x3254ca, + 0x344509, + 0x3627cb, + 0x362f8a, + 0x36d08a, + 0x38068b, + 0x39a90a, + 0x3a0d8a, + 0x3a8fca, + 0x3a924b, + 0x3c9509, + 0x3dc94a, + 0x3dd18b, + 0x3ea14b, + 0x3ef7ca, + 0x35c2, + 0x229f43, + 0x224d03, + 0x28c6c3, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x344b, + 0x1217c7, + 0x6f7c8, + 0x1ec284, + 0x1e6644, + 0x9dac8, + 0xf3f86, + 0x56c6, + 0x11df87, + 0x120287, + 0xf0c9, + 0x7ffc8, + 0x229f43, + 0x15a44, + 0x2762c4, + 0x202182, + 0x222d84, + 0x3734c5, + 0x2030c3, + 0x29f804, + 0x229f43, + 0x241284, + 0x224d03, + 0x25b9c4, + 0x2ef2c4, + 0x258104, + 0x2335c3, + 0x2127c3, + 0x21f483, + 0x28a685, + 0x2043c3, + 0x202783, + 0x21cb03, + 0x24a3c4, + 0x325d84, + 0x22cc85, + 0x7ffc8, + 0x20b904, + 0x3d1606, + 0x373104, + 0x205842, + 0x2efc87, + 0x253087, + 0x259344, + 0x2f4d05, + 0x37bf05, + 0x235c45, + 0x258104, + 0x26c048, + 0x260ec6, + 0x35a148, + 0x358fc5, + 0x2f7305, + 0x277a44, + 0x21f483, + 0x305744, + 0x37f506, + 0x216f03, + 0x24a3c4, + 0x268285, + 0x34a6c4, + 0x2affc4, + 0x208ec2, + 0x24fd46, + 0x3bc546, + 0x313dc5, 0x2000c2, - 0x253c43, - 0xedc46, - 0x3b616542, - 0x231d44, - 0x63dc5, + 0x258843, + 0xf4106, + 0x3ba05842, + 0x22f904, + 0x197604, + 0x68585, 0x200382, - 0x216443, - 0x2a9542, - 0x2296c3, + 0x219c03, + 0x205582, + 0x2127c3, 0x2003c2, - 0x301a46, - 0x202b03, - 0x1da785, - 0x201643, - 0x793c8, - 0x793c8, - 0x343b43, - 0x7ca83, + 0x301946, + 0x217083, + 0x1e4bc5, + 0x205ec3, + 0x7ffc8, + 0x7ffc8, + 0x2e9c43, + 0x81983, 0x2000c2, - 0x3c216542, - 0x343b43, - 0x274c43, - 0x34b203, - 0x2093c4, - 0x2296c3, - 0x20cb83, - 0x793c8, + 0x3c605842, + 0x2e9c43, + 0x27ad43, + 0x3ce883, + 0x235204, + 0x2127c3, + 0x21f483, + 0x7ffc8, + 0x3df87, 0x2000c2, - 0x3ca16542, - 0x216543, - 0x2296c3, - 0xd903, - 0x20cb83, + 0x3ce05842, + 0x229f43, + 0x2127c3, + 0xbc03, + 0x21f483, 0x682, - 0x2091c2, - 0x22a042, - 0x21b283, - 0x2faf43, + 0x210702, + 0x26ca02, + 0x2280c3, + 0x2fe343, 0x2000c2, - 0x146c05, - 0x793c8, - 0xb46c7, - 0x216542, - 0x222bc3, - 0x256d44, - 0x204f03, - 0x343b43, - 0x20e443, - 0x216443, - 0x2296c3, - 0x20b243, - 0x20cb83, - 0x23d343, - 0x1643, - 0x13ff13, - 0x142f14, - 0x146c05, - 0xb46c7, - 0x1e489, - 0x1e1e06, - 0x19108b, - 0x32f46, - 0x60ac7, - 0x145246, + 0x145d45, + 0x7ffc8, + 0xf1a47, + 0x205842, + 0x224d03, + 0x25b9c4, + 0x204b03, + 0x2e9c43, + 0x204203, + 0x219c03, + 0x2127c3, + 0x21c043, + 0x21f483, + 0x216e43, + 0x5ec3, + 0x13fe13, + 0x142054, + 0x145d45, + 0xf1a47, + 0x16249, + 0x114786, + 0x12efcb, + 0x332c6, + 0x64d47, + 0x162e06, 0x649, - 0x15d3ca, - 0x9560d, - 0x1b60cc, - 0x119cca, - 0x46688, - 0x10f7c5, - 0x1e4c8, - 0x30846, - 0x1d1806, - 0x13906, - 0x602, - 0x213242, - 0x15cb84, - 0x1d4b06, - 0x1255d0, - 0x14dbf0e, - 0x1a1146, - 0x41dcc, - 0x3e37cd0b, - 0x146c05, - 0x152c0b, - 0x3e7d1744, - 0x1c0f87, - 0x2c191, - 0x12140a, - 0x216543, - 0x3ea8ad08, - 0x73605, - 0x89288, - 0x2a2c4, - 0x62e85, - 0x3ec0b186, - 0x1bc60b, - 0xc3d86, - 0x72206, - 0x9a6ca, - 0x16c5cc, - 0x1c2003, - 0x1db944, - 0x3f218004, - 0x5c549, - 0x192e07, - 0xac00a, - 0x14df889, + 0x78e0a, + 0x9a6cd, + 0x1b640c, + 0x1176ca, + 0x191648, + 0xcab05, + 0x16288, + 0x18a46, + 0x1d1ac6, + 0x5b646, + 0x206cc2, + 0x71e44, + 0xfbbc6, + 0x14e1f4e, + 0x23c6, + 0x7804c, + 0x3e382a4b, + 0x145d45, + 0x149a8b, + 0x3e7b5347, + 0x3ebb534a, + 0x3efd4ec4, + 0x1c3207, + 0x2a691, + 0x12130a, + 0x229f43, + 0x3f290b08, + 0x1d5ac5, + 0x19f508, + 0x2ba44, + 0x67585, + 0xb0d07, + 0x3f5d14c6, + 0xe184b, + 0x3fb84209, + 0x15345, + 0x17ac86, + 0x11c306, + 0xa160a, + 0x9e80c, + 0x1c5983, + 0x1e6644, + 0x3ffeba44, + 0x60209, + 0x10b707, + 0x10e60a, + 0x14e5649, 0x605, - 0xb6803, - 0x3f63d487, - 0x149f05, - 0x1565b86, - 0x157ac46, - 0x3fb92f4f, - 0xb800c, - 0x107588, - 0x3fc473c3, - 0x10a3c4, - 0xfe88b, - 0x1d694b, - 0x4025240c, - 0x14110c3, - 0xcddc8, - 0xfeb05, - 0xca909, - 0xeb643, - 0x12f7c8, - 0x1426246, - 0x95c87, - 0x4074c6c9, - 0x41a7a6c8, - 0x9dc07, - 0xcf9ca, - 0x41fc9408, - 0x11884d, - 0x12248, - 0x9983, - 0x146a249, - 0x14c203, - 0x32f46, - 0xe91c8, - 0x1a704, - 0x1d8645, - 0xfea83, - 0x1497d03, - 0x20a87, - 0x40a20a83, - 0x40fc2486, - 0x41240644, - 0x4170ba87, - 0xe91c4, - 0xe91c4, - 0xe91c4, - 0xe91c4, - 0x3ec5, - 0x1a18c8, - 0x148209, + 0x118683, + 0x4023fcc7, + 0x8e345, + 0x1569f86, + 0x14b89c6, + 0xbd00c, + 0x1074c8, + 0x40448dc3, + 0x10be44, + 0x18ef4b, + 0x2178b, + 0x40b3f1cc, + 0x1418303, + 0xd2cc8, + 0xce2cb, + 0xb0bc9, + 0xd7743, + 0x11bf88, + 0x1425d06, + 0x98307, + 0x40f5d489, + 0x422eb088, + 0xa3b47, + 0xfc18a, + 0x42763748, + 0x11628d, + 0x1c7e49, + 0x11448, + 0x2043, + 0x1455349, + 0x212c4, + 0x14c945, + 0x2d143, + 0x332c6, + 0xf7548, + 0x1403842, + 0x18944, + 0x2b405, + 0x149c3c3, + 0x2d907, + 0x41205483, + 0x41771a06, + 0x41a44084, + 0x41f73a47, + 0xf7544, + 0xf7544, + 0xf7544, + 0xf7544, + 0x2cc9, 0x41, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, 0x2000c2, - 0x216542, - 0x343b43, - 0x2042c2, - 0x2296c3, - 0x20cb83, - 0x202b03, - 0x3835cf, - 0x38398e, - 0x793c8, - 0x216543, - 0x4e6c7, - 0x222bc3, - 0x343b43, - 0x243543, - 0x2296c3, - 0x20cb83, - 0x1a1084, - 0x12dcc4, - 0x9c04, - 0x224503, - 0x3a2347, - 0x202302, - 0x277c09, + 0x205842, + 0x2e9c43, + 0x203842, + 0x2127c3, + 0x21f483, + 0x217083, + 0x38e28f, + 0x38e64e, + 0x7ffc8, + 0x229f43, + 0x50a07, + 0x224d03, + 0x2e9c43, + 0x25e043, + 0x2127c3, + 0x21f483, + 0x2304, + 0x1604, + 0xa9c4, + 0x225543, + 0x373d07, + 0x205b42, + 0x27c049, 0x200ac2, - 0x3a714b, - 0x2e808a, - 0x2ec409, + 0x38fe4b, + 0x2b038a, + 0x2e9f09, 0x200542, - 0x22a686, - 0x256255, - 0x3a7295, - 0x259fd3, - 0x3a7813, - 0x22d0c2, - 0x22d0c5, - 0x363e0c, - 0x27ff8b, - 0x281405, - 0x202cc2, - 0x30a8c2, - 0x37ed06, - 0x203b42, - 0x2d4b06, - 0x21df0d, - 0x349c8c, - 0x3c4c44, + 0x22be06, + 0x3a0355, + 0x38ff95, + 0x25ab13, + 0x390513, + 0x20b602, + 0x20b605, + 0x20b60c, + 0x2833cb, + 0x251605, + 0x201182, + 0x30c842, + 0x36e406, + 0x200ec2, + 0x2da306, + 0x215ccd, + 0x2ca88c, + 0x3c8c84, 0x200882, - 0x205242, - 0x27c0c8, + 0x204e42, + 0x26a508, 0x200202, - 0x32dd86, - 0x39a18f, - 0x32dd90, - 0x3abc44, - 0x256415, - 0x25a153, - 0x20a883, - 0x3630ca, - 0x211d47, - 0x39f1c9, - 0x3129c7, - 0x328c42, + 0x2016c6, + 0x3a2fcf, + 0x2016d0, + 0x23a404, + 0x3a0515, + 0x25ac93, + 0x21e943, + 0x3541ca, + 0x392747, + 0x397ec9, + 0x30e4c7, + 0x327082, 0x200282, - 0x3cb7c6, - 0x207dc2, - 0x793c8, - 0x202502, - 0x20bd42, - 0x212e47, - 0x38d507, - 0x38d511, - 0x221a05, - 0x221a0e, - 0x22204f, - 0x204242, - 0x2f1c07, - 0x224b48, - 0x2016c2, - 0x2295c2, - 0x227406, - 0x22740f, - 0x23ff50, - 0x237242, - 0x204182, - 0x336588, - 0x210903, - 0x2920c8, - 0x2cb30d, - 0x204183, - 0x3a04c8, - 0x28e48f, - 0x28e84e, - 0x316b8a, - 0x3b3ed1, - 0x3b4350, - 0x21b9cd, - 0x21bd0c, - 0x386987, - 0x363247, - 0x379b89, - 0x20cd02, - 0x202402, - 0x26274c, - 0x262a4b, - 0x200d42, - 0x2d8306, - 0x20c602, + 0x3ceec6, + 0x2045c2, + 0x7ffc8, + 0x20a182, + 0x202a02, + 0x211907, + 0x398247, + 0x398251, + 0x2223c5, + 0x2223ce, + 0x22284f, + 0x2037c2, + 0x30ef87, + 0x225588, + 0x205f42, + 0x2272c2, + 0x212306, + 0x21230f, + 0x242910, + 0x232382, + 0x203702, + 0x2efdc8, + 0x207243, + 0x297948, + 0x2bbfcd, + 0x203703, + 0x3d3bc8, + 0x293e0f, + 0x2941ce, + 0x3e198a, + 0x2ee1d1, + 0x2ee650, + 0x22320d, + 0x22354c, + 0x3c5a07, + 0x354347, + 0x372049, + 0x21e742, + 0x202542, + 0x266e4c, + 0x26714b, + 0x202102, + 0x2db7c6, + 0x212fc2, 0x200482, - 0x22e702, - 0x216542, - 0x3dbec4, - 0x241787, - 0x213b02, - 0x248d87, - 0x24a7c7, - 0x215a42, - 0x219d82, - 0x24e585, - 0x20c542, - 0x250e0e, - 0x39654d, - 0x222bc3, - 0x243c8e, - 0x2c764d, - 0x3c4143, - 0x2026c2, - 0x2730c4, - 0x2b3802, - 0x213642, - 0x3a6a05, - 0x3acc07, - 0x250d02, - 0x218242, - 0x256947, - 0x25c8c8, - 0x25c082, - 0x29a986, - 0x2625cc, - 0x26290b, - 0x20eb02, - 0x26c34f, - 0x26c710, - 0x26cb0f, - 0x26ced5, - 0x26d414, - 0x26d90e, - 0x26dc8e, - 0x26e00f, - 0x26e3ce, - 0x26e754, - 0x26ec53, - 0x26f10d, - 0x2817c9, - 0x2975c3, - 0x204342, - 0x322205, - 0x204f06, + 0x2b90c2, + 0x205842, + 0x235644, + 0x2456c7, + 0x20f1c2, + 0x24adc7, + 0x24d147, + 0x213682, + 0x215582, + 0x2508c5, + 0x201bc2, + 0x2dbd4e, + 0x2138cd, + 0x224d03, + 0x3b494e, + 0x2cda8d, + 0x332183, + 0x200d42, + 0x2958c4, + 0x29e2c2, + 0x220f42, + 0x3ac685, + 0x3b0dc7, + 0x254482, + 0x218b02, + 0x25b147, + 0x260588, + 0x262642, + 0x27b6c6, + 0x266ccc, + 0x26700b, + 0x202e42, + 0x27274f, + 0x272b10, + 0x272f0f, + 0x2732d5, + 0x273814, + 0x273d0e, + 0x27408e, + 0x27440f, + 0x2747ce, + 0x274b54, + 0x275053, + 0x27550d, + 0x289509, + 0x29be83, + 0x2038c2, + 0x35ed05, + 0x204b06, 0x200382, - 0x2bfd47, - 0x343b43, + 0x36dc47, + 0x2e9c43, 0x200642, - 0x23e448, - 0x3b4111, - 0x3b4550, - 0x202102, - 0x296907, - 0x202642, - 0x25c247, - 0x207bc2, - 0x208309, - 0x37ecc7, - 0x3e5848, - 0x20afc6, - 0x208703, - 0x208705, - 0x225e82, + 0x3e7088, + 0x2ee411, + 0x2ee850, + 0x208102, + 0x29b207, + 0x203382, + 0x262807, + 0x208042, + 0x335309, + 0x36e3c7, + 0x28c948, + 0x3d1306, + 0x2fe243, + 0x39d7c5, + 0x22b342, 0x2004c2, - 0x3cbbc5, - 0x36bd85, - 0x20b402, - 0x237843, - 0x352f87, - 0x3c3c47, - 0x203f02, - 0x38f0c4, - 0x271f43, - 0x33eec9, - 0x3c7348, - 0x209d42, - 0x210442, - 0x22cac7, - 0x231745, - 0x20c708, - 0x327287, - 0x20f543, - 0x3d4986, - 0x21b84d, - 0x21bbcc, - 0x223046, - 0x204202, - 0x31de42, - 0x201582, - 0x28e30f, - 0x28e70e, - 0x372307, - 0x202042, - 0x3d2185, - 0x3d2186, - 0x228882, - 0x200bc2, - 0x298346, - 0x210783, - 0x3c2c46, - 0x2dd585, - 0x2dd58d, - 0x2de195, - 0x2ded4c, - 0x2df0cd, - 0x2df412, - 0x203742, - 0x277782, - 0x202802, - 0x3437c6, - 0x20e586, - 0x43296084, - 0x201cc2, - 0x204f86, - 0x201102, - 0x3a2b45, + 0x208a85, + 0x367d45, + 0x204442, + 0x25c083, + 0x349e07, + 0x3d1887, + 0x202d02, + 0x39a304, + 0x20d003, + 0x3d1d49, + 0x3db288, + 0x20b982, + 0x20fd02, + 0x243e47, + 0x2f04c5, + 0x237e48, + 0x350847, + 0x20e983, + 0x2fba46, + 0x22308d, + 0x22340c, + 0x39f706, + 0x203782, + 0x202c82, + 0x2026c2, + 0x293c8f, + 0x29408e, + 0x37bf87, 0x205c02, - 0x250f49, - 0x22d58c, - 0x22d8cb, + 0x219c05, + 0x219c06, + 0x21dfc2, + 0x20dec2, + 0x29cb06, + 0x210043, + 0x347146, + 0x2e34c5, + 0x2e34cd, + 0x2e3a55, + 0x2e4b0c, + 0x2e4e8d, + 0x2e51d2, + 0x20f782, + 0x27eec2, + 0x204342, + 0x217506, + 0x204346, + 0x43a8bec4, + 0x201242, + 0x204b86, + 0x214542, + 0x3d8045, + 0x202a42, + 0x2139c9, + 0x23388c, + 0x233bcb, 0x2003c2, - 0x25e3c8, - 0x211c02, + 0x261708, + 0x20df02, 0x200a82, - 0x27de46, - 0x266005, - 0x200a87, - 0x2fca45, - 0x2824c5, - 0x23d7c2, - 0x21e582, - 0x208402, - 0x29f107, - 0x301b0d, - 0x301e8c, - 0x25d707, - 0x29a902, - 0x219d02, - 0x3e8008, - 0x38ff08, - 0x2e5e08, - 0x3bc204, - 0x342ac7, - 0x363b83, - 0x206bc2, - 0x203482, - 0x302889, - 0x233347, - 0x2037c2, - 0x27e245, - 0x24cec2, - 0x204682, - 0x30b0c3, - 0x30b0c6, - 0x309602, - 0x30a282, + 0x283186, + 0x261c45, + 0x393507, + 0x3a81c5, + 0x26d105, + 0x2020c2, + 0x216342, + 0x20f102, + 0x2a10c7, + 0x301a0d, + 0x301d8c, + 0x24efc7, + 0x22e6c2, + 0x215502, + 0x3cf0c8, + 0x34a8c8, + 0x34d908, + 0x3c0384, + 0x2dc887, + 0x2ff703, + 0x253ac2, + 0x2043c2, + 0x302609, + 0x2336c7, + 0x202782, + 0x2837c5, + 0x285042, + 0x20e0c2, + 0x3095c3, + 0x3095c6, + 0x309742, + 0x30bd02, 0x200402, - 0x2abc86, - 0x273007, - 0x213582, + 0x3bd706, + 0x34ed07, + 0x21e202, 0x200902, - 0x291f0f, - 0x243acd, - 0x39e2ce, - 0x2c74cc, - 0x20cbc2, - 0x202a82, - 0x20ae05, - 0x324106, - 0x200b82, - 0x205d42, + 0x29778f, + 0x3b478d, + 0x38c84e, + 0x2cd90c, + 0x20a602, + 0x203342, + 0x3d1145, + 0x323f46, + 0x202682, + 0x206902, 0x200682, - 0x243e44, - 0x2c4b44, - 0x36c186, - 0x201ec2, - 0x292d47, - 0x23f643, - 0x23f648, - 0x2408c8, - 0x24ad47, - 0x251646, - 0x204ac2, - 0x2118c3, - 0x2118c7, - 0x28a6c6, - 0x2ed245, - 0x27f908, - 0x202d82, - 0x35b4c7, - 0x203782, - 0x352902, - 0x204102, - 0x2221c9, - 0x24b302, - 0x14448, - 0x201b82, - 0x25d983, - 0x32e887, - 0x200f02, - 0x22d70c, - 0x22da0b, - 0x2abf06, - 0x223e85, - 0x43609d83, - 0x22bdc2, - 0x202a02, - 0x2cf7c6, - 0x209003, - 0x363447, - 0x211482, + 0x2cdc04, + 0x2bbe44, + 0x358906, + 0x201782, + 0x28e207, + 0x248883, + 0x248888, + 0x2496c8, + 0x256887, + 0x3ab886, + 0x205f82, + 0x212f43, + 0x212f47, + 0x282d06, + 0x2d8485, + 0x285348, + 0x204942, + 0x38a4c7, + 0x207802, + 0x29ec82, + 0x203682, + 0x201889, + 0x2088c2, + 0x14cc8, + 0x200e02, + 0x2aa083, + 0x200e87, + 0x202602, + 0x233a0c, + 0x233d0b, + 0x39f786, + 0x20e385, + 0x43e27303, + 0x201c82, + 0x200fc2, + 0x2d5146, + 0x243783, + 0x354547, + 0x26d0c2, 0x2008c2, - 0x2560d5, - 0x3a7455, - 0x259e93, - 0x3a7993, - 0x279587, - 0x294d91, - 0x2f9010, - 0x2a27d2, - 0x2a7411, - 0x2aae48, - 0x2aae50, - 0x372f4f, - 0x3a5e53, - 0x3abf92, - 0x2c2690, - 0x2bec4f, - 0x2c2bd2, - 0x2c4191, - 0x2d73d3, - 0x2dd112, - 0x2e3d4f, - 0x2e664e, - 0x2e7e92, - 0x2ec211, - 0x2ed70f, - 0x2f58ce, - 0x2f7251, - 0x2f8450, - 0x2ff012, - 0x307751, + 0x3a01d5, + 0x390155, + 0x25a9d3, + 0x390693, + 0x277487, + 0x287591, + 0x288f50, + 0x296b12, + 0x299e51, + 0x2ac948, + 0x3b9dd0, + 0x2ac94f, + 0x2b0153, + 0x37b092, + 0x39b750, + 0x2c2acf, + 0x2c6152, + 0x2c7851, + 0x2c8dd3, + 0x2ccf12, + 0x2d498f, + 0x2e314e, + 0x2e4692, + 0x2e9d11, + 0x2ea3cf, + 0x2ed08e, + 0x2ed891, + 0x2f2810, + 0x2f3b12, + 0x2f6c51, + 0x2fda90, + 0x3064cf, + 0x307691, 0x309ad0, - 0x30b50f, - 0x366211, - 0x355510, - 0x37f0c6, - 0x31e787, - 0x234ac7, - 0x201c02, - 0x28ce85, - 0x313507, - 0x22a042, - 0x203f82, - 0x3d0545, - 0x228183, - 0x35c606, - 0x301ccd, - 0x30200c, - 0x205002, - 0x363c8b, - 0x27fe4a, - 0x22cf8a, - 0x2ceb09, - 0x300a8b, - 0x3273cd, - 0x313c0c, - 0x2477ca, - 0x24ec8c, - 0x27aa4b, - 0x28124c, - 0x28418e, - 0x2a0b0b, - 0x2eafcc, - 0x2f3103, - 0x2ef706, - 0x3c9402, - 0x308542, - 0x2651c3, - 0x2017c2, - 0x23d203, - 0x351d46, - 0x26d087, - 0x2e2846, - 0x3aad48, - 0x352e08, - 0x306d06, - 0x208e42, - 0x31594d, - 0x315c8c, - 0x3d6b07, - 0x319b07, - 0x221e02, - 0x21f8c2, - 0x211842, - 0x289c82, - 0x3377d6, - 0x33c555, - 0x33f9d6, - 0x344113, - 0x3447d2, - 0x356dd3, - 0x357512, - 0x3b7ccf, - 0x3c6b58, - 0x3c8ed7, - 0x3c98d9, - 0x3cb218, - 0x3cbdd8, - 0x3cccd7, - 0x3ced97, - 0x3d1216, - 0x3d6013, - 0x3d6f55, - 0x3d77d2, - 0x3d7c53, - 0x30182, - 0x43a13a04, - 0x43fc4b88, - 0x3ec5, - 0x216542, - 0x2296c3, - 0x386c2, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x202b03, + 0x30c9c6, + 0x30d987, + 0x311047, + 0x205dc2, + 0x292805, + 0x3dec07, + 0x26ca02, + 0x202d82, + 0x3cbe45, + 0x20a503, + 0x2718c6, + 0x301bcd, + 0x301f0c, + 0x204c02, + 0x20b48b, + 0x28328a, + 0x286d8a, + 0x227549, + 0x2d3d0b, + 0x300ccd, + 0x35098c, + 0x312e0a, + 0x36ee0c, + 0x3d4f8b, + 0x25144c, + 0x2813ce, + 0x28818b, + 0x2a724c, + 0x2ecd03, + 0x352f06, + 0x363742, + 0x308602, + 0x25f183, + 0x208602, + 0x23fa43, + 0x2d6ec6, + 0x273487, + 0x2d9706, + 0x3aefc8, + 0x349c88, + 0x321a86, + 0x212182, + 0x31378d, + 0x313acc, + 0x221947, + 0x317507, + 0x228282, + 0x21f182, + 0x212ec2, + 0x28f8c2, + 0x337216, + 0x33c315, + 0x33f8d6, + 0x3435d3, + 0x343c92, + 0x356513, + 0x3573d2, + 0x3bb24f, + 0x3caad8, + 0x3ce957, + 0x3cfb99, + 0x3d3318, + 0x3d3dd8, + 0x3d4957, + 0x3d8357, + 0x3d91d6, + 0x3df613, + 0x3dff95, + 0x3e0952, + 0x3e0dd3, + 0x1e702, + 0x4420f0c4, + 0x447c8bc8, + 0x2cc5, + 0x205842, + 0x2127c3, + 0x47f42, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x217083, 0x2000c2, - 0x2070c2, - 0x44e9bcc5, - 0x4529b285, - 0x4567ad86, - 0x793c8, - 0x45ac3205, - 0x216542, - 0x2104c2, - 0x45f336c5, - 0x4628b685, - 0x4668c587, - 0x46a93f89, - 0x46e1eb44, + 0x202ac2, + 0x456a2d45, + 0x45a3d685, + 0x45f6f186, + 0x7ffc8, + 0x462c9445, + 0x205842, + 0x201902, + 0x46730c85, + 0x46a91485, + 0x46e91f07, + 0x47358c49, + 0x4761d684, 0x200382, 0x200642, - 0x4725a945, - 0x4769b3c9, - 0x47b36dc8, - 0x47ebb2c5, - 0x4834ff07, - 0x4861cf88, - 0x48b18f85, - 0x48e21486, - 0x4924b649, - 0x496f9ec8, - 0x49ad5408, - 0x49ea4e8a, - 0x4a387144, - 0x4a6b2605, - 0x4aad1108, - 0x4ae876c5, - 0x21ab82, - 0x4b2e3303, - 0x4b6aff46, - 0x4bba9148, - 0x4bf53fc6, - 0x4c273148, - 0x4c7da086, - 0x4ca4fb84, - 0x4ce04cc2, - 0x4d6e2c47, - 0x4dab7d44, - 0x4de85287, - 0x4e3e3047, + 0x47a5c245, + 0x47ea2689, + 0x4836cc48, + 0x486c19c5, + 0x48b51107, + 0x48e1b008, + 0x4930d585, + 0x49623f46, + 0x49a531c9, + 0x49f7fbc8, + 0x4a2db448, + 0x4a6aa18a, + 0x4aa39104, + 0x4ae9cdc5, + 0x4b2b4708, + 0x4b654b45, + 0x21c142, + 0x4ba089c3, + 0x4beb4ec6, + 0x4c328ec8, + 0x4c746546, + 0x4cb4ee48, + 0x4cfb6006, + 0x4d3854c4, + 0x4d6048c2, + 0x4dee9287, + 0x4e2bcd44, + 0x4e68d7c7, + 0x4ebe8dc7, 0x2003c2, - 0x4e6a8485, - 0x4ea7fa84, - 0x4efafd07, - 0x4f23cc07, - 0x4f690046, - 0x4fa8c145, - 0x4fea2f07, - 0x502cdf88, - 0x507e33c7, - 0x50abb909, - 0x50ee3405, - 0x5131f287, - 0x5169b0c6, - 0x2780b, - 0x51a2e2c8, - 0x230c4d, - 0x271d09, - 0x27f48b, - 0x29868b, - 0x2b744b, - 0x2d24cb, - 0x32430b, - 0x3245cb, - 0x324a89, - 0x325f8b, - 0x32624b, - 0x3283cb, - 0x328fca, - 0x32950a, - 0x329b0c, - 0x32fecb, - 0x33040a, - 0x34218a, - 0x34c2ce, - 0x34d44e, - 0x34d7ca, - 0x34f78a, - 0x35044b, - 0x35070b, - 0x35120b, - 0x36e7cb, - 0x36edca, - 0x36fa8b, - 0x36fd4a, - 0x36ffca, - 0x37024a, - 0x391a8b, - 0x39944b, - 0x39bc0e, - 0x39bf8b, - 0x3a7e4b, - 0x3a9ecb, - 0x3ada8a, - 0x3add09, - 0x3adf4a, - 0x3afa0a, - 0x3c654b, - 0x3d3d8b, - 0x3d4f4a, - 0x3d5a4b, - 0x3dbc4b, - 0x3e8b8b, - 0x51e8d908, - 0x522946c9, - 0x526ab689, - 0x52af0788, - 0x359645, - 0x20dec3, - 0x25cd84, - 0x2cbb05, - 0x21e886, - 0x221205, - 0x293a44, - 0x2bfc48, - 0x31fc85, - 0x29d144, - 0x20d007, - 0x2aa84a, - 0x24104a, - 0x372407, - 0x3a9307, - 0x2ec787, - 0x291247, - 0x313305, - 0x219686, - 0x372c47, - 0x35a804, - 0x2c9046, - 0x3dc846, - 0x203345, - 0x333144, - 0x2a80c6, - 0x2a9a07, - 0x22fa86, - 0x2b6407, - 0x23e343, - 0x39f546, - 0x3367c5, - 0x28c687, - 0x27588a, - 0x23e544, - 0x21ad88, - 0x2ba709, - 0x2c9607, - 0x3c6006, - 0x267608, - 0x37ae89, - 0x39f384, - 0x322584, - 0x30c2c5, - 0x21b448, - 0x2dbb47, - 0x30a449, - 0x3d8f48, - 0x31b5c6, - 0x361b46, - 0x2a5ac8, - 0x36d846, - 0x29b285, - 0x290106, - 0x285988, - 0x28e206, - 0x261acb, - 0x38a106, - 0x2a6f8d, - 0x20d485, - 0x2b7c06, - 0x21d045, - 0x3c8609, - 0x2e4747, - 0x3d2008, - 0x3c4f86, - 0x2a6209, - 0x2c48c6, - 0x275805, - 0x216b86, - 0x2d7cc6, - 0x2e02c9, - 0x2cc886, - 0x31d5c7, - 0x2dec05, - 0x20c043, - 0x261c45, - 0x2bc687, - 0x3640c6, - 0x20d389, - 0x27ad86, - 0x285486, - 0x226a89, - 0x28fb09, - 0x2aea87, - 0x201dc8, - 0x29f949, - 0x28cb08, - 0x3e5e06, - 0x2e8945, - 0x2834ca, - 0x285506, - 0x3cfc86, - 0x2e2b85, - 0x25ec08, - 0x358d07, - 0x239a8a, - 0x257686, - 0x303885, - 0x30aa86, - 0x2048c7, - 0x3c5ec7, - 0x2ac545, - 0x2759c5, - 0x23fdc6, - 0x36a446, - 0x269f46, - 0x2d15c4, - 0x28ebc9, - 0x2966c6, - 0x3097ca, - 0x232148, - 0x31ef88, - 0x24104a, - 0x2421c5, - 0x2a9945, - 0x3def48, - 0x2ce108, - 0x23ae87, - 0x288686, - 0x33a388, - 0x20b607, - 0x28d208, - 0x2ca506, - 0x290f08, - 0x2a1dc6, - 0x287287, - 0x29ea46, - 0x2a80c6, - 0x2313ca, - 0x3dbf46, - 0x2e8949, - 0x2abb86, - 0x212f8a, - 0x24fb89, - 0x3024c6, - 0x2cd844, - 0x3222cd, - 0x28b4c7, - 0x39fe06, - 0x2d52c5, - 0x2c4945, - 0x394246, - 0x2ae109, - 0x369787, - 0x286386, - 0x393386, - 0x293ac9, - 0x2e37c4, - 0x3025c4, - 0x30f188, - 0x2fbec6, - 0x2adc88, - 0x216b08, - 0x260507, - 0x30e2c9, - 0x347a47, - 0x2c30ca, - 0x30334f, - 0x2396ca, - 0x20ac05, - 0x285bc5, - 0x216945, - 0x3cd547, - 0x204483, - 0x201fc8, - 0x2f6086, - 0x2f6189, - 0x2f5f86, - 0x2e0c87, - 0x2a5fc9, - 0x3d1f08, - 0x3c87c7, - 0x322d43, - 0x3596c5, - 0x204405, - 0x2d140b, - 0x287784, - 0x300084, - 0x282c86, - 0x322f07, - 0x3947ca, - 0x3b0887, - 0x29bf07, - 0x28b685, - 0x3de685, - 0x2934c9, - 0x2a80c6, - 0x3b070d, - 0x354745, - 0x2c7183, - 0x20dac3, - 0x258b05, - 0x33ac85, - 0x267608, - 0x286cc7, - 0x245246, - 0x2ab306, - 0x235745, - 0x23c847, - 0x3e4107, - 0x25d0c7, - 0x2b268a, - 0x39f608, - 0x2d15c4, - 0x28df87, - 0x28a847, - 0x35df46, - 0x2a1447, - 0x2ea808, - 0x35d588, - 0x27a306, - 0x3a9548, - 0x2cc904, - 0x372c46, - 0x266286, - 0x246046, - 0x2025c6, - 0x214ac4, - 0x291306, - 0x2d3e46, - 0x2a5386, - 0x224006, - 0x20d986, - 0x2ea646, - 0x245148, - 0x2c6648, - 0x2e5688, - 0x221408, - 0x3deec6, - 0x20f1c5, - 0x27b9c6, - 0x2bb345, - 0x397087, - 0x246005, - 0x217943, - 0x26a545, - 0x23b844, - 0x20dac5, - 0x223a03, - 0x2c4707, - 0x3aa1c8, - 0x2b64c6, - 0x2d630d, - 0x285b86, - 0x2a4905, - 0x2221c3, - 0x2d0ac9, - 0x2e3946, - 0x2a34c6, - 0x29c484, - 0x239647, - 0x2f43c6, - 0x303ac5, - 0x244243, - 0x211184, - 0x28aa06, - 0x219784, - 0x3c11c8, - 0x2064c9, - 0x369d09, - 0x2ada8a, - 0x2495cd, - 0x23e8c7, - 0x206986, - 0x21e5c4, - 0x293f89, - 0x2924c8, - 0x294546, - 0x242b06, - 0x2a1447, - 0x2c3b06, - 0x223686, - 0x3d0c06, - 0x3e30ca, - 0x21cf88, - 0x234885, - 0x245749, - 0x270b0a, - 0x33b008, - 0x2a8cc8, - 0x2a3448, - 0x3e450c, - 0x3996c5, - 0x2ab588, - 0x2ca006, - 0x29dac6, - 0x2dab47, - 0x3b0785, - 0x290285, - 0x369bc9, - 0x210b07, - 0x2f6145, - 0x2286c7, - 0x20dac3, - 0x2dc505, - 0x229108, - 0x2cc507, - 0x2a8b89, - 0x2e1dc5, - 0x30a804, - 0x31dc08, - 0x2cb5c7, - 0x3c8988, - 0x22aa48, - 0x392005, - 0x353b46, - 0x2ab406, - 0x30c689, - 0x266387, - 0x2bbb86, - 0x2585c7, - 0x215103, - 0x21eb44, - 0x2e6fc5, - 0x23c984, - 0x2526c4, - 0x28db87, - 0x2743c7, - 0x286544, - 0x2a89d0, - 0x333847, - 0x3de685, - 0x25084c, - 0x22a804, - 0x2c1108, - 0x287189, - 0x2be9c6, - 0x32f908, - 0x27a484, - 0x282f88, - 0x23a086, - 0x231248, - 0x2a93c6, - 0x2d2d4b, - 0x331b85, - 0x2e6e48, - 0x21a484, - 0x28f78a, - 0x2a8b89, - 0x29e946, - 0x21b6c8, - 0x2657c5, - 0x2d00c4, - 0x2c1006, - 0x25cf88, - 0x28d908, - 0x3356c6, - 0x36c104, - 0x283446, - 0x347ac7, - 0x285187, - 0x2a144f, - 0x346f47, - 0x395747, - 0x368945, - 0x3410c5, - 0x2ae749, - 0x2f8c06, - 0x28c7c5, - 0x28fe07, - 0x2de9c8, - 0x219805, - 0x29ea46, - 0x231f88, - 0x353fca, - 0x32c888, - 0x2980c7, - 0x303786, - 0x245706, + 0x4eead945, + 0x4f2854c4, + 0x4f7839c7, + 0x4fa48087, + 0x4fe95706, + 0x50218085, + 0x506a8b87, + 0x50ae8c88, + 0x50eb8c07, + 0x512bebc9, + 0x516e9a45, + 0x51b0fc07, + 0x51ea2386, + 0x2c68b, + 0x5236fc88, + 0x2289cd, + 0x284949, + 0x2a290b, + 0x2b0e8b, + 0x2b94cb, + 0x37880b, + 0x32414b, + 0x32440b, + 0x3248c9, + 0x32574b, + 0x325a0b, + 0x32680b, + 0x32740a, + 0x32794a, + 0x327f4c, + 0x32c2cb, + 0x32c80a, + 0x34144a, + 0x34bf0e, + 0x34cf0e, + 0x34d28a, + 0x34f70a, + 0x35164b, + 0x35190b, + 0x35240b, + 0x3767cb, + 0x376dca, + 0x377a8b, + 0x377d4a, + 0x377fca, + 0x37824a, + 0x39b34b, + 0x3a228b, + 0x3a548e, + 0x3a580b, + 0x3acbcb, + 0x3add0b, + 0x3b1a8a, + 0x3b1d09, + 0x3b1f4a, + 0x3b3e8a, + 0x3ca4cb, + 0x3dd44b, + 0x3de4ca, + 0x3df04b, + 0x3e694b, + 0x3ef20b, + 0x52693288, + 0x52a99789, + 0x52eb0a49, + 0x532f7d08, + 0x358685, + 0x20c003, + 0x260a44, + 0x34f285, + 0x21d3c6, + 0x223cc5, + 0x299004, + 0x36db48, + 0x31e445, + 0x2a46c4, + 0x3d5f87, + 0x2afb4a, + 0x384c8a, + 0x37c087, + 0x329087, + 0x2f2d47, + 0x25c3c7, + 0x207505, + 0x224346, + 0x37bb87, + 0x3ce084, + 0x2ced86, + 0x3048c6, + 0x3cf605, + 0x3324c4, + 0x2ad586, + 0x2aed87, + 0x2301c6, + 0x318287, + 0x240903, + 0x3c6c46, + 0x220b05, + 0x292007, + 0x27ba0a, + 0x310484, + 0x21a988, + 0x2be509, + 0x3c0a07, + 0x3c9f86, + 0x26c248, + 0x3e9149, + 0x310504, + 0x282884, + 0x304b45, + 0x222c88, + 0x2e1b87, + 0x30bec9, + 0x2f0e88, + 0x319806, + 0x328986, + 0x2aadc8, + 0x375846, + 0x23d685, + 0x2957c6, + 0x28db88, + 0x293b86, + 0x26608b, + 0x29eb06, + 0x2ac4cd, + 0x3da785, + 0x2bcc06, + 0x21b0c5, + 0x304d09, + 0x2d86c7, + 0x219a88, + 0x3c0746, + 0x2ab709, + 0x2ca346, + 0x27b985, + 0x219186, + 0x2dd006, + 0x2e6089, + 0x2d1846, + 0x2c8a07, + 0x364e85, + 0x202a43, + 0x266205, + 0x39ea47, + 0x335ac6, + 0x3da689, + 0x36f186, + 0x295a06, + 0x24b3c9, + 0x2951c9, + 0x2b3587, + 0x3642c8, + 0x29df09, + 0x292488, + 0x3ed546, + 0x2eec45, + 0x3220ca, + 0x295a86, + 0x3cb586, + 0x2e91c5, + 0x25f988, + 0x35b587, + 0x2387ca, + 0x25c686, + 0x303605, + 0x30c706, + 0x2a3407, + 0x3c9e47, + 0x30eb45, + 0x27bb45, + 0x242786, + 0x246246, + 0x255046, + 0x2b4bc4, + 0x294549, + 0x29afc6, + 0x378bca, + 0x22de48, + 0x30f908, + 0x384c8a, + 0x23c3c5, + 0x2aecc5, + 0x3d2808, + 0x3206c8, + 0x248307, + 0x23c286, + 0x339dc8, + 0x3d7687, + 0x292b88, + 0x2d0286, + 0x296488, + 0x2a8046, + 0x359147, + 0x245906, + 0x2ad586, + 0x243aca, + 0x39f886, + 0x2eec49, + 0x3bd606, + 0x211a4a, + 0x3854c9, + 0x240c06, + 0x2d2544, + 0x35edcd, + 0x2912c7, + 0x3c7506, + 0x2db305, + 0x2ca3c5, + 0x39cd86, + 0x2cc849, + 0x2dddc7, + 0x28ea46, + 0x2c9b06, + 0x299089, + 0x23d5c4, + 0x240d04, + 0x20bec8, + 0x35dac6, + 0x3dde08, + 0x219108, + 0x264787, + 0x3bcd49, + 0x3d0487, + 0x2c930a, + 0x3030cf, + 0x39b0ca, + 0x3d0f45, + 0x28ddc5, + 0x218f45, + 0x23a347, + 0x28f6c3, + 0x3644c8, + 0x236606, + 0x236709, + 0x2fc746, + 0x2e6a47, + 0x2ab4c9, + 0x219988, + 0x304ec7, + 0x322683, + 0x358705, + 0x2a2f45, + 0x2b4a0b, + 0x254c04, + 0x37a8c4, + 0x28b806, + 0x322847, + 0x39d30a, + 0x259587, + 0x2297c7, + 0x291485, + 0x3d9745, + 0x29e409, + 0x2ad586, + 0x25940d, + 0x346cc5, + 0x2b4c83, + 0x21df03, + 0x2fcac5, + 0x33a6c5, + 0x26c248, + 0x28f207, + 0x24e486, + 0x2b06c6, + 0x2316c5, + 0x23e987, + 0x331047, + 0x260d87, + 0x29ce4a, + 0x3c6d08, + 0x2b4bc4, + 0x293907, + 0x290647, + 0x360686, + 0x2a76c7, + 0x2f50c8, + 0x278fc8, + 0x280b46, + 0x3292c8, + 0x22ec44, + 0x37bb86, + 0x2693c6, + 0x38d946, + 0x20a246, + 0x2add04, + 0x25c486, + 0x2d9886, + 0x2aa686, + 0x20e506, + 0x3dac86, + 0x239a46, + 0x24e388, + 0x2cbd48, + 0x2ebec8, + 0x223ec8, + 0x3d2786, + 0x204005, + 0x372b86, + 0x2c1a45, + 0x32d207, + 0x280d85, + 0x215243, + 0x310c85, + 0x396884, + 0x3dadc5, + 0x20df03, + 0x2ca187, + 0x3ae008, + 0x318346, + 0x2c004d, + 0x28dd86, + 0x2a9c05, + 0x201883, + 0x2d6749, + 0x23d746, + 0x2a9146, + 0x21b404, + 0x39b047, + 0x3cdf86, + 0x303845, + 0x239803, + 0x3ec004, + 0x290806, + 0x224444, + 0x3c3448, + 0x3d8b09, + 0x281009, + 0x2b1d0a, + 0x25258d, + 0x3e7507, + 0x3d7086, + 0x216384, + 0x358c49, + 0x297d48, + 0x299606, + 0x246dc6, + 0x2a76c7, + 0x37aa06, + 0x21de46, + 0x3bd006, + 0x3e8e4a, + 0x21b008, + 0x2bae85, + 0x3866c9, + 0x3ccd0a, + 0x397988, + 0x2ae188, + 0x2a90c8, + 0x3296cc, + 0x3a2505, + 0x2b0948, + 0x2cfd86, + 0x2a3a06, + 0x2e0947, + 0x259485, + 0x295945, + 0x280ec9, + 0x20db47, + 0x2366c5, + 0x228e87, + 0x21df03, + 0x2e2545, + 0x22e248, + 0x294e47, + 0x2ae049, + 0x2d4205, + 0x36e684, + 0x31cf48, + 0x2bc287, + 0x305088, + 0x22c1c8, + 0x39e745, + 0x276dc6, + 0x2b07c6, + 0x35c509, + 0x2694c7, + 0x2c2306, + 0x3684c7, + 0x205383, + 0x21d684, + 0x22ed45, + 0x23eac4, + 0x38d244, + 0x293507, + 0x27a4c7, + 0x28ec04, + 0x2ade90, + 0x3868c7, + 0x3d9745, + 0x385f4c, + 0x207504, + 0x2bf3c8, + 0x359049, + 0x2c5ec6, + 0x31c0c8, + 0x205c04, + 0x28bb08, + 0x298b06, + 0x243948, + 0x2af346, + 0x31ffcb, + 0x3745c5, + 0x22ebc8, + 0x2186c4, + 0x3d8f4a, + 0x2ae049, + 0x3d6746, + 0x222f08, + 0x26a045, + 0x2d5cc4, + 0x2bf2c6, + 0x260c48, + 0x293288, + 0x3344c6, + 0x331c84, + 0x322046, + 0x3d0507, + 0x28d6c7, + 0x2a76cf, + 0x346087, + 0x39e187, + 0x36ca85, + 0x209e85, + 0x2b3249, + 0x31f7c6, + 0x292145, + 0x2954c7, + 0x2e4288, + 0x2244c5, + 0x245906, + 0x22dc88, + 0x34654a, + 0x24a588, + 0x29c887, + 0x303506, + 0x386686, 0x2003c3, - 0x211c03, - 0x270cc9, - 0x29f7c9, - 0x2bb806, - 0x2e1dc5, - 0x3a97c8, - 0x21b6c8, - 0x2a7d08, - 0x3d0c8b, - 0x2d6547, - 0x31d409, - 0x2a16c8, - 0x329f44, - 0x3e3a48, - 0x299dc9, - 0x2bbe85, - 0x3cd447, - 0x21ebc5, - 0x28d808, - 0x29bb4b, - 0x2a2c50, - 0x2b7845, - 0x21a3cc, - 0x245405, - 0x28b703, - 0x2b49c6, - 0x2d3004, - 0x27fb86, - 0x2a9a07, - 0x221404, - 0x24cf48, - 0x201e8d, - 0x342545, - 0x23e904, - 0x2b60c4, - 0x395489, - 0x2afa88, - 0x332047, - 0x23a108, - 0x28ec88, - 0x286685, - 0x3cd987, - 0x286607, - 0x2f6447, - 0x2759c9, - 0x3c3009, - 0x375346, - 0x21bf06, + 0x219d43, + 0x3ccec9, + 0x29dd89, + 0x2beac6, + 0x2d4205, + 0x329548, + 0x222f08, + 0x2ad1c8, + 0x3bd08b, + 0x2c0287, + 0x31c609, + 0x2a7948, + 0x34eb84, + 0x3d6a48, + 0x2a07c9, + 0x2c2605, + 0x2b83c7, + 0x21d705, + 0x293188, + 0x2a2bcb, + 0x2a88d0, + 0x2bc845, + 0x21860c, + 0x24e645, + 0x288a83, + 0x2d4d46, + 0x2d8d84, + 0x299486, + 0x2aed87, + 0x223ec4, + 0x2ce548, + 0x36438d, + 0x341805, + 0x22ebc4, + 0x2ba544, + 0x39dec9, + 0x2ac208, + 0x32f6c7, + 0x298b88, + 0x294608, + 0x28ed45, + 0x3cd207, + 0x28ecc7, + 0x2369c7, + 0x27bb49, + 0x288849, + 0x221346, + 0x223746, + 0x295586, + 0x323a45, + 0x3c6a84, + 0x3d4386, + 0x3d88c6, + 0x28ed88, + 0x2a30cb, + 0x310347, + 0x216384, + 0x3cdec6, + 0x219447, + 0x239645, + 0x286745, + 0x269984, + 0x2887c6, + 0x3d4408, + 0x358c49, + 0x25f5c6, + 0x297b48, + 0x303906, + 0x364dc8, + 0x2dadcc, + 0x28ec06, + 0x2a98cd, + 0x2a9d4b, + 0x2c8ac5, + 0x331187, + 0x2d1946, + 0x3c9d08, + 0x2213c9, + 0x2c0588, + 0x3d9745, + 0x2a82c7, + 0x292588, + 0x371d89, + 0x38eb86, + 0x262d4a, + 0x3c9a88, + 0x2c03cb, + 0x2de38c, + 0x28bc08, 0x28fec6, - 0x31a6c5, - 0x3c7104, - 0x3cf306, - 0x3d9dc6, - 0x2866c8, - 0x20458b, - 0x2fba47, - 0x21e5c4, - 0x2f4306, - 0x2eab47, - 0x38c785, - 0x3a1b45, - 0x266844, - 0x3c2f86, - 0x3cf388, - 0x293f89, - 0x254986, - 0x2922c8, - 0x303b86, - 0x360fc8, - 0x3603cc, - 0x286546, - 0x2a45cd, - 0x2a4a4b, - 0x31d685, - 0x3e4247, - 0x2cc986, - 0x3c5d88, - 0x3753c9, - 0x21d3c8, - 0x3de685, - 0x2893c7, - 0x28cc08, - 0x3c3709, - 0x2f4046, - 0x26af8a, - 0x3c5b08, - 0x21d20b, - 0x2d668c, - 0x283088, - 0x28a286, - 0x22de48, - 0x353c47, - 0x224e49, - 0x29b2cd, - 0x2a7fc6, - 0x3dc948, - 0x2c6509, - 0x2d16c8, - 0x291008, - 0x2d4c8c, - 0x2d5947, - 0x2d7887, - 0x275805, - 0x2c9987, - 0x2de888, - 0x2c1086, - 0x25480c, - 0x306808, - 0x2e1708, - 0x3cf646, - 0x327e47, - 0x375544, - 0x221408, - 0x29594c, - 0x243f8c, - 0x20ac85, - 0x2033c7, - 0x36c086, - 0x327dc6, - 0x39d8c8, - 0x224dc4, - 0x22fa8b, - 0x292e8b, - 0x303786, - 0x201d07, - 0x208805, - 0x27d905, - 0x22fbc6, - 0x265785, - 0x287745, - 0x2e0107, - 0x223a09, - 0x36a604, - 0x247245, - 0x30b005, - 0x3477c8, - 0x3a89c5, - 0x2d7089, - 0x3982c7, - 0x3982cb, - 0x302206, - 0x244e89, - 0x333088, - 0x2931c5, - 0x2f6548, - 0x3c3048, - 0x283d07, - 0x2455c7, - 0x28dc09, - 0x231187, - 0x29a109, - 0x2b984c, - 0x2bb808, - 0x2bf649, - 0x2c0787, - 0x28ed49, - 0x38fbc7, - 0x2d6788, - 0x3c1585, - 0x372bc6, - 0x2d5308, - 0x2fa4c8, - 0x2709c9, - 0x287787, - 0x27e305, - 0x207789, - 0x31f546, - 0x29b0c4, - 0x37f506, - 0x3a8fc8, - 0x23bc07, - 0x204788, - 0x3a9609, - 0x353907, - 0x2a7e46, - 0x3e3d84, - 0x26a5c9, - 0x3cd808, - 0x3cf507, - 0x291846, - 0x2044c6, - 0x3cfc04, - 0x2f3b46, - 0x207843, - 0x331709, - 0x331b46, - 0x2b7e85, - 0x2ab306, - 0x224185, - 0x28d088, - 0x205387, - 0x3c2786, - 0x333706, - 0x31ef88, - 0x2ae8c7, - 0x2a8005, - 0x2a87c8, - 0x3d4188, - 0x3c5b08, - 0x2452c5, - 0x372c46, - 0x369ac9, - 0x30c504, - 0x22400b, - 0x22338b, - 0x234789, - 0x20dac3, - 0x263745, - 0x2b62c6, - 0x246508, - 0x2fb584, - 0x2b64c6, - 0x2b27c9, - 0x3201c5, - 0x2e0046, - 0x2cb5c6, - 0x21b6c4, - 0x2a8e4a, - 0x2b7dc8, - 0x2fa4c6, - 0x371545, - 0x201b87, - 0x33aec7, - 0x353b44, - 0x2235c7, - 0x245fc4, - 0x245fc6, - 0x202003, - 0x2759c5, - 0x2bdc85, - 0x347188, - 0x28e145, - 0x286289, - 0x221247, - 0x22124b, - 0x2afd4c, - 0x2b034a, - 0x34ff07, - 0x20ac43, - 0x284b88, - 0x302585, - 0x219885, - 0x359784, - 0x2d6686, - 0x287186, - 0x2f3b87, - 0x26030b, - 0x214ac4, - 0x368a84, - 0x2bf884, - 0x2dfe06, - 0x221404, - 0x21b548, - 0x359585, - 0x249c05, - 0x2a7c47, - 0x3e4349, - 0x33ac85, - 0x39424a, - 0x2deb09, - 0x2ae3ca, - 0x3e3209, - 0x31c284, - 0x393445, - 0x2c3c08, - 0x3afdcb, - 0x30c2c5, - 0x216c86, - 0x24a884, - 0x2867c6, - 0x353789, - 0x2eac47, - 0x27af48, - 0x249946, - 0x347a47, - 0x28d908, - 0x3780c6, - 0x3e3e04, - 0x3b2687, - 0x384f05, - 0x396107, - 0x221484, - 0x2cc906, - 0x3aea88, - 0x2a4c08, - 0x32a647, - 0x306e08, - 0x2a1e85, - 0x20d904, - 0x240f48, - 0x29ae44, - 0x2168c5, - 0x3ae984, - 0x20b707, - 0x296787, - 0x28ee88, - 0x322f46, - 0x28e0c5, - 0x286088, - 0x32ca88, - 0x2ad9c9, - 0x223686, - 0x239b08, - 0x28f60a, - 0x38c808, - 0x318f85, - 0x27bbc6, - 0x2adfc8, - 0x28948a, - 0x232b87, - 0x292905, - 0x29df48, - 0x272e04, - 0x25ec86, - 0x2d7f88, - 0x20d986, - 0x3d55c8, - 0x237bc7, - 0x20cf06, - 0x2cd844, - 0x326687, - 0x2c6a84, - 0x353747, - 0x3cf84d, - 0x234805, - 0x2cc30b, - 0x244206, - 0x25e4c8, - 0x24cf04, - 0x26a146, - 0x28aa06, - 0x22e187, - 0x2a428d, - 0x3089c7, - 0x2c70c8, - 0x294145, - 0x219948, - 0x2dbac6, - 0x2a1f08, - 0x3e0d46, - 0x36c9c7, - 0x2e2d89, - 0x338587, + 0x3725c8, + 0x3461c7, + 0x2a8589, + 0x2a258d, + 0x2ad486, + 0x3049c8, + 0x2cbc09, + 0x2d7488, + 0x296588, + 0x2da48c, + 0x2dc187, + 0x2dd187, + 0x27b985, + 0x2cf707, + 0x2e4148, + 0x2bf346, + 0x25f44c, + 0x306948, + 0x2e7608, + 0x220846, + 0x30aa07, + 0x221544, + 0x223ec8, + 0x321b8c, + 0x29aa0c, + 0x3d0fc5, + 0x3cf687, + 0x331c06, + 0x30a986, + 0x38be48, + 0x225804, + 0x2301cb, + 0x374dcb, + 0x303506, + 0x364207, + 0x374845, + 0x2827c5, + 0x230306, + 0x26a005, + 0x254bc5, + 0x2e5ec7, + 0x20df09, + 0x203a84, + 0x248c45, + 0x309505, + 0x217f48, + 0x35de45, + 0x2d4649, + 0x2c0cc7, + 0x2c0ccb, + 0x302106, + 0x24e0c9, + 0x332408, + 0x289985, + 0x236ac8, + 0x288888, + 0x3b5207, + 0x298907, + 0x293589, + 0x243887, + 0x29b5c9, + 0x2bdbcc, + 0x2beac8, + 0x2de1c9, + 0x3a1407, + 0x2946c9, + 0x3e1347, + 0x2de488, + 0x3e1545, + 0x37bb06, + 0x2db348, + 0x2ec7c8, + 0x3ccbc9, + 0x254c07, + 0x2b1f05, + 0x207c09, + 0x36a346, + 0x2a2384, + 0x30ce06, + 0x328d48, + 0x23da47, + 0x2a32c8, + 0x329389, + 0x323307, + 0x2ad306, + 0x331244, + 0x310d09, + 0x3cd088, + 0x220707, + 0x297346, + 0x2a3006, + 0x3cb504, + 0x2fb8c6, + 0x207cc3, + 0x374149, + 0x374586, + 0x2bce85, + 0x2b06c6, + 0x20e685, + 0x292a08, + 0x204f87, + 0x247806, + 0x330cc6, + 0x30f908, + 0x2b33c7, + 0x2ad4c5, + 0x2adc88, + 0x3dd848, + 0x3c9a88, + 0x24e505, + 0x37bb86, + 0x280dc9, + 0x35c384, + 0x20e50b, + 0x21db4b, + 0x2bad89, + 0x21df03, + 0x267ec5, + 0x338106, + 0x250248, + 0x3a7644, + 0x318346, + 0x29cf89, + 0x2c6c05, + 0x2e5e06, + 0x2bc286, + 0x222f04, + 0x2ae30a, + 0x2bcdc8, + 0x2ec7c6, + 0x379ac5, + 0x383187, + 0x33a907, + 0x276dc4, + 0x21dd87, + 0x2c9304, + 0x2f0f06, + 0x205bc3, + 0x27bb45, + 0x2c4ac5, + 0x3e1708, + 0x293ac5, + 0x28e949, + 0x223d07, + 0x223d0b, + 0x2b4ccc, + 0x2b52ca, + 0x351107, + 0x208c03, + 0x28d0c8, + 0x240cc5, + 0x224545, + 0x3587c4, + 0x2de386, + 0x359046, + 0x2fb907, + 0x26458b, + 0x2add04, + 0x36cbc4, + 0x2e1404, + 0x2e5bc6, + 0x223ec4, + 0x222d88, + 0x3585c5, + 0x252bc5, + 0x2ad107, + 0x331289, + 0x33a6c5, + 0x39cd8a, + 0x3de289, + 0x2a678a, + 0x3e8f89, + 0x312c84, + 0x2c9bc5, + 0x37ab08, + 0x383a8b, + 0x304b45, + 0x219286, + 0x24d204, + 0x28ee86, + 0x323189, + 0x219547, + 0x36f348, + 0x252906, + 0x3d0487, + 0x293288, + 0x380146, + 0x3d6e04, + 0x26ae87, + 0x390e85, + 0x39f0c7, + 0x205b04, + 0x2d18c6, + 0x33aa48, + 0x2a9f08, + 0x31a707, + 0x385088, + 0x2a8105, + 0x21dc84, + 0x384b88, + 0x320fc4, + 0x218ec5, + 0x38bc44, + 0x3d7787, + 0x29b087, 0x294808, - 0x269145, - 0x2357c8, - 0x327d05, - 0x2334c5, - 0x379205, - 0x20af03, - 0x202644, - 0x245745, - 0x24b649, - 0x372a06, - 0x2ea908, - 0x289685, - 0x2c9847, - 0x2a90ca, - 0x2dff89, - 0x2d7bca, - 0x2e5708, - 0x22850c, - 0x28fe8d, - 0x31e443, - 0x3d54c8, - 0x211145, - 0x353d86, - 0x3d1d86, - 0x321f85, - 0x2586c9, - 0x30db85, - 0x286088, - 0x2648c6, - 0x36ad46, - 0x2af1c9, - 0x266e47, - 0x29be06, - 0x2a9048, - 0x245f48, - 0x2f0987, - 0x2e050e, - 0x2dbd05, - 0x3c3605, - 0x20d888, - 0x3a21c7, - 0x204502, - 0x2d4944, - 0x27fa8a, - 0x3cf5c8, - 0x3c3186, - 0x2a6108, - 0x2ab406, - 0x340f48, - 0x2bbb88, - 0x233484, - 0x2c9c05, - 0x70e7c4, - 0x70e7c4, - 0x70e7c4, - 0x201f03, - 0x204346, - 0x286546, - 0x2aa3cc, - 0x20cf43, - 0x270b06, - 0x201fc4, - 0x2e38c8, - 0x2b2605, - 0x27fb86, - 0x2d1208, - 0x2e6386, - 0x3c2706, - 0x29e748, - 0x2e7047, - 0x230f49, - 0x2f04ca, - 0x274544, - 0x246005, - 0x30a405, - 0x2e3646, - 0x23e906, - 0x2aa146, - 0x382006, - 0x231084, - 0x23108b, - 0x239644, - 0x201c05, - 0x2bab85, - 0x2605c6, - 0x20ec48, - 0x28fd47, - 0x331ac4, - 0x211583, - 0x272905, - 0x37f3c7, - 0x28fc4b, - 0x347087, - 0x2d1108, - 0x2c9d47, - 0x276a06, - 0x271fc8, - 0x2cf3cb, - 0x2cba46, - 0x212949, - 0x2cf545, - 0x322d43, - 0x2e0046, - 0x237ac8, - 0x215ec3, - 0x29acc3, - 0x28d906, - 0x2ab406, - 0x37604a, - 0x28a2c5, - 0x28a84b, - 0x2ab24b, - 0x217e03, - 0x209b03, - 0x2c3044, - 0x2e4887, - 0x237b44, - 0x29b2c4, - 0x2c9e84, - 0x38cb08, - 0x371488, - 0x211b89, - 0x2e3488, - 0x3a0087, - 0x224006, - 0x2ea54f, - 0x2dbe46, - 0x2e4dc4, - 0x3712ca, - 0x37f2c7, - 0x2c6b86, - 0x29b109, - 0x211b05, - 0x3472c5, - 0x211c46, - 0x235903, - 0x272e49, - 0x21d106, - 0x3a93c9, - 0x3947c6, - 0x2759c5, - 0x20b085, - 0x202643, - 0x2e49c8, - 0x332207, - 0x2f6084, - 0x2e3748, - 0x29d844, - 0x31ff46, - 0x2b49c6, - 0x247dc6, - 0x2e6d09, - 0x219805, - 0x2a80c6, - 0x25c0c9, - 0x2db246, - 0x2ea646, - 0x3abbc6, - 0x209085, - 0x3ae986, - 0x36c9c4, - 0x3c1585, - 0x2d5304, - 0x2c8f46, - 0x354704, - 0x201c03, - 0x292585, - 0x23d308, - 0x35a407, - 0x2fb609, - 0x292808, - 0x2a5891, - 0x2cb64a, - 0x3036c7, - 0x237d06, - 0x201fc4, - 0x2d5408, - 0x293688, - 0x2a5a4a, - 0x2d6e4d, - 0x216b86, - 0x29e846, - 0x326746, - 0x2ac3c7, - 0x2c7185, - 0x30d607, - 0x201e85, - 0x398404, - 0x3c2d46, - 0x2884c7, - 0x272b4d, - 0x2adf07, - 0x2bfb48, - 0x286389, - 0x27bac6, - 0x2f3fc5, - 0x2e9284, - 0x3a90c6, - 0x353a46, - 0x3cf746, - 0x2a6988, - 0x22d503, - 0x21b783, - 0x32c105, - 0x322606, - 0x2bbb45, - 0x249b48, - 0x2a9bca, - 0x239084, - 0x2e38c8, - 0x2a3448, + 0x305206, + 0x293a45, + 0x28e748, + 0x24a788, + 0x2b1c49, + 0x21de46, + 0x238848, + 0x3d8dca, + 0x2396c8, + 0x30d585, + 0x372d86, + 0x3de148, + 0x2a838a, + 0x35bb07, + 0x298185, + 0x2a4d88, + 0x270504, + 0x25fa06, + 0x2dd808, + 0x3dac86, + 0x33b048, + 0x231cc7, + 0x3d5e86, + 0x2d2544, + 0x34c407, + 0x2cc184, + 0x323147, + 0x2eff4d, + 0x248385, + 0x2cc64b, + 0x29ac86, + 0x261808, + 0x2ce504, + 0x255246, + 0x290806, + 0x372907, + 0x2a958d, + 0x308a87, + 0x2cd508, + 0x3b4dc5, + 0x29e5c8, + 0x2e1b06, + 0x2a8188, + 0x23f1c6, + 0x385cc7, + 0x2e93c9, + 0x35b387, + 0x2998c8, + 0x26e5c5, + 0x231748, + 0x30a8c5, + 0x245845, + 0x370505, + 0x2191c3, + 0x20a2c4, + 0x239785, + 0x2531c9, + 0x37b946, + 0x2f51c8, + 0x249b85, + 0x2cf5c7, + 0x2d89ca, + 0x2e5d49, + 0x2dcf0a, + 0x2ebf48, + 0x228ccc, + 0x29554d, + 0x303b03, + 0x33af48, + 0x3ebfc5, + 0x346306, + 0x219806, + 0x35ea85, + 0x3685c9, + 0x208b85, + 0x28e748, + 0x268e86, + 0x370d06, + 0x2b3cc9, + 0x26ba87, + 0x2a2e86, + 0x2d8948, + 0x38d848, + 0x2f7f07, + 0x2e62ce, + 0x2e1d45, + 0x371c85, + 0x3dab88, + 0x3327c7, + 0x20df82, + 0x2da144, + 0x29938a, + 0x2207c8, + 0x2889c6, + 0x2ab608, + 0x2b07c6, + 0x209d08, + 0x2c2308, + 0x245804, + 0x2cf985, + 0x773104, + 0x773104, + 0x773104, + 0x203e03, + 0x2038c6, + 0x28ec06, + 0x2af74c, + 0x205c43, + 0x205b06, + 0x21b284, + 0x23d6c8, + 0x29cdc5, + 0x299486, + 0x2b4808, + 0x2ecdc6, + 0x247786, + 0x3d6548, + 0x22edc7, + 0x243649, + 0x33824a, + 0x27a644, + 0x280d85, + 0x30be85, + 0x358a46, + 0x3e7546, + 0x3316c6, + 0x36a0c6, + 0x243784, + 0x24378b, + 0x23da44, + 0x24e245, + 0x2c1285, + 0x264846, + 0x3e9788, + 0x295407, + 0x374504, + 0x26f0c3, + 0x270005, + 0x30ccc7, + 0x29530b, + 0x3e1607, + 0x2b4708, + 0x2cfac7, + 0x27e146, + 0x284c08, + 0x2a6d4b, + 0x34f1c6, + 0x2103c9, + 0x2a6ec5, + 0x322683, + 0x2e5e06, + 0x231bc8, + 0x214283, + 0x2d1a03, + 0x293286, + 0x2b07c6, + 0x37e60a, + 0x28ff05, + 0x29064b, + 0x2b060b, + 0x24da83, + 0x20a8c3, + 0x2c9284, + 0x2d8807, + 0x231c44, + 0x23d6c4, + 0x2cfc04, + 0x2399c8, + 0x379a08, + 0x219f49, + 0x2e9ac8, + 0x3c7787, + 0x20e506, + 0x2f4e0f, + 0x2e1e86, + 0x2eb284, + 0x37984a, + 0x30cbc7, + 0x2cc286, + 0x2a23c9, + 0x219ec5, + 0x246305, + 0x21a006, + 0x231883, + 0x270549, + 0x21b186, + 0x329149, + 0x39d306, + 0x27bb45, + 0x3d13c5, + 0x203383, + 0x3cc588, + 0x32f887, + 0x236604, + 0x23d548, + 0x2a3784, + 0x320ec6, + 0x2d4d46, + 0x249406, + 0x22ea89, + 0x2244c5, + 0x2ad586, + 0x262689, + 0x2e1006, + 0x239a46, + 0x3afcc6, + 0x22e9c5, + 0x38bc46, + 0x385cc4, + 0x3e1545, + 0x2db344, + 0x2cec86, + 0x346c84, + 0x219543, + 0x297e05, + 0x23fb48, + 0x255787, + 0x3a76c9, + 0x298088, + 0x2aab91, + 0x2bc30a, + 0x303447, + 0x279306, + 0x21b284, + 0x2db448, + 0x2f6088, + 0x2aad4a, + 0x2d440d, + 0x219186, + 0x3d6646, + 0x34c4c6, + 0x30e9c7, + 0x2cd5c5, + 0x3bcb07, + 0x23d605, + 0x2c0e04, + 0x347246, + 0x23c0c7, + 0x27024d, + 0x3de087, + 0x36da48, + 0x28ea49, + 0x372c86, + 0x38eb05, + 0x245404, + 0x328e46, + 0x3bcc46, + 0x220946, + 0x2abe88, + 0x233803, + 0x218183, + 0x384745, + 0x25c786, + 0x2c22c5, + 0x252b08, + 0x2aef4a, + 0x276ec4, + 0x23d6c8, + 0x2a90c8, + 0x39ec07, + 0x298789, + 0x2d6a88, + 0x2bec47, + 0x2d9a06, + 0x3dac8a, + 0x328ec8, + 0x31ce09, + 0x2ac2c8, + 0x21d009, + 0x2791c7, + 0x2cca05, + 0x3bd286, + 0x2bf1c8, + 0x28a308, + 0x2662c8, + 0x341948, + 0x24e245, + 0x20bcc4, + 0x23dd08, + 0x24cf84, + 0x3e8d84, + 0x27bb45, + 0x2a4707, + 0x331049, + 0x372707, + 0x238885, + 0x28ba06, + 0x3792c6, + 0x210504, + 0x2b3fc6, + 0x290a84, + 0x28b0c6, + 0x330e06, + 0x2140c6, + 0x3d9745, + 0x2529c7, + 0x208c03, + 0x270d09, + 0x30f708, + 0x23d544, + 0x358b4d, + 0x2aa008, + 0x3012c8, + 0x31cd86, + 0x2e94c9, + 0x2e5d49, + 0x322e85, + 0x2af04a, + 0x281a0a, + 0x28e44c, + 0x28e5c6, + 0x28ccc6, + 0x2e2486, + 0x3ac749, + 0x346546, + 0x2b3406, + 0x208c46, + 0x223ec8, + 0x24a586, + 0x2eaa4b, + 0x2a4885, + 0x252bc5, + 0x28d7c5, + 0x20bc46, + 0x219143, + 0x249386, + 0x3de007, + 0x2db305, + 0x28c085, + 0x2ca3c5, + 0x2f9a46, + 0x322f44, + 0x336946, + 0x2a0b09, + 0x20bacc, + 0x2c0b48, + 0x260bc4, + 0x37fac6, + 0x29ad86, + 0x231bc8, + 0x222f08, + 0x20b9c9, + 0x383187, + 0x35d809, + 0x283886, + 0x219104, + 0x20fd44, + 0x293884, + 0x293288, + 0x330e8a, + 0x33a646, + 0x36c947, + 0x39f347, + 0x24e1c5, + 0x2b6904, + 0x2a0786, + 0x2cd606, + 0x205083, + 0x30f547, + 0x22c0c8, + 0x322fca, + 0x3cf988, + 0x34ee48, + 0x346cc5, + 0x229005, + 0x310445, + 0x24e586, + 0x250fc6, + 0x3e1845, + 0x374389, + 0x2b670c, + 0x34a587, + 0x2aadc8, + 0x295dc5, + 0x773104, + 0x2bb4c4, + 0x294f84, + 0x24b586, + 0x2b150e, + 0x246387, + 0x301285, + 0x35c30c, + 0x2a3647, + 0x23c047, + 0x247a89, + 0x21aa49, + 0x298185, + 0x30f708, + 0x280dc9, + 0x3c9945, + 0x2db248, + 0x2e8e86, + 0x384e06, + 0x3854c4, + 0x31c7c8, + 0x252483, + 0x2034c4, + 0x270085, + 0x3a4807, + 0x3235c5, + 0x3d8c89, + 0x39138d, + 0x2b2246, + 0x3d5504, + 0x23c208, + 0x20dd4a, 0x3a9947, - 0x37b249, - 0x2d0e08, - 0x294007, - 0x2d3fc6, - 0x20d98a, - 0x3a9148, - 0x31dac9, - 0x2afb48, - 0x222849, - 0x35d787, - 0x208f45, - 0x2ab806, - 0x2c0f08, - 0x281fc8, - 0x261d08, - 0x342688, - 0x201c05, - 0x200d04, - 0x23bec8, - 0x24a604, - 0x3e3004, - 0x2759c5, - 0x29d187, - 0x3e4109, - 0x22df87, - 0x226b05, - 0x282e86, - 0x370d46, - 0x20ed44, - 0x2af4c6, - 0x28ac84, - 0x3d4886, - 0x3e3ec6, - 0x215d06, - 0x3de685, - 0x249a07, - 0x20ac43, - 0x22bf49, - 0x31ed88, - 0x293e84, - 0x293e8d, - 0x2a4d08, - 0x3082c8, - 0x31da46, - 0x2e2e89, - 0x2dff89, - 0x353485, - 0x2a9cca, - 0x27cb0a, - 0x291a4c, - 0x291bc6, - 0x284786, - 0x2dc446, - 0x3a6ac9, - 0x353fc6, - 0x2ae906, - 0x30dc46, - 0x221408, - 0x306e06, - 0x2e43cb, - 0x29d305, - 0x249c05, - 0x285285, - 0x30ef06, - 0x20d943, - 0x247d46, - 0x2ade87, - 0x2d52c5, - 0x2f4ec5, - 0x2c4945, - 0x2f9646, - 0x336cc4, - 0x336cc6, - 0x2a3d09, - 0x30ed8c, - 0x398148, - 0x25cf04, - 0x39d6c6, - 0x244306, - 0x237ac8, - 0x21b6c8, - 0x30ec89, - 0x201b87, - 0x2fbc09, - 0x27d9c6, - 0x216b04, - 0x210484, - 0x28df04, - 0x28d908, - 0x3e3f4a, - 0x33ac06, - 0x368807, - 0x396387, - 0x244f85, - 0x2b9304, - 0x299d86, - 0x2c71c6, - 0x205483, - 0x31ebc7, - 0x22a948, - 0x3535ca, - 0x202148, - 0x273148, - 0x354745, - 0x237105, - 0x2fbb45, - 0x245346, - 0x246e46, - 0x316a45, - 0x331949, - 0x2b910c, - 0x34ca47, - 0x2a5ac8, - 0x282185, - 0x70e7c4, - 0x236b04, - 0x2cc644, - 0x3d0ac6, - 0x2ad28e, - 0x347347, - 0x2ac5c5, - 0x30c48c, - 0x29d707, - 0x288447, - 0x2c8989, - 0x21ae49, - 0x292905, - 0x31ed88, - 0x369ac9, - 0x3c59c5, - 0x2d5208, - 0x2c1f86, - 0x2411c6, - 0x24fb84, - 0x2aa648, - 0x206743, - 0x203f44, - 0x272985, - 0x39b187, - 0x26a445, - 0x28f4c9, - 0x29b80d, - 0x2b2ec6, - 0x2115c4, - 0x288608, - 0x22384a, - 0x3e9847, - 0x2b0c45, - 0x203f83, - 0x2ab40e, - 0x2e4acc, - 0x33b107, - 0x2ad447, - 0x4d39a7c7, - 0x143386, - 0x27804, - 0x212fc3, - 0x354005, - 0x2cc645, - 0x2a64c8, - 0x2a3289, - 0x25ce06, - 0x237b44, - 0x303606, - 0x245d0b, - 0x2da2cc, - 0x257b47, - 0x2e4685, - 0x3d4088, - 0x2f0745, - 0x3712c7, - 0x2e2c47, - 0x2494c5, - 0x20d943, - 0x2abd84, - 0x288cc5, - 0x36a505, - 0x36a506, - 0x2a0088, - 0x2884c7, - 0x3d2086, - 0x3cfb06, - 0x379146, - 0x3dcac9, - 0x3cda87, - 0x25cc86, - 0x2da446, - 0x387046, - 0x2b7d05, - 0x218586, - 0x3b5545, - 0x3a8a48, - 0x29cdcb, - 0x2998c6, - 0x3963c4, - 0x222e09, - 0x221244, - 0x2c1f08, - 0x311007, - 0x290f04, - 0x2d02c8, - 0x2d6984, - 0x2b7d44, - 0x293dc5, - 0x342586, - 0x38ca47, - 0x235f03, - 0x2a7f05, - 0x34bb44, - 0x3c3646, - 0x353508, - 0x32c785, - 0x29ca89, - 0x207985, - 0x3ca8c8, - 0x326c47, - 0x331c48, - 0x2cff07, - 0x395809, - 0x291186, - 0x397c06, - 0x29fa84, - 0x223f45, - 0x3151cc, - 0x285287, - 0x285a87, - 0x23e548, - 0x2b2ec6, - 0x2addc4, - 0x37ddc4, - 0x28da89, - 0x2dc546, - 0x293547, - 0x27b884, - 0x2af5c6, - 0x3de9c5, - 0x2e2ac7, - 0x2e4346, - 0x26ae49, - 0x2d2747, - 0x2a1447, - 0x2af046, - 0x291785, - 0x28c108, - 0x21cf88, - 0x36db46, - 0x32c7c5, - 0x2d8fc6, - 0x20d083, - 0x2a6349, - 0x2a9ece, - 0x2cfc48, - 0x29d948, - 0x36d94b, - 0x29ccc6, - 0x396284, - 0x28fa84, - 0x2a9fca, - 0x21a2c7, - 0x25cd45, - 0x212949, - 0x2d3f05, - 0x3e3047, - 0x29e6c4, - 0x206647, - 0x216a08, - 0x2c96c6, - 0x2cca89, - 0x2d0f0a, - 0x21a246, - 0x2a4846, - 0x2bab05, - 0x39c545, - 0x3b0e47, - 0x24f388, - 0x3de908, - 0x233486, - 0x20b105, - 0x23e68e, - 0x2d15c4, - 0x2a6445, - 0x282809, - 0x2f8a08, - 0x298006, - 0x2a82cc, - 0x2a97d0, - 0x2acecf, - 0x2ae648, - 0x34ff07, - 0x3de685, - 0x245745, - 0x38c8c9, - 0x29e149, - 0x283546, - 0x30c347, - 0x39d7c5, - 0x23ae89, - 0x35dfc6, - 0x353e0d, - 0x28ddc9, - 0x29b2c4, - 0x2cf6c8, - 0x23bf89, - 0x33adc6, - 0x284d85, - 0x397c06, - 0x27ae09, - 0x27b708, - 0x20f1c5, - 0x28f704, - 0x2a848b, - 0x33ac85, - 0x246586, - 0x2901c6, - 0x259446, - 0x3d0e8b, - 0x29cb89, - 0x225005, - 0x396f87, - 0x2cb5c6, - 0x25e646, - 0x28f388, - 0x2d40c9, - 0x2bf90c, - 0x37f1c8, - 0x31d186, - 0x3356c3, - 0x38adc6, - 0x302505, - 0x28b388, - 0x20ab06, - 0x3c8888, - 0x3b0905, - 0x267305, - 0x326d88, - 0x3b6ec7, - 0x3d1cc7, - 0x2f3b87, - 0x32f908, - 0x350048, - 0x2f1086, - 0x2c8d87, - 0x21ea07, - 0x39558a, - 0x210843, - 0x30ef06, - 0x23e605, - 0x27fa84, - 0x286389, - 0x395784, - 0x2c96c4, - 0x2a9444, - 0x2ad44b, - 0x332147, - 0x23e8c5, - 0x2a1b88, - 0x282e86, - 0x282e88, - 0x28a206, - 0x298945, - 0x298b85, - 0x29a546, - 0x30e148, - 0x29b048, - 0x286546, - 0x2a19cf, - 0x2a5e10, - 0x20d485, - 0x20ac43, - 0x237405, - 0x31d348, - 0x29e049, - 0x3c5b08, - 0x30c148, - 0x25ae48, - 0x332207, - 0x282b49, - 0x3c8a88, - 0x2b3944, - 0x2a92c8, - 0x347889, - 0x2c9307, - 0x2bc7c4, - 0x22e048, - 0x2497ca, - 0x2ee946, - 0x216b86, - 0x223549, - 0x2a9a07, - 0x2e0b08, - 0x244808, - 0x3d01c8, - 0x2796c5, - 0x386605, - 0x249c05, - 0x2cc605, - 0x2c6347, - 0x20d945, - 0x2d52c5, - 0x386b86, - 0x3c5a47, - 0x3afd07, - 0x249ac6, - 0x2e5c45, - 0x246586, - 0x205405, - 0x2c1d88, - 0x2f9e44, - 0x2db2c6, - 0x351e44, - 0x2d00c8, - 0x2db3ca, - 0x286ccc, - 0x2aaa05, - 0x2ac486, - 0x2bfac6, - 0x3b6806, - 0x31d204, - 0x3df285, - 0x289ac7, - 0x2a9a89, - 0x2e03c7, - 0x70e7c4, - 0x70e7c4, - 0x331fc5, - 0x312a84, - 0x2a7a8a, - 0x282d06, - 0x3698c4, - 0x203345, - 0x2c5405, - 0x2c70c4, - 0x28fe07, - 0x207907, - 0x2dfe08, - 0x2d90c8, - 0x20f1c9, - 0x29ae48, - 0x29494b, - 0x239704, - 0x29eb45, - 0x28c845, - 0x2f3b09, - 0x2d40c9, - 0x222d08, - 0x3d8dc8, - 0x2605c4, - 0x244345, - 0x20dec3, - 0x2e3605, - 0x2a8146, - 0x2a30cc, - 0x21d006, - 0x284c86, - 0x298285, - 0x2f96c8, - 0x2dac86, - 0x237e86, - 0x216b86, - 0x22b48c, - 0x27d4c4, - 0x37928a, - 0x2981c8, - 0x2a2f07, - 0x34ba46, - 0x25cec7, - 0x303205, - 0x291846, - 0x35ecc6, - 0x3728c7, - 0x2d0c04, - 0x20b805, - 0x282804, - 0x398487, - 0x282a48, - 0x28460a, - 0x28ca87, - 0x2b7907, - 0x34fe87, - 0x2f0889, - 0x2a30ca, - 0x208fc3, - 0x35a3c5, - 0x215d43, - 0x2c9ec9, - 0x36cc48, - 0x368947, - 0x3c5c09, - 0x21d086, - 0x3c1648, - 0x2c4685, - 0x32cb8a, - 0x20df09, - 0x27a1c9, - 0x2dab47, - 0x293789, - 0x215c08, - 0x3e3c46, - 0x2ac648, - 0x2f5207, - 0x231187, - 0x2deb07, - 0x2cdf88, - 0x39ab06, - 0x249585, - 0x289ac7, - 0x2a4348, - 0x3790c4, - 0x309684, - 0x29bd07, - 0x2bbf07, - 0x36994a, - 0x3e3bc6, - 0x3ce54a, - 0x2d4887, - 0x2d1387, - 0x20b8c4, - 0x29a1c4, - 0x2e29c6, - 0x2f4644, - 0x2f464c, - 0x310f45, - 0x216849, - 0x3caa44, - 0x2c7185, - 0x2237c8, - 0x27a545, - 0x394246, - 0x29e284, - 0x2a6d0a, - 0x2dddc6, - 0x3501ca, - 0x3e33c7, - 0x2048c5, - 0x235905, - 0x244fca, - 0x281f05, - 0x2ada86, - 0x24a604, - 0x2c31c6, - 0x3b0f05, - 0x20abc6, - 0x32a64c, - 0x22b70a, - 0x27cc04, - 0x224006, - 0x2a9a07, - 0x2e42c4, - 0x221408, - 0x2ed306, - 0x396209, - 0x3dd0c9, - 0x2bb909, - 0x2241c6, - 0x2f5306, - 0x2ac787, - 0x331888, - 0x2f5109, - 0x332147, - 0x2a1d06, - 0x347ac7, - 0x326605, - 0x2d15c4, - 0x2ac347, - 0x21ebc5, - 0x293d05, - 0x200cc7, - 0x249388, - 0x3d4006, - 0x2a51cd, - 0x2a66cf, - 0x2ab24d, - 0x223444, - 0x23d406, - 0x2e7b48, - 0x30dc05, - 0x245488, - 0x283bca, - 0x29b2c4, - 0x2c67c6, - 0x215307, - 0x214ac7, - 0x2e7109, - 0x2ac605, - 0x2c70c4, - 0x2c9b4a, - 0x2d09c9, - 0x293887, - 0x2a5486, - 0x33adc6, - 0x244286, - 0x3b2746, - 0x2e69cf, - 0x2e7a09, - 0x306e06, - 0x267246, - 0x20c049, - 0x2c8e87, - 0x201543, - 0x209046, - 0x211c03, - 0x321e48, - 0x26a007, - 0x2ae849, - 0x2b4848, - 0x3d1e08, - 0x2878c6, - 0x225a89, - 0x34c985, - 0x2a7d04, - 0x209007, - 0x3a6b45, - 0x223444, - 0x23e988, - 0x21a584, - 0x2c8bc7, - 0x3aa146, - 0x23fe85, - 0x2afb48, - 0x33ac8b, - 0x31f287, - 0x245246, - 0x2dbec4, - 0x3da006, - 0x2759c5, - 0x21ebc5, - 0x28be89, - 0x28fa09, - 0x2311c4, - 0x231205, - 0x224045, - 0x32ca06, - 0x31ee88, - 0x2d3506, - 0x22a78b, - 0x2be84a, - 0x2d0005, - 0x298c06, - 0x238d85, - 0x386ac5, - 0x2a35c7, - 0x30f188, - 0x29aec4, - 0x34ae06, - 0x29b0c6, - 0x215dc7, - 0x322d04, - 0x28aa06, - 0x3cd645, - 0x3cd649, - 0x2f5504, - 0x30a549, - 0x286546, - 0x2d5a08, - 0x224045, - 0x396485, - 0x20abc6, - 0x2bf809, - 0x21ae49, - 0x284d06, - 0x2f8b08, - 0x29b948, - 0x238d44, - 0x2ca304, - 0x2ca308, - 0x39ff08, - 0x2fbd09, - 0x2a80c6, - 0x216b86, - 0x33a24d, - 0x2b64c6, - 0x360289, - 0x30e485, - 0x211c46, - 0x22e2c8, - 0x336c05, - 0x21ea44, - 0x2759c5, - 0x28f088, - 0x2a7849, - 0x2828c4, - 0x2cc906, - 0x27a40a, - 0x33b008, - 0x369ac9, - 0x27600a, - 0x3c5b86, - 0x2a6888, - 0x371085, - 0x298448, - 0x303285, - 0x21cf49, - 0x33ca09, - 0x234702, - 0x2cf545, - 0x28c906, - 0x286487, - 0x2b0dc5, - 0x34b946, - 0x319908, - 0x2b2ec6, - 0x2c3ac9, - 0x285b86, - 0x28f208, - 0x2b8cc5, - 0x24e406, - 0x36cac8, - 0x28d908, - 0x35d688, - 0x31b648, - 0x218584, - 0x20c8c3, - 0x2c3d04, - 0x28cc86, - 0x326644, - 0x29d887, - 0x237d89, - 0x2db645, - 0x244806, - 0x209046, - 0x29fecb, - 0x2c6ac6, - 0x20c886, - 0x2de708, - 0x361b46, - 0x2046c3, - 0x212403, - 0x2d15c4, - 0x239a05, - 0x3039c7, - 0x282a48, - 0x282a4f, - 0x2899cb, - 0x31ec88, - 0x2cc986, - 0x31ef8e, - 0x20abc3, - 0x303944, - 0x2c6a45, - 0x2c6f46, - 0x299e8b, - 0x29d246, - 0x232009, - 0x23fe85, - 0x251748, - 0x20e288, - 0x21ad0c, - 0x2ad486, - 0x2e3646, - 0x2e1dc5, - 0x2945c8, - 0x286cc5, - 0x329f48, - 0x2a864a, - 0x2ab689, - 0x70e7c4, + 0x34a405, + 0x203503, + 0x2b07ce, + 0x3cc68c, + 0x397a87, + 0x2b16c7, + 0x4dba3607, + 0x2b4c6, + 0x2c684, + 0x205b43, + 0x346585, + 0x294f85, + 0x2ab9c8, + 0x2a8f09, + 0x260ac6, + 0x231c44, + 0x303386, + 0x38d60b, + 0x2e00cc, + 0x267c47, + 0x2ead05, + 0x3dd748, + 0x2f7cc5, + 0x379847, + 0x2e9287, + 0x252485, + 0x219143, + 0x245ac4, + 0x328c05, + 0x203985, + 0x203986, + 0x2a0588, + 0x23c0c7, + 0x219b06, + 0x3cb406, + 0x370446, + 0x2d1a49, + 0x3cd307, + 0x260946, + 0x2e0246, + 0x239006, + 0x2bcd05, + 0x20d646, + 0x3b5c05, + 0x35dec8, + 0x2a434b, + 0x2a0106, + 0x39f384, + 0x23a1c9, + 0x223d04, + 0x2e8e08, + 0x311707, + 0x296484, + 0x2d5ec8, + 0x2dca44, + 0x2bcd44, + 0x23d485, + 0x341846, + 0x239907, + 0x22eb83, + 0x2ad3c5, + 0x33ecc4, + 0x371cc6, + 0x322f08, + 0x384f85, + 0x2a4009, + 0x207e05, + 0x205b08, + 0x35c1c7, + 0x374688, + 0x2d5b07, + 0x39e249, + 0x25c306, + 0x3a0fc6, + 0x208c44, + 0x20e445, + 0x3dce8c, + 0x28d7c7, + 0x28dc87, + 0x3e7188, + 0x2b2246, + 0x3ddf44, + 0x31da44, + 0x293409, + 0x2e2586, + 0x29e487, + 0x372a44, + 0x2b40c6, + 0x3d22c5, + 0x2e9107, + 0x2ea9c6, + 0x262c09, + 0x31f9c7, + 0x2a76c7, + 0x2b3b46, + 0x297285, + 0x291a88, + 0x21b008, + 0x375b46, + 0x384fc5, + 0x2dedc6, + 0x203e43, + 0x2ab849, + 0x33144e, + 0x2d5848, + 0x2a3888, + 0x37594b, + 0x2a4246, + 0x39f244, + 0x247784, + 0x33154a, + 0x218507, + 0x260a05, + 0x2103c9, + 0x2d9945, + 0x3e8dc7, + 0x245b84, + 0x2900c7, + 0x219008, + 0x3c0ac6, + 0x2d6fc9, + 0x2d6b8a, + 0x218486, + 0x2a9b46, + 0x2c1205, + 0x3a5dc5, + 0x3a9647, + 0x251a88, + 0x3d2208, + 0x245806, + 0x3d1445, + 0x3e72ce, + 0x2b4bc4, + 0x2ab945, + 0x28b389, + 0x31f5c8, + 0x29c7c6, + 0x2ad78c, + 0x2aeb50, + 0x2b114f, + 0x2b3148, + 0x351107, + 0x3d9745, + 0x239785, + 0x239789, + 0x2a4f89, + 0x322146, + 0x304bc7, + 0x38bd45, + 0x248309, + 0x360706, + 0x34638d, + 0x293749, + 0x23d6c4, + 0x2d5048, + 0x23ddc9, + 0x33a806, + 0x28d2c5, + 0x3a0fc6, + 0x36f209, + 0x36fb08, + 0x204005, + 0x2a0504, + 0x2ad94b, + 0x33a6c5, + 0x2502c6, + 0x295886, + 0x25d146, + 0x24e80b, + 0x2a4109, + 0x3e1485, + 0x32d107, + 0x2bc286, + 0x261986, + 0x294d08, + 0x2d9b09, + 0x36d80c, + 0x30cac8, + 0x31bb06, + 0x3344c3, + 0x235f06, + 0x240c45, + 0x291188, + 0x3d0e46, + 0x304f88, + 0x259605, + 0x26bf45, + 0x2ddf88, + 0x383487, + 0x219747, + 0x2fb907, + 0x31c0c8, + 0x351248, + 0x2f5f86, + 0x2ceac7, + 0x21d547, + 0x39dfca, + 0x205cc3, + 0x20bc46, + 0x260d05, + 0x2854c4, + 0x28ea49, + 0x39e1c4, + 0x200e84, + 0x2af3c4, + 0x2b16cb, + 0x32f7c7, + 0x2f9a05, + 0x2a7e08, + 0x28ba06, + 0x28ba08, + 0x28fe46, + 0x29d2c5, + 0x29d805, + 0x2a1486, + 0x276c48, + 0x2a2308, + 0x28ec06, + 0x2a7c4f, + 0x2ab310, + 0x3da785, + 0x208c03, + 0x286385, + 0x31c548, + 0x2a4e89, + 0x3c9a88, + 0x21b288, + 0x263f08, + 0x32f887, + 0x28b6c9, + 0x305188, + 0x3c8fc4, + 0x2af248, + 0x218009, + 0x2cf047, + 0x39eb84, + 0x3727c8, + 0x25278a, + 0x32f346, + 0x219186, + 0x21dd09, + 0x2aed87, + 0x2e68c8, + 0x245c08, + 0x3cbac8, + 0x2775c5, + 0x348d85, + 0x252bc5, + 0x294f45, + 0x2cba47, + 0x21dcc5, + 0x2db305, + 0x21da06, + 0x3c99c7, + 0x3839c7, + 0x252a86, + 0x2ec485, + 0x2502c6, + 0x205005, + 0x36d588, + 0x320644, + 0x2e1086, + 0x398084, + 0x2d5cc8, + 0x2e118a, + 0x28f20c, + 0x2afd05, + 0x30ea86, + 0x36d9c6, + 0x3b6b46, + 0x31bb84, + 0x3d2b45, + 0x28f707, + 0x2aee09, + 0x2e6187, + 0x773104, + 0x773104, + 0x32f645, + 0x30e584, + 0x2acf4a, + 0x28b886, + 0x2ddf04, + 0x3cf605, + 0x2cae05, + 0x2cd504, + 0x2954c7, + 0x207d87, + 0x2e5bc8, + 0x2deec8, + 0x204009, + 0x320fc8, + 0x299a0b, + 0x2398c4, + 0x34a4c5, + 0x2921c5, + 0x2fb889, + 0x2d9b09, + 0x23a0c8, + 0x2f0d08, + 0x264844, + 0x29adc5, + 0x20c003, + 0x358a05, + 0x2ad606, + 0x2a8d4c, + 0x21b086, + 0x28d1c6, + 0x29ca45, + 0x2f9ac8, + 0x2e0a86, + 0x279486, + 0x219186, + 0x22e80c, + 0x282384, + 0x37058a, + 0x29c988, + 0x2a8b87, + 0x33ebc6, + 0x260b87, + 0x302f85, + 0x297346, + 0x361386, + 0x37b807, + 0x255844, + 0x3d7885, + 0x28b384, + 0x2c0e87, + 0x28b5c8, + 0x28cb4a, + 0x292407, + 0x2bc907, + 0x351087, + 0x2f7e09, + 0x2a8d4a, + 0x232443, + 0x255745, + 0x214103, + 0x2cfc49, + 0x231e08, + 0x36ca87, + 0x3c9b89, + 0x21b106, + 0x2050c8, + 0x2ca105, + 0x24a88a, + 0x3a8289, + 0x280a09, + 0x2e0947, + 0x2f6189, + 0x213fc8, + 0x3d6c46, + 0x30ec48, + 0x28c3c7, + 0x243887, + 0x3de287, + 0x2e8c88, + 0x37f046, + 0x252545, + 0x28f707, + 0x2a9648, + 0x3703c4, + 0x378a84, + 0x2a2d87, + 0x2c2687, + 0x280c4a, + 0x3d6bc6, + 0x3d2e4a, + 0x2da087, + 0x2b4987, + 0x3d7944, + 0x29b684, + 0x2e9006, + 0x3cd884, + 0x3cd88c, + 0x311645, + 0x218e49, + 0x205c84, + 0x2cd5c5, + 0x20dcc8, + 0x2a23c5, + 0x39cd86, + 0x2a50c4, + 0x2a5fca, + 0x2c1f06, + 0x3513ca, + 0x2b8c07, + 0x2a3405, + 0x231885, + 0x24e20a, + 0x28a245, + 0x239746, + 0x24cf84, + 0x2c9406, + 0x3a9705, + 0x3d0f06, + 0x31a70c, + 0x36464a, + 0x281b04, + 0x20e506, + 0x2aed87, + 0x2ea944, + 0x223ec8, + 0x3ab986, + 0x39f1c9, + 0x37d709, + 0x2bebc9, + 0x20e6c6, + 0x28c4c6, + 0x30ed87, + 0x3742c8, + 0x28c2c9, + 0x32f7c7, + 0x2a7f86, + 0x3d0507, + 0x34c385, + 0x2b4bc4, + 0x30e947, + 0x21d705, + 0x2992c5, + 0x393747, + 0x252348, + 0x3dd6c6, + 0x2aa4cd, + 0x2abbcf, + 0x2b060d, + 0x21dc04, + 0x23fc46, + 0x2ed548, + 0x208c05, + 0x24e6c8, + 0x3b50ca, + 0x23d6c4, + 0x2cbec6, + 0x2b6187, + 0x2cde87, + 0x22ee89, + 0x30ec05, + 0x2cd504, + 0x2cf8ca, + 0x2d6649, + 0x2f6287, + 0x2aa786, + 0x33a806, + 0x29ad06, + 0x26af46, + 0x35a38f, + 0x2ed409, + 0x24a586, + 0x26be86, + 0x237789, + 0x2cebc7, + 0x20ae43, + 0x22e986, + 0x219d43, + 0x35e948, + 0x255107, + 0x2b3349, + 0x2b4588, + 0x219888, + 0x254d46, + 0x22af49, + 0x35d745, + 0x235e44, + 0x2ccac7, + 0x3ac7c5, + 0x21dc04, + 0x3e75c8, + 0x2187c4, + 0x2ce907, + 0x3adf86, + 0x242845, + 0x2ac2c8, + 0x33a6cb, + 0x30fc07, + 0x24e486, + 0x2e1f04, + 0x3b5f86, + 0x27bb45, + 0x21d705, + 0x291809, + 0x2950c9, + 0x2438c4, + 0x243905, + 0x20e545, + 0x24a706, + 0x30f808, + 0x2d9286, + 0x22bf0b, + 0x2c5d4a, + 0x2d5c05, + 0x29d886, + 0x236305, + 0x3c5b45, + 0x2a9247, + 0x20bec8, + 0x276cc4, + 0x25be46, + 0x2a2386, + 0x214187, + 0x322644, + 0x290806, + 0x23a445, + 0x23a449, + 0x28c6c4, + 0x30bfc9, + 0x28ec06, + 0x2dc248, + 0x20e545, + 0x39f445, + 0x3d0f06, + 0x36d709, + 0x21aa49, + 0x28d246, + 0x31f6c8, + 0x35c408, + 0x2362c4, + 0x2d0084, + 0x2d0088, + 0x3c7608, + 0x35d909, + 0x2ad586, + 0x219186, + 0x339c8d, + 0x318346, + 0x2dac89, + 0x3bcf05, + 0x21a006, + 0x36fc88, + 0x336885, + 0x21d584, + 0x27bb45, + 0x294a08, + 0x2acd09, + 0x28b444, + 0x2d18c6, + 0x2eadca, + 0x397988, + 0x280dc9, + 0x28d90a, + 0x3c9b06, + 0x2abd88, + 0x379605, + 0x3b4c48, + 0x303005, + 0x21afc9, + 0x33c7c9, + 0x23bc42, + 0x2a6ec5, + 0x292286, + 0x28eb47, + 0x2854c5, + 0x33eac6, + 0x317308, + 0x2b2246, + 0x37a9c9, + 0x28dd86, + 0x294b88, + 0x2be0c5, + 0x24c706, + 0x385dc8, + 0x293288, + 0x2790c8, + 0x319888, + 0x20d644, + 0x223803, + 0x37ac04, + 0x292606, + 0x34c3c4, + 0x2a37c7, + 0x279389, + 0x2e1405, + 0x245c06, + 0x22e986, + 0x2a03cb, + 0x2cc1c6, + 0x237fc6, + 0x2e3fc8, + 0x328986, + 0x2a3203, + 0x207083, + 0x2b4bc4, + 0x238745, + 0x303747, + 0x28b5c8, + 0x28b5cf, + 0x28f60b, + 0x30f608, + 0x2d1946, + 0x30f90e, + 0x24e643, + 0x3036c4, + 0x2cc145, + 0x2cd386, + 0x2a088b, + 0x2a47c6, + 0x22dd09, + 0x242845, + 0x248a08, + 0x203cc8, + 0x21a90c, + 0x2b1706, + 0x358a46, + 0x2d4205, + 0x299688, + 0x28f205, + 0x34eb88, + 0x2adb0a, + 0x2b0a49, + 0x773104, 0x2000c2, - 0x53216542, + 0x53a05842, 0x200382, - 0x2b1b84, - 0x201582, - 0x28d4c4, - 0x204cc2, - 0xd903, + 0x258104, + 0x2026c2, + 0x292e44, + 0x2048c2, + 0xbc03, 0x2003c2, - 0x202b02, - 0x793c8, - 0xe804, - 0x216543, - 0x222bc3, - 0x343b43, - 0x87c2, - 0x54202, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x2a042, - 0x6502, - 0x4a42, - 0x253c43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x2296c3, - 0x20cb83, - 0x20f7c3, - 0x25dd04, - 0x216543, - 0x23ec84, - 0x222bc3, - 0x2e8fc4, - 0x343b43, - 0x2b1087, - 0x216443, - 0x20d903, - 0x2c2308, - 0x20cb83, - 0x29fc4b, - 0x304443, - 0x24d906, - 0x213402, - 0x2fe64b, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x20cb83, - 0x21b103, - 0x2072c3, + 0x2036c2, + 0x7ffc8, + 0x45c4, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0xf002, + 0x58e02, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x6ca02, + 0x9e42, + 0x1b02, + 0x258843, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x2127c3, + 0x21f483, + 0x220743, + 0x29f804, + 0x229f43, + 0x241284, + 0x224d03, + 0x2ef2c4, + 0x2e9c43, + 0x285787, + 0x219c03, + 0x20bc03, + 0x219d08, + 0x21f483, + 0x28aa0b, + 0x3041c3, + 0x216e06, + 0x208ec2, + 0x2ff38b, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x21f483, + 0x21ad03, + 0x207743, 0x2000c2, - 0x793c8, - 0x235ec5, - 0x21ec48, - 0x3585c8, - 0x216542, - 0x363605, - 0x347c07, - 0x202bc2, - 0x24d147, + 0x7ffc8, + 0x232a05, + 0x21d788, + 0x34fd88, + 0x205842, + 0x354705, + 0x3d0647, + 0x203642, + 0x2ce747, 0x200382, - 0x25be87, - 0x34c049, - 0x277f48, - 0x3d0049, - 0x214182, - 0x20e107, - 0x387c84, - 0x347cc7, - 0x2be747, - 0x2687c2, - 0x216443, - 0x203742, - 0x204cc2, + 0x262447, + 0x22cf89, + 0x27c388, + 0x3cb949, + 0x212c82, + 0x203e87, + 0x392fc4, + 0x3d0707, + 0x2c5c47, + 0x26dc42, + 0x219c03, + 0x20f782, + 0x2048c2, 0x2003c2, - 0x208402, + 0x20f102, 0x200902, - 0x202b02, - 0x2e5245, - 0x227445, - 0x16542, - 0x22bc3, - 0x216543, - 0x222bc3, - 0x22de83, - 0x343b43, - 0x20e443, - 0x2296c3, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x158286, - 0x55fa5a4b, - 0x216443, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x175285, - 0x12b83, + 0x2036c2, + 0x2eb705, + 0x212345, + 0x5842, + 0x24d03, + 0x229f43, + 0x224d03, + 0x219443, + 0x2e9c43, + 0x204203, + 0x2127c3, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x14fa46, + 0x566c744b, + 0x219c03, + 0x2127c3, + 0x81983, + 0x21f483, + 0xca7c5, + 0x11643, 0x101, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x243543, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x2203c3, - 0x56869306, - 0x20a83, - 0x70945, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x6482, - 0x793c8, - 0x38c43, - 0xd903, - 0x7ca83, - 0x4f344, - 0x1480c44, - 0xf0b45, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x25e043, + 0x2127c3, + 0x81983, + 0x21f483, + 0x21fc83, + 0x5706e786, + 0x5483, + 0x1739c5, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x81983, + 0x21f483, + 0x7042, + 0x7ffc8, + 0x361c3, + 0xbc03, + 0x81983, + 0x51a44, + 0x1487dc4, + 0xf80c5, 0x2000c2, - 0x397344, - 0x216543, - 0x222bc3, - 0x343b43, - 0x24cc43, - 0x2b96c5, - 0x243543, - 0x21b283, - 0x2296c3, - 0x257743, - 0x20cb83, - 0x202b03, - 0x2192c3, - 0x201643, - 0x11d783, + 0x32d4c4, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x240a03, + 0x235c45, + 0x25e043, + 0x2280c3, + 0x2127c3, + 0x25c743, + 0x21f483, + 0x217083, + 0x208d43, + 0x205ec3, + 0xc8bc3, 0x5c2, - 0x386c2, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, + 0x47f42, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, 0x2000c2, - 0x253c43, - 0x216542, - 0x3242, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x2296c3, - 0x20cb83, - 0x202b02, - 0x793c8, - 0x343b43, - 0x7ca83, - 0x793c8, - 0x7ca83, - 0x2cc803, - 0x216543, - 0x23a304, - 0x222bc3, - 0x343b43, - 0x2042c2, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2042c2, - 0x233243, - 0x2296c3, - 0x20cb83, - 0x2faf43, - 0x202b03, + 0x258843, + 0x205842, + 0xd02, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x2127c3, + 0x21f483, + 0x2036c2, + 0x7ffc8, + 0x2e9c43, + 0x81983, + 0x7ffc8, + 0x81983, + 0x2c9ec3, + 0x229f43, + 0x23b4c4, + 0x224d03, + 0x2e9c43, + 0x203842, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x203842, + 0x2335c3, + 0x2127c3, + 0x21f483, + 0x2fe343, + 0x217083, 0x2000c2, - 0x216542, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x24d905, - 0x1143c6, - 0x6ff44, - 0x329c4, - 0x25dd04, - 0x213402, + 0x205842, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x216e05, + 0x157246, + 0x762c4, + 0x31384, + 0x29f804, + 0x208ec2, 0x882, - 0x793c8, - 0x3242, - 0x54202, - 0x2a02, + 0x7ffc8, + 0xd02, + 0x58e02, + 0xfc2, 0x2000c2, - 0x146c05, - 0x24948, - 0xe9883, - 0x216542, - 0x45c44, - 0x5b910646, - 0x1db84, - 0xc5e4b, - 0x42746, - 0x1cdf07, - 0x174bc9, - 0x222bc3, - 0x53188, - 0x5318b, - 0x5360b, - 0x539cb, - 0x53d0b, - 0x53fcb, - 0x5440b, - 0x18c86, - 0x343b43, - 0x154645, - 0x10e584, - 0x20b6c3, - 0x11b487, - 0x133604, - 0xed184, - 0x77984, - 0x2296c3, - 0x84e06, - 0xac8c4, - 0x7ca83, - 0x20cb83, - 0x305504, - 0x132747, - 0x113fc9, - 0xc5c08, - 0x1c8dc4, - 0x147e04, - 0x179dc3, - 0x13906, - 0x12248, - 0x18d445, - 0x1a1f49, - 0x39fc3, - 0x13ea86, - 0x146c05, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x20d903, - 0x20cb83, - 0x304443, - 0x213402, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x26a7c3, - 0x21b544, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x2e8fc4, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x24d906, - 0x222bc3, - 0x343b43, - 0x1e803, - 0x7ca83, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x146c05, - 0x1cdf07, - 0x69c3, - 0x39fc3, - 0x793c8, - 0x343b43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x722c3, - 0x2296c3, - 0x20cb83, - 0x5ee16543, - 0x222bc3, - 0x2296c3, - 0x20cb83, - 0x793c8, + 0x145d45, + 0x25388, + 0xf7c03, + 0x205842, + 0x48244, + 0x5c149406, + 0xc344, + 0xb2e8b, + 0x46a06, + 0x84447, + 0xb7ac9, + 0x224d03, + 0x573c8, + 0x573cb, + 0x5784b, + 0x585cb, + 0x5890b, + 0x58bcb, + 0x5900b, + 0xeb86, + 0x2e9c43, + 0x146bc5, + 0x172ec4, + 0x267c83, + 0x1196c7, + 0x15a2c6, + 0x12fc05, + 0x1cde04, + 0xf37c4, + 0x7f0c4, + 0x2127c3, + 0x8d346, + 0xf9304, + 0x81983, + 0x21f483, + 0x305744, + 0x1300c7, + 0x156e49, + 0xb2c48, + 0x1e3f05, + 0x1d3204, + 0x1d0844, + 0x172283, + 0x5b646, + 0x11448, + 0x198185, + 0x71c9, + 0x13803, + 0x10b2c6, + 0x145d45, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x20bc03, + 0x21f483, + 0x3041c3, + 0x208ec2, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258103, + 0x222d84, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2ef2c4, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x216e06, + 0x224d03, + 0x2e9c43, + 0x1d343, + 0x81983, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x145d45, + 0x84447, + 0x84c3, + 0x13803, + 0x7ffc8, + 0x2e9c43, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x979c3, + 0x2127c3, + 0x21f483, + 0x5f629f43, + 0x224d03, + 0x2127c3, + 0x21f483, + 0x7ffc8, 0x2000c2, - 0x216542, - 0x216543, - 0x343b43, - 0x2296c3, + 0x205842, + 0x229f43, + 0x2e9c43, + 0x2127c3, 0x2003c2, - 0x20cb83, - 0x33cf47, - 0x2f67cb, - 0x2153c3, - 0x283208, - 0x331607, - 0x349506, - 0x234d45, - 0x363749, - 0x24d688, - 0x37e649, - 0x3ae5d0, - 0x37e64b, - 0x3aaa09, - 0x2069c3, - 0x2fed09, - 0x23b286, - 0x23b28c, - 0x235f88, - 0x3e5c48, - 0x35c449, - 0x2cd20e, - 0x34be0b, - 0x2c340c, - 0x203b43, - 0x279d4c, - 0x203b49, - 0x300187, - 0x23c4cc, - 0x2c024a, - 0x21d684, - 0x21d68d, - 0x279c08, - 0x20f7cd, - 0x28a5c6, - 0x25dd0b, - 0x314149, - 0x2674c7, - 0x32cdc6, - 0x3339c9, - 0x35310a, - 0x30a088, - 0x304044, - 0x2bc2c7, - 0x24ea07, - 0x202744, - 0x2208c4, - 0x209cc9, - 0x30d489, - 0x20a888, - 0x2303c5, - 0x2140c5, - 0x20f086, - 0x21d549, - 0x283e4d, - 0x216d88, - 0x20ef87, - 0x234dc8, - 0x25b186, - 0x3e11c4, - 0x26b385, - 0x3e2f06, - 0x3e7984, - 0x203a47, - 0x20588a, - 0x216784, - 0x21a186, - 0x21a989, - 0x21a98f, - 0x21cc4d, - 0x21e706, - 0x224550, - 0x224946, - 0x226187, - 0x227f07, - 0x227f0f, - 0x229309, - 0x22cc86, - 0x22e907, - 0x22e908, - 0x22ed09, - 0x206e88, - 0x317a87, - 0x20c903, - 0x391906, - 0x37a588, - 0x2cd4ca, - 0x204189, - 0x22cb43, - 0x363506, - 0x34ac4a, - 0x282647, - 0x2fffca, - 0x31034e, - 0x229446, - 0x3d6847, - 0x24b006, - 0x203c06, - 0x38640b, - 0x218d8a, - 0x2f6e0d, - 0x2f53c7, - 0x274588, - 0x274589, - 0x27458f, - 0x2fb78c, - 0x2fb0c9, - 0x287bce, - 0x2b118a, - 0x20c606, - 0x2e9106, - 0x30cd4c, - 0x3bb08c, - 0x3d8388, - 0x338487, - 0x208c45, - 0x347e84, - 0x36430e, - 0x3109c4, - 0x3406c7, - 0x36be4a, - 0x3806d4, - 0x38a70f, - 0x2280c8, - 0x3917c8, - 0x38c34d, - 0x38c34e, - 0x3b4bc9, - 0x238308, - 0x23830f, - 0x23c1cc, - 0x23c1cf, - 0x23d147, - 0x23f90a, - 0x240acb, - 0x241348, - 0x244547, - 0x24be0d, - 0x362546, - 0x21d846, - 0x247bc9, - 0x26bac8, - 0x24db08, - 0x24db0e, - 0x26b907, - 0x308585, - 0x24f085, - 0x220744, - 0x3497c6, - 0x20a788, - 0x3a2983, - 0x2bf30e, - 0x24c1c8, - 0x3e534b, - 0x3c7807, - 0x2332c5, - 0x279ec6, - 0x2ba1c7, - 0x33e8c8, - 0x32c449, - 0x23cb05, - 0x2925c8, - 0x22fe06, - 0x3b3cca, - 0x364209, - 0x23c589, - 0x23c58b, - 0x33b7c8, - 0x202609, - 0x230486, - 0x3c298a, - 0x2a104a, - 0x23fb0c, - 0x371707, - 0x277d4a, - 0x39f78b, - 0x39f799, - 0x351a48, - 0x24d985, - 0x24bfc6, - 0x296489, - 0x250206, - 0x22b24a, - 0x2163c6, - 0x232d44, - 0x2dce0d, - 0x32d187, - 0x232d49, - 0x252185, - 0x2522c8, - 0x252f49, - 0x254744, - 0x254e07, - 0x254e08, - 0x255287, - 0x273b48, - 0x25cac7, - 0x2dfac5, - 0x26420c, - 0x2646c9, - 0x3b930a, - 0x266cc9, - 0x2fee09, - 0x26700c, - 0x26974b, - 0x26ac88, - 0x26bcc8, - 0x26f504, - 0x290988, - 0x291d49, - 0x2c0307, - 0x21abc6, - 0x2a9607, - 0x3d4bc9, - 0x21070b, - 0x247047, - 0x21fc47, - 0x3e3507, - 0x20f744, - 0x20f745, - 0x2e8cc5, - 0x357f0b, - 0x30df44, - 0x3b6648, - 0x25974a, - 0x22fec7, - 0x3e5007, - 0x299452, - 0x3d4786, - 0x239c86, - 0x340ace, - 0x3e5786, - 0x29ddc8, - 0x29f2cf, - 0x20fb88, - 0x243948, - 0x2e75ca, - 0x2e75d1, - 0x2af74e, - 0x20294a, - 0x20294c, - 0x238507, - 0x238510, - 0x3d9e48, - 0x2af945, - 0x2ba4ca, - 0x3e79cc, - 0x2a204d, - 0x20e446, - 0x20e447, - 0x20e44c, - 0x20f3cc, - 0x26a98c, - 0x39304b, - 0x3a4f04, - 0x205604, - 0x2be009, - 0x37de47, - 0x361f89, - 0x2a0e89, - 0x2bff07, - 0x2c00c6, - 0x2c00c9, - 0x2c04c3, - 0x2b2fca, - 0x37a447, - 0x37b94b, - 0x2f6c8a, - 0x25bfc4, - 0x3ceb46, - 0x28cd09, - 0x2f44c4, - 0x2e4e4a, - 0x302645, - 0x2d1b85, - 0x2d1b8d, - 0x2d1ece, - 0x2722c5, - 0x33bc06, - 0x24d507, - 0x25d40a, - 0x231c86, - 0x37ee04, - 0x301887, - 0x300e4b, - 0x273847, - 0x2420c4, - 0x316546, - 0x31654d, - 0x2eba8c, - 0x3d1a86, - 0x216f8a, - 0x221d46, - 0x227bc8, - 0x2fd2c7, - 0x2dafca, - 0x3e7346, - 0x28aa83, - 0x354806, - 0x213448, - 0x36dc0a, - 0x25aa07, - 0x25aa08, - 0x2985c4, - 0x2a5c47, - 0x31f5c8, - 0x2f3cc8, - 0x2f1188, - 0x32a8ca, - 0x2efe85, - 0x2cb207, - 0x260e13, - 0x276586, - 0x38d188, - 0x22bb49, - 0x24d008, - 0x28794b, - 0x2ca108, - 0x2eb7c4, - 0x326e86, - 0x324186, - 0x3423c9, - 0x2dae07, - 0x264308, - 0x2aa246, - 0x200bc4, - 0x3de805, - 0x33f188, - 0x39000a, - 0x2dca88, - 0x2e1046, - 0x2a6a8a, - 0x36a688, - 0x3bc6c8, - 0x2e50c8, - 0x2e5906, - 0x2e7d46, - 0x3b20cc, - 0x2e8310, - 0x2e8705, - 0x20f988, - 0x288910, - 0x20f990, - 0x3ae44e, - 0x3b1d4e, - 0x3b1d54, - 0x3ba5cf, - 0x3ba986, - 0x202811, - 0x209613, - 0x32cf48, - 0x363c05, - 0x283748, - 0x32d685, - 0x348fcc, - 0x2718c9, - 0x310809, - 0x2fbfc7, - 0x368f49, - 0x3a8747, - 0x313386, - 0x26b187, - 0x2649c5, - 0x212bc3, - 0x21e803, - 0x2433c4, - 0x21574d, - 0x3c3dcf, - 0x200c05, - 0x348ec6, - 0x22a447, - 0x235d07, - 0x355bc6, - 0x355bcb, - 0x2b0505, - 0x289146, - 0x3baf07, - 0x25e109, - 0x22eb86, - 0x3881c5, - 0x20368b, - 0x20de06, - 0x22f7c5, - 0x24fa08, - 0x2a3b08, - 0x2b3ccc, - 0x2b3cd0, - 0x2b89c9, - 0x2cad07, - 0x34de4b, - 0x2f0c46, - 0x31794a, - 0x38cf0b, - 0x314c4a, - 0x2f9406, - 0x2fae05, - 0x331506, - 0x292a88, - 0x3a5c0a, - 0x38bfdc, - 0x30450c, - 0x304808, - 0x24d905, - 0x38f6c7, - 0x2cce46, - 0x39da45, - 0x2210c6, - 0x355d88, - 0x2d0c47, - 0x2cd108, - 0x27664a, - 0x35b5cc, - 0x3a2c09, - 0x35b847, - 0x243e44, - 0x204a06, - 0x2434ca, - 0x2a0f85, - 0x22054c, - 0x220c08, - 0x236f48, - 0x32794c, - 0x33878c, - 0x35cf89, - 0x361d87, - 0x24808c, - 0x2fce84, - 0x322a4a, - 0x3e23cc, - 0x254fcb, - 0x255c8b, - 0x259186, - 0x25f087, - 0x238747, - 0x23874f, - 0x311a51, - 0x2ee312, - 0x25f3cd, - 0x25f3ce, - 0x25f70e, - 0x3ba788, - 0x3ba792, - 0x2fc688, - 0x2b1987, - 0x259c4a, - 0x2125c8, - 0x3e5745, - 0x2c618a, - 0x224cc7, - 0x2f0d84, - 0x20b5c3, - 0x23f1c5, - 0x2e7847, - 0x306587, - 0x2a224e, - 0x3dc44d, - 0x316209, - 0x207385, - 0x34f9c3, - 0x33e246, - 0x267c45, - 0x3e5588, - 0x22d149, - 0x24c005, - 0x24c00f, - 0x2c5f47, - 0x234bc5, - 0x3c81ca, - 0x20d746, - 0x246809, - 0x3599cc, - 0x37eec9, - 0x2111c6, - 0x25954c, - 0x3357c6, - 0x30fac8, - 0x38c686, - 0x278b86, - 0x2c6c44, - 0x386d83, - 0x3e380a, - 0x209211, - 0x2fb28a, - 0x3e19c5, - 0x263e87, - 0x261707, - 0x2e20c4, - 0x31f6cb, - 0x3cfec8, - 0x2cf7c6, - 0x23e5c5, - 0x257104, - 0x26f9c9, + 0x21f483, + 0x33cd07, + 0x236d4b, + 0x219dc3, + 0x321e08, + 0x374047, + 0x3e2986, + 0x3112c5, + 0x354849, + 0x216b88, + 0x285b89, + 0x285b90, + 0x38864b, + 0x3aec89, + 0x2084c3, + 0x221c49, + 0x23ca06, + 0x23ca0c, + 0x232ac8, + 0x3ed388, + 0x271709, + 0x2d094e, + 0x22cd4b, + 0x2c54cc, + 0x2030c3, + 0x27f60c, + 0x2030c9, + 0x3e4347, + 0x23e60c, + 0x2c714a, + 0x259b44, + 0x2c084d, + 0x27f4c8, + 0x3d9ecd, + 0x282c06, + 0x29f80b, + 0x356fc9, + 0x26c107, + 0x386206, + 0x332949, + 0x349f8a, + 0x3a73c8, + 0x303dc4, + 0x2c3087, + 0x250d47, + 0x20a3c4, + 0x22d744, + 0x387109, + 0x3bc989, + 0x3d0bc8, + 0x32e9c5, + 0x212bc5, + 0x20da06, + 0x2c0709, + 0x352bcd, + 0x21a108, + 0x20d907, + 0x311348, + 0x24f486, + 0x2443c4, + 0x269185, + 0x3e8c86, + 0x3eb4c4, + 0x202fc7, + 0x20644a, + 0x213f04, + 0x2183c6, + 0x21bf49, + 0x21bf4f, + 0x21cd0d, + 0x21d246, + 0x224f90, + 0x225386, + 0x225c47, + 0x226587, + 0x22658f, + 0x227009, + 0x22ca86, + 0x22d207, + 0x22d208, + 0x22e049, + 0x3d5848, + 0x30b9c7, + 0x20e2c3, + 0x234e06, + 0x32e6c8, + 0x2d0c0a, + 0x203709, + 0x216cc3, + 0x354606, + 0x25bc8a, + 0x244e47, + 0x3e418a, + 0x34910e, + 0x227146, + 0x33f0c7, + 0x24b806, + 0x202546, + 0x348b8b, + 0x20ec8a, + 0x3d7c8d, + 0x28c587, + 0x27a688, + 0x27a689, + 0x27a68f, + 0x3a784c, + 0x3a7b09, + 0x278ace, + 0x28588a, + 0x237d46, + 0x2f7486, + 0x3b2acc, + 0x317fcc, + 0x322c88, + 0x35b287, + 0x224245, + 0x3d08c4, + 0x34aece, + 0x22f544, + 0x3405c7, + 0x3ad60a, + 0x3e6bd4, + 0x3ea64f, + 0x226748, + 0x234cc8, + 0x38168d, + 0x38168e, + 0x235149, + 0x342548, + 0x34254f, + 0x23e30c, + 0x23e30f, + 0x23f987, + 0x2422ca, + 0x2445cb, + 0x245008, + 0x2474c7, + 0x253c4d, + 0x366a06, + 0x2c0a06, + 0x249209, + 0x272348, + 0x24f808, + 0x24f80e, + 0x236e47, + 0x308645, + 0x251805, + 0x209484, + 0x3e2c46, + 0x3d0ac8, + 0x264283, + 0x2c68ce, + 0x254008, + 0x24fe4b, + 0x359547, + 0x233645, + 0x27f786, + 0x2bfb07, + 0x32ecc8, + 0x330989, + 0x23ec45, + 0x297e48, + 0x230546, + 0x3b984a, + 0x34adc9, + 0x23e6c9, + 0x23e6cb, + 0x284f88, + 0x20a289, + 0x2c9806, + 0x26c4ca, + 0x3d1fca, + 0x2424cc, + 0x379c87, + 0x27c18a, + 0x3c6e8b, + 0x3c6e99, + 0x2d9408, + 0x216e85, + 0x253e06, + 0x36ff09, + 0x240186, + 0x22ff8a, + 0x229dc6, + 0x20a6c4, + 0x2e2e4d, + 0x20a6c7, + 0x325f89, + 0x255f05, + 0x256dc8, + 0x257189, + 0x259344, + 0x259a47, + 0x259a48, + 0x25a107, + 0x279c48, + 0x260787, + 0x2e5885, + 0x26888c, + 0x268c89, + 0x31b2ca, + 0x26b909, + 0x221d49, + 0x26bc4c, + 0x26ef8b, + 0x270f48, + 0x272548, + 0x275904, + 0x295f08, + 0x2975c9, + 0x2c7207, + 0x21c186, + 0x2af587, + 0x2fbc89, + 0x20ffcb, + 0x2511c7, + 0x21f507, + 0x2b8d47, + 0x3d9e44, + 0x3d9e45, + 0x2eefc5, + 0x357dcb, + 0x208f44, + 0x3b6988, + 0x25d44a, + 0x230607, + 0x3ecf87, + 0x29fc92, + 0x28afc6, + 0x2389c6, + 0x33564e, + 0x28c886, + 0x2a4c08, + 0x2a5acf, + 0x3da288, + 0x3b4608, + 0x3ae48a, + 0x3ae491, + 0x2b424e, + 0x26524a, + 0x26524c, + 0x265a07, + 0x342750, + 0x3d8948, + 0x2b4445, + 0x2bfe0a, + 0x3eb50c, + 0x2b84cd, + 0x204206, + 0x204207, + 0x20420c, + 0x20e80c, + 0x3a864c, + 0x2c340b, + 0x3ab384, + 0x21de84, + 0x2c4d89, + 0x31dac7, + 0x3ead89, + 0x288509, + 0x2c6e07, + 0x2c6fc6, + 0x2c6fc9, + 0x2c73c3, + 0x2b234a, + 0x32e587, + 0x20c0cb, + 0x3d7b0a, + 0x262584, + 0x2128c6, + 0x292689, + 0x368784, + 0x2eb30a, + 0x240d85, + 0x2d7a85, + 0x2d7a8d, + 0x2d7dce, + 0x31c3c5, + 0x33b486, + 0x216a07, + 0x24ecca, + 0x22f846, + 0x27f1c4, + 0x2fb147, + 0x2e0d4b, + 0x3d5d07, + 0x3b55c4, + 0x3c8586, + 0x3c858d, + 0x2f208c, + 0x212686, + 0x21a30a, + 0x2281c6, + 0x222088, + 0x3b2f47, + 0x22790a, + 0x23e186, + 0x286443, + 0x286446, + 0x220d48, + 0x375c0a, + 0x2a0207, + 0x2a0208, + 0x2a2844, + 0x28b1c7, + 0x36a3c8, + 0x2dbb08, + 0x31a988, + 0x35a6ca, + 0x2f7305, + 0x2bbec7, + 0x265093, + 0x27d886, + 0x2472c8, + 0x22a349, + 0x2ce608, + 0x254dcb, + 0x2cfe88, + 0x2e0e84, + 0x2de086, + 0x323fc6, + 0x341689, + 0x2e0c07, + 0x268988, + 0x297446, + 0x393644, + 0x32df05, + 0x3d98c8, + 0x34a9ca, + 0x2e2ac8, + 0x2e6e06, + 0x2abf8a, + 0x203b08, + 0x2e1908, + 0x2eb588, + 0x2ec146, + 0x2ed746, + 0x33c00c, + 0x2edcd0, + 0x2ee0c5, + 0x2bb0c8, + 0x2bb0d0, + 0x3da090, + 0x285a0e, + 0x33bc8e, + 0x33bc94, + 0x3b244f, + 0x3b2806, + 0x3bef11, + 0x3ed913, + 0x20a488, + 0x20b405, + 0x3cbf08, + 0x332c05, + 0x3e244c, + 0x2166c9, + 0x22f389, + 0x3b9c47, + 0x3495c9, + 0x35dbc7, + 0x207586, + 0x268f87, + 0x201245, + 0x211683, + 0x21d343, + 0x23d384, + 0x21338d, + 0x331e0f, + 0x393685, + 0x2165c6, + 0x22bbc7, + 0x232847, + 0x2c5886, + 0x2c588b, + 0x2b5485, + 0x213786, + 0x3a7107, + 0x261449, + 0x226e86, + 0x310b85, + 0x381d4b, + 0x3cf886, + 0x218b85, + 0x240a88, + 0x28ad88, + 0x2a184c, + 0x2a1850, + 0x2ae909, + 0x2b6c07, + 0x2cb48b, + 0x2d8346, + 0x30b88a, + 0x24704b, + 0x34bc8a, + 0x361806, + 0x2fe205, + 0x32e2c6, + 0x28df48, + 0x2c760a, + 0x38131c, + 0x33194c, + 0x304288, + 0x216e05, + 0x288dc7, + 0x2d0586, + 0x38bfc5, + 0x220106, + 0x2c5a48, + 0x2d68c7, + 0x2d0848, + 0x256f0a, + 0x38a5cc, + 0x3d8109, + 0x384347, + 0x2cdc04, + 0x2518c6, + 0x3b418a, + 0x288605, + 0x22d3cc, + 0x22da88, + 0x2fd6c8, + 0x30a50c, + 0x35c98c, + 0x3963c9, + 0x3eab87, + 0x251f0c, + 0x22b704, + 0x306dca, + 0x227d8c, + 0x28400b, + 0x259e4b, + 0x25ce86, + 0x263407, + 0x265507, + 0x34298f, + 0x312151, + 0x2f47d2, + 0x26550d, + 0x26550e, + 0x26584e, + 0x3b2608, + 0x3b2612, + 0x230e48, + 0x257f07, + 0x25e70a, + 0x251d48, + 0x28c845, + 0x2cb88a, + 0x225707, + 0x2e7cc4, + 0x254a43, + 0x2417c5, + 0x3ae707, + 0x2fce87, + 0x2b86ce, + 0x365d4d, + 0x3c8249, + 0x207805, + 0x31e6c3, + 0x33e006, + 0x26c905, + 0x250088, + 0x385989, + 0x224805, + 0x253e4f, + 0x2b2f87, + 0x311145, + 0x359f0a, + 0x3daa46, + 0x3917c9, + 0x353c8c, + 0x366c49, + 0x3ec046, + 0x25d24c, + 0x3345c6, + 0x3bf308, + 0x239546, + 0x27cfc6, + 0x2cc344, + 0x3c39c3, + 0x3e954a, + 0x250491, + 0x3a7cca, + 0x26b245, + 0x26f947, + 0x265cc7, + 0x2d54c4, + 0x36a4cb, + 0x3cb7c8, + 0x2d5146, + 0x3e7205, + 0x277944, + 0x268189, 0x2008c4, - 0x218407, - 0x37e8c5, - 0x37e8c7, - 0x340d05, - 0x212483, - 0x2b1848, - 0x2484ca, - 0x235f03, - 0x235f0a, - 0x2ae286, - 0x24bd8f, - 0x26b889, - 0x2bf290, - 0x2e2248, - 0x2e1809, - 0x2a5007, - 0x3164cf, - 0x3c5fc4, - 0x2e9044, - 0x2247c6, - 0x25d8c6, - 0x252c0a, - 0x24cb06, - 0x2bcc47, - 0x317dc8, - 0x317fc7, - 0x3196c7, - 0x31aa0a, - 0x319fcb, - 0x271385, - 0x2edf48, - 0x20c183, - 0x3c17cc, - 0x2089cf, - 0x22158d, - 0x35e207, - 0x236c89, - 0x35d247, - 0x2cbd48, - 0x3808cc, - 0x2eb6c8, - 0x3e16c8, - 0x33438e, - 0x345b94, - 0x3460a4, - 0x360d8a, - 0x37ea8b, - 0x3a8804, - 0x3a8809, - 0x2c6848, - 0x24fe05, - 0x3a248a, - 0x2b39c7, - 0x258bc4, - 0x253c43, - 0x216543, - 0x23ec84, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x243543, - 0x216443, - 0x2e8306, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x21f6c3, + 0x3ebe47, + 0x333505, + 0x333507, + 0x335885, + 0x25f3c3, + 0x257dc8, + 0x27988a, + 0x22eb83, + 0x232a4a, + 0x3bd7c6, + 0x253bcf, + 0x272109, + 0x2c6850, + 0x2d5648, + 0x2e7709, + 0x2aa307, + 0x3c850f, + 0x3c9f44, + 0x2ef344, + 0x20b786, + 0x2f0686, + 0x26204a, + 0x256186, + 0x2c3a87, + 0x315808, + 0x315a07, + 0x3170c7, + 0x318c4a, + 0x3179cb, + 0x23ab05, + 0x2f4408, + 0x2098c3, + 0x3d458c, + 0x386b0f, + 0x22404d, + 0x29d4c7, + 0x243449, + 0x396687, + 0x2d0f88, + 0x3e6dcc, + 0x301748, + 0x24a2c8, + 0x33314e, + 0x344cd4, + 0x3451e4, + 0x364b8a, + 0x388ecb, + 0x35dc84, + 0x35dc89, + 0x2cbf48, + 0x252245, + 0x373e4a, + 0x3c9047, + 0x285584, + 0x258843, + 0x229f43, + 0x241284, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x25e043, + 0x219c03, + 0x2edcc6, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x202783, 0x2000c2, - 0x253c43, - 0x216542, - 0x216543, - 0x23ec84, - 0x222bc3, - 0x343b43, - 0x243543, - 0x2e8306, - 0x2296c3, - 0x20cb83, - 0x793c8, - 0x216543, - 0x222bc3, - 0x2f5503, - 0x606296c3, - 0x7ca83, - 0x20cb83, - 0x60a01704, - 0xc1442, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x21b544, - 0x2296c3, - 0x20cb83, + 0x258843, + 0x205842, + 0x229f43, + 0x241284, + 0x224d03, + 0x2e9c43, + 0x25e043, + 0x2edcc6, + 0x2127c3, + 0x21f483, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x28c6c3, + 0x2127c3, + 0x81983, + 0x21f483, + 0x258843, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x222d84, + 0x2127c3, + 0x21f483, 0x2000c2, - 0x28bb03, - 0x216542, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x204182, - 0x204042, - 0x216542, - 0x216543, - 0x2080c2, + 0x289e03, + 0x205842, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x203702, + 0x2035c2, + 0x205842, + 0x229f43, + 0x208542, 0x2005c2, - 0x2b1b84, - 0x28d4c4, - 0x233ec2, - 0x21b544, + 0x258104, + 0x292e44, + 0x230a02, + 0x222d84, 0x2003c2, - 0x20cb83, - 0x21f6c3, - 0x259186, - 0x22a042, - 0x204a42, - 0x208f02, - 0x61e0fb83, - 0x62202943, - 0x62186, - 0x62186, - 0x25dd04, - 0x20d903, - 0x1a16cd, - 0xa60a, - 0x1a02cc, - 0x8d34c, - 0x62c691cf, - 0x7074d, - 0x15c104, - 0x75104, - 0xffd44, - 0x146c05, - 0x95d89, - 0x17488c, - 0x34347, - 0x17f06, - 0x1f2c8, - 0x22a87, - 0x29e88, - 0x1beaca, - 0x1e1c47, - 0x174ac9, - 0x632ea205, - 0xea209, - 0x6343df0b, - 0x123308, - 0x3ecb, - 0x17ce88, - 0x18484a, - 0x132bce, - 0x6397448a, - 0x12808d, - 0x1b4bcd, - 0x144ce0b, - 0xeb94a, - 0x1db84, - 0x53846, - 0x89288, - 0x1dcf08, - 0x3e1c7, - 0x1e485, - 0x63eabe08, - 0x1d74c7, - 0x51b89, - 0xf4547, - 0x1c74c8, - 0x32649, - 0x48404, - 0x48985, - 0xc9ce, - 0x1402c7, - 0x6462cd86, - 0xb8d0d, - 0x1cdd88, - 0xedb48, - 0x64b7cb46, - 0x6557cb48, - 0xb3588, - 0x13d150, - 0x5fc8c, - 0x70607, - 0x71b07, - 0x75c07, - 0x7c947, - 0xc342, - 0x1d8707, - 0x18f4c, - 0x116b05, - 0xb8847, - 0xb3b86, - 0xb4e49, - 0xb7288, - 0x1ec82, + 0x21f483, + 0x202783, + 0x25ce86, + 0x26ca02, + 0x201b02, + 0x22a742, + 0x61e12d83, + 0x62265243, + 0x66746, + 0x66746, + 0x29f804, + 0x20bc03, + 0x2acd, + 0x1d094a, + 0x1d39cc, + 0x92ccc, + 0x62c6e64f, + 0x1cc94d, + 0x713c4, + 0x7b204, + 0x161cc4, + 0x145d45, + 0x98409, + 0xb778c, + 0x110947, + 0x16906, + 0x1eb88, + 0x24bc7, + 0x286c8, + 0x1c14ca, + 0x1145c7, + 0xb79c9, + 0x632f8c05, + 0xf8c09, + 0x634404cb, + 0x125c88, + 0x137dcb, + 0x344b, + 0x182bc8, + 0x13054a, + 0x17d3ce, + 0x638b738a, + 0x1e544d, + 0x3514d, + 0x14ce40b, + 0xf1f4a, + 0xc344, + 0x8ef86, + 0x19f508, + 0xd1e88, + 0x40787, + 0x16245, + 0x1e0507, + 0xa54c9, + 0x1cd787, + 0x1db408, + 0x31009, + 0x15f9c4, + 0x53705, + 0x3810e, + 0x1401c7, + 0x63e26c46, + 0xbe10d, + 0x1cd608, + 0xf4008, + 0x6429ed46, + 0x64d82888, + 0x106b8a, + 0xb2908, + 0x13cf10, + 0x6388c, + 0x76987, + 0x77d47, + 0x7bd87, + 0x81847, + 0xd9c2, + 0x1da407, + 0xee4c, + 0x1e1905, + 0xbd847, + 0xb6ac6, + 0xb92c9, + 0xbb988, + 0x1d7c2, 0x5c2, - 0x190a86, - 0x67cb, - 0x6ac6, - 0x15c9c4, - 0x10f887, - 0x5e789, - 0x932c9, - 0x1bc248, - 0x54202, - 0x1971c9, - 0x17988, - 0x104e4a, - 0x65ada54b, - 0x145149, - 0x12506, - 0xdf889, - 0xeb8c7, - 0xec009, - 0xed548, - 0xeeac7, - 0xefe09, - 0xf2185, - 0xf2550, - 0x1e84c6, - 0x10f7c5, - 0x120047, - 0xb6a4d, - 0x4ab45, - 0xfec06, - 0xff487, - 0x105518, - 0xf48c8, - 0x80d4a, - 0x4a02, - 0x663a540b, - 0x666df98a, - 0x55a4a, - 0x6334d, - 0x1702, - 0xd9c46, - 0x30846, - 0xa7248, - 0xb700a, - 0x46c88, - 0x79289, - 0x118d88, - 0x6f68e, - 0x16208, - 0x13e247, - 0x66bb0284, - 0x12764d, - 0x10ba05, - 0x1a2f48, - 0x4fec8, - 0x66eaf2c8, - 0x114786, - 0x6502, - 0xcf5c4, - 0x110b46, - 0x6724b348, - 0x13906, - 0x678ddecb, - 0xe042, - 0xacc09, - 0x12d408, - 0x164647, - 0x35b4a, - 0x40407, + 0x19ab46, + 0x1d6ecb, + 0x1d71c6, + 0x71c84, + 0xcabc7, + 0x56a09, + 0x90249, + 0x1c03c8, + 0x58e02, + 0x12d349, + 0x15288, + 0xfff4a, + 0xd28c8, + 0x652e034b, + 0x162d09, + 0x51c86, + 0xe5649, + 0xf1ec7, + 0xf2609, + 0xf3948, + 0xf5707, + 0xf7289, + 0xf9d05, + 0xfa0d0, + 0x1c5e46, + 0xcab05, + 0xd5247, + 0x12634d, + 0x65ac9683, + 0x4d385, + 0x2e6c6, + 0xff7c7, + 0x105758, + 0x98d08, + 0x4c08a, + 0x152f8e, + 0x9942, + 0x65f5f74b, + 0x662e574a, + 0x59c0a, + 0x6a90d, + 0x33c2, + 0xdfa46, + 0x18a46, + 0xac788, + 0xbb70a, + 0x566c8, + 0x7fe89, + 0x1167c8, + 0x75a8e, + 0x29c08, + 0x13e007, + 0x6669ec84, + 0xd3f0d, + 0x10df85, + 0x1735c8, + 0x3fe48, + 0x66888d0a, + 0x66eb3dc8, + 0x1133c6, + 0x9e42, + 0xa6f44, + 0x6d586, + 0x67045f08, + 0x5b646, + 0x678c200b, + 0x4182, + 0x154a09, + 0x135c08, + 0x14b207, + 0x3268a, + 0x118a87, 0x401, 0x81, - 0x183c47, - 0x116348, - 0x642c1503, - 0x1616c4, - 0xc1508, - 0xc1708, - 0xc1908, - 0x69c07, - 0x9b583, - 0x64e40644, - 0x652a0803, + 0x18e907, + 0x1c8388, + 0xc7e88, + 0xc8088, + 0xc8288, + 0x6fcc7, + 0xb1fc3, + 0x64644084, + 0x64aa6b83, 0xc1, - 0x267c6, + 0x39d46, 0xc1, 0x201, - 0x267c6, - 0x9b583, - 0x65f36fc4, - 0x18b2c4, - 0x1a845, - 0x88e45, - 0x10f9c4, - 0x16684, - 0x54644, - 0x1c4b88, - 0x1866cc, - 0xe01, - 0x192c3, - 0x27804, - 0x1c4b88, - 0x677c4b88, - 0x674c3, - 0x79943, - 0x27d47, - 0x5f07, - 0x156d145, - 0x57e04, - 0x10dfc7, - 0x16542, - 0x88e04, - 0x21d684, - 0x216543, - 0x256d44, - 0x2b1b84, - 0x2296c3, - 0x22ba05, - 0x2203c3, - 0x24c343, - 0x355b45, - 0x201643, - 0x1df83, - 0x68a16543, - 0x222bc3, - 0x56d44, - 0x4f03, - 0x343b43, + 0x39d46, + 0xb1fc3, + 0x656212c4, + 0x196f84, + 0x1fe85, + 0x2c945, + 0xcad04, + 0x2a084, + 0x59244, + 0x1434307, + 0x1421207, + 0x1c8bc8, + 0x148e4c, + 0xc41, + 0x8d43, + 0x2c684, + 0xef885, + 0x1c8bc8, + 0x677c8bc8, + 0x54e83, + 0x80383, + 0x16c43, + 0x22207, + 0x5ec7, + 0x145e305, + 0x5d8c4, + 0x76ac7, + 0x5842, + 0x2c904, + 0x1b01ca, + 0x259b44, + 0x229f43, + 0x25b9c4, + 0x258104, + 0x2127c3, + 0x22a205, + 0x21fc83, + 0x23ffc3, + 0x32e885, + 0x205ec3, + 0x15d43, + 0x68e29f43, + 0x224d03, + 0x5b9c4, + 0x4b03, + 0x2e9c43, 0x200181, - 0x1b283, - 0x216443, - 0x28d4c4, - 0x21b544, - 0x2296c3, - 0x57743, - 0x20cb83, - 0x202b03, - 0x793c8, + 0x280c3, + 0x219c03, + 0x292e44, + 0x222d84, + 0x2127c3, + 0x5c743, + 0x21f483, + 0x217083, + 0x7ffc8, 0x2000c2, - 0x253c43, - 0x216542, - 0x216543, - 0x222bc3, - 0x2f5503, + 0x258843, + 0x205842, + 0x229f43, + 0x224d03, + 0x28c6c3, 0x2005c2, - 0x2b1b84, - 0x243543, - 0x216443, - 0x2296c3, - 0x20d903, - 0x20cb83, - 0x201643, - 0x8904, - 0x793c8, - 0xf0007, - 0x16542, - 0x13f105, - 0x5fdcf, - 0xfa946, - 0x1472588, - 0x1190ce, - 0x69a0bc42, - 0x20bc88, - 0x20ad46, - 0x257f86, - 0x39a587, - 0x69e00c82, - 0x6a2bf108, - 0x22588a, - 0x270088, + 0x258104, + 0x25e043, + 0x219c03, + 0x2127c3, + 0x20bc03, + 0x21f483, + 0x205ec3, + 0x186a44, + 0x7ffc8, + 0xfd147, + 0x5842, + 0x12de85, + 0x639cf, + 0x1e50c6, + 0x1475dc8, + 0x116ace, + 0x69e087c2, + 0x2373c8, + 0x3d1086, + 0x25da46, + 0x3a33c7, + 0x6a204cc2, + 0x6a6c66c8, + 0x22ad4a, + 0x276408, 0x200ac2, - 0x37b789, - 0x2713c7, - 0x21ab46, - 0x2b1589, - 0x2cb344, - 0x349406, - 0x2d8d04, - 0x223984, - 0x263789, - 0x3e2106, - 0x236b05, - 0x274145, - 0x3e04c7, - 0x2d3b87, - 0x2d8684, - 0x322006, - 0x3061c5, - 0x20b585, - 0x238cc5, - 0x337047, - 0x3c7645, - 0x2533c9, - 0x3411c5, - 0x33ea04, - 0x231bc7, - 0x379ece, - 0x208509, - 0x340989, - 0x36ce06, - 0x249048, - 0x370e4b, - 0x2ab90c, - 0x31a746, - 0x2c32c7, - 0x2f19c5, - 0x31270a, - 0x20a989, - 0x201189, - 0x207d06, - 0x3bacc5, - 0x24f485, - 0x385e09, - 0x238e4b, - 0x3871c6, - 0x352106, - 0x20ef84, - 0x323bc6, - 0x308608, - 0x3cd246, - 0x228d06, - 0x204b88, - 0x206347, - 0x207ac9, - 0x20a245, - 0x793c8, - 0x3d7444, - 0x319c44, - 0x213f45, - 0x344589, - 0x22adc7, - 0x22adcb, - 0x22c88a, - 0x232345, - 0x6a606e82, - 0x2f6b47, - 0x6aa34fc8, - 0x207f47, - 0x21c245, - 0x2c858a, - 0x16542, - 0x289c0b, - 0x28ab0a, - 0x22bd06, - 0x2122c3, - 0x214ccd, - 0x3c338c, - 0x3dec0d, - 0x29e685, - 0x2bdd45, - 0x3a29c7, - 0x214609, - 0x225786, - 0x24c985, - 0x37f7c8, - 0x2d9c83, - 0x3588c8, - 0x323ac8, - 0x39f407, - 0x3c7188, - 0x2251c9, - 0x2d7a47, - 0x2f6347, - 0x36cfc8, - 0x37b644, - 0x37b647, - 0x28a4c8, - 0x361486, - 0x205acf, - 0x323607, - 0x321b06, - 0x361ec5, - 0x22c3c3, - 0x250b47, - 0x251243, - 0x255446, - 0x257d06, - 0x25a606, - 0x29c885, - 0x273b43, - 0x396e48, - 0x38b949, - 0x3a3c8b, - 0x25a788, - 0x25c785, - 0x25eb45, - 0x6ae5c082, - 0x26b249, - 0x3d1907, - 0x2891c5, - 0x263687, - 0x264dc6, - 0x3b2605, - 0x267a8b, - 0x26ac84, - 0x26fc45, - 0x26fd87, - 0x281a06, - 0x281e45, - 0x290dc7, - 0x291487, - 0x2ae244, - 0x37468a, - 0x297688, - 0x371109, - 0x2acac5, - 0x347486, - 0x3087ca, - 0x274046, - 0x23b8c7, - 0x2780cd, - 0x2b0049, - 0x394d85, - 0x37d287, - 0x32bbc8, - 0x36c888, - 0x3c3ac7, - 0x3ce246, - 0x22d347, - 0x257783, - 0x357f04, - 0x380f85, - 0x3b1447, - 0x3bbe49, - 0x287f08, - 0x23b7c5, - 0x382fc4, - 0x2574c5, - 0x26510d, - 0x200cc2, - 0x221ec6, - 0x2f8e06, - 0x33f34a, - 0x39e886, - 0x3afc45, - 0x2d91c5, - 0x2d91c7, - 0x3b3b0c, - 0x2b340a, - 0x298d86, - 0x2e7c45, - 0x323a06, - 0x299287, - 0x29ab06, - 0x29c78c, - 0x2b16c9, - 0x6b226c47, - 0x29f685, - 0x29f686, - 0x2a0288, - 0x24c885, - 0x2b0785, - 0x2b2048, - 0x2b224a, - 0x6b6870c2, - 0x6ba10f82, - 0x368b05, - 0x317b83, - 0x23d9c8, - 0x20b383, - 0x2b24c4, - 0x24694b, - 0x2231c8, - 0x2c1bc8, - 0x6bf4a9c9, - 0x2b8309, - 0x2b8c06, - 0x2b9e48, - 0x2ba049, - 0x2ba946, - 0x2baac5, - 0x251986, - 0x2bb089, - 0x2d46c7, - 0x24e2c6, - 0x273307, - 0x37bd07, - 0x39d584, - 0x6c2f4bc9, - 0x39dc88, - 0x2bf008, - 0x200e07, - 0x2dc706, - 0x20db89, - 0x257f47, - 0x3c840a, - 0x3ce388, - 0x21f107, - 0x221886, - 0x29ac4a, - 0x3a6c88, - 0x2f8885, - 0x22f6c5, - 0x31bd47, - 0x324849, - 0x32864b, - 0x3bc408, - 0x341249, - 0x25b607, - 0x2cdbcc, - 0x2ce30c, - 0x2ce60a, - 0x2ce88c, - 0x2d8888, - 0x2d8a88, - 0x2d8c84, - 0x2d9409, - 0x2d9649, - 0x2d988a, - 0x2d9b09, - 0x2d9e87, - 0x3cb8cc, - 0x3e7f06, - 0x277a88, - 0x274106, - 0x392b46, - 0x394c87, - 0x3ab788, - 0x3499cb, - 0x207e07, - 0x263fc9, - 0x28d5c9, - 0x252907, - 0x24b5c4, - 0x26bfc7, - 0x2d2bc6, - 0x218946, - 0x217145, - 0x2db8c8, - 0x310704, - 0x310706, - 0x2b32cb, - 0x266749, - 0x25b246, - 0x228f09, - 0x214006, - 0x38f0c8, - 0x271f43, - 0x3bae45, - 0x218a89, - 0x3e97c5, - 0x308104, - 0x3b7146, - 0x36aa05, - 0x260006, - 0x31c407, - 0x2109c6, - 0x2374cb, - 0x3c2887, - 0x267786, - 0x27e3c6, - 0x3e0586, - 0x2d8649, - 0x20308a, - 0x2cfdc5, - 0x2fcb0d, - 0x2b2346, - 0x259946, - 0x2e2146, - 0x227b45, - 0x2f2847, - 0x233587, - 0x27ec0e, - 0x216443, - 0x2dc6c9, - 0x3a1c09, - 0x312b07, - 0x276e87, - 0x291945, - 0x2f3e45, - 0x6c609e0f, - 0x2e1a47, - 0x2e1c08, - 0x2e1f04, - 0x2e2446, - 0x6ca4f102, - 0x2e5b86, + 0x32e3c9, + 0x23ab47, + 0x21c106, + 0x257b09, + 0x2bc004, + 0x3e2886, + 0x2deb04, + 0x20de84, + 0x267f09, + 0x314a86, + 0x2bb4c5, + 0x27a245, + 0x235987, + 0x2d2187, + 0x305344, + 0x35eb06, + 0x2e88c5, + 0x3d7605, + 0x236245, + 0x24f647, + 0x359385, + 0x257609, + 0x372385, + 0x32ee04, + 0x22f787, + 0x3ce14e, + 0x209a09, + 0x335509, + 0x3681c6, + 0x24b088, + 0x3793cb, + 0x3bd38c, + 0x323ac6, + 0x2c5387, + 0x2f9185, + 0x30e20a, + 0x3d0cc9, + 0x20aa89, + 0x208186, + 0x3a6ec5, + 0x251b85, + 0x371809, + 0x2363cb, + 0x239186, + 0x353486, + 0x20d904, + 0x241f86, + 0x3086c8, + 0x3d38c6, + 0x242d46, + 0x204788, + 0x206f07, + 0x207f49, + 0x20cc05, + 0x7ffc8, + 0x3e0484, + 0x317644, + 0x212a45, + 0x343a49, + 0x2292c7, + 0x2292cb, + 0x22c3ca, + 0x22f2c5, + 0x6aa0a582, + 0x3d79c7, + 0x6ae2fbc8, + 0x2083c7, + 0x223a85, + 0x2449ca, + 0x5842, + 0x28f84b, + 0x29090a, + 0x279746, + 0x2114c3, + 0x21438d, + 0x3d250c, + 0x3d628d, + 0x245b45, + 0x36cdc5, + 0x2642c7, + 0x3db089, + 0x22ac46, + 0x256005, + 0x30d0c8, + 0x241e83, + 0x350088, + 0x241e88, + 0x3c6b07, + 0x2f0308, + 0x310589, + 0x33edc7, + 0x2368c7, + 0x209348, + 0x25e1c4, + 0x25e1c7, + 0x282b08, + 0x365746, + 0x20668f, + 0x35bcc7, + 0x35e606, + 0x3eacc5, + 0x22a8c3, + 0x253847, + 0x395c03, + 0x25a2c6, + 0x25d7c6, + 0x25eac6, + 0x2a3e05, + 0x279c43, + 0x32cfc8, + 0x3aa189, + 0x25ec4b, + 0x25ef08, + 0x260445, + 0x2629c5, + 0x6b262642, + 0x269049, + 0x3d1bc7, + 0x213805, + 0x267e07, + 0x269c46, + 0x26ae05, + 0x26c74b, + 0x270f44, + 0x275fc5, + 0x276107, + 0x289746, + 0x28a185, + 0x296347, + 0x296f87, + 0x2cc984, + 0x2b758a, + 0x2fabc8, + 0x379689, + 0x2f9505, + 0x2464c6, + 0x30888a, + 0x27a146, + 0x396907, + 0x27c50d, + 0x2b4fc9, + 0x389205, + 0x3b7007, + 0x3cdc48, + 0x385b88, + 0x32b107, + 0x367e86, + 0x21c507, + 0x267883, + 0x314a04, + 0x38abc5, + 0x3b76c7, + 0x3bffc9, + 0x234488, + 0x396805, + 0x2421c4, + 0x2544c5, + 0x25f0cd, + 0x2086c2, + 0x228346, + 0x2c9706, + 0x3097ca, + 0x3a8b86, + 0x3b40c5, + 0x2defc5, + 0x2defc7, + 0x3b968c, + 0x2b278a, + 0x29da06, + 0x2ed645, + 0x241dc6, + 0x29fac7, + 0x2a1f06, + 0x2a3d0c, + 0x257c49, + 0x6b61c907, + 0x2a5e85, + 0x2a5e86, + 0x2a6248, + 0x256505, + 0x2b5705, + 0x2b5bc8, + 0x2b5dca, + 0x6ba27e02, + 0x6be10802, + 0x21b485, + 0x30bac3, + 0x336a48, + 0x24bc83, + 0x2b6044, + 0x39190b, + 0x3c5c88, + 0x2bda08, + 0x6c340949, + 0x2bd309, + 0x2be006, + 0x2bf788, + 0x2bf989, + 0x2c1046, + 0x2c11c5, + 0x254646, + 0x2c1789, + 0x2d6487, + 0x24c5c6, + 0x2bc547, + 0x34a147, + 0x3a6c84, + 0x6c609189, + 0x38c208, + 0x2c65c8, + 0x393887, + 0x2e2746, + 0x3dae89, + 0x25da07, + 0x3cc38a, + 0x3d2c88, + 0x224a07, + 0x231546, + 0x3affca, + 0x3ac908, + 0x31f445, + 0x22e5c5, + 0x319f87, + 0x324689, + 0x326a8b, + 0x3c0588, + 0x372409, + 0x25f847, + 0x2d2acc, + 0x2d350c, + 0x2d380a, + 0x2d3a8c, + 0x2de688, + 0x2de888, + 0x2dea84, + 0x2df209, + 0x2df449, + 0x2df68a, + 0x2df909, + 0x2dfc87, + 0x20878c, + 0x3cefc6, + 0x27bec8, + 0x27a206, + 0x2f5c06, + 0x389107, + 0x39c208, + 0x3e2e4b, + 0x208287, + 0x26fa89, + 0x292f49, + 0x38d487, + 0x207484, + 0x269247, + 0x31fe46, + 0x217246, + 0x21a4c5, + 0x3b03c8, + 0x3494c4, + 0x3494c6, + 0x2b264b, + 0x269889, + 0x24f546, + 0x242f49, + 0x212b06, + 0x39a308, + 0x20d003, + 0x3a7045, + 0x21e3c9, + 0x3a98c5, + 0x3619c4, + 0x383706, + 0x3250c5, + 0x263c06, + 0x31ac07, + 0x210286, + 0x2707cb, + 0x26c3c7, + 0x27d286, + 0x28f486, + 0x235a46, + 0x305309, + 0x200b4a, + 0x2d59c5, + 0x2ccc0d, + 0x2b5ec6, + 0x25d646, + 0x2d5546, + 0x222005, + 0x2fa3c7, + 0x3d6847, + 0x314e0e, + 0x219c03, + 0x2e2709, + 0x286809, + 0x2356c7, + 0x27e5c7, + 0x3317c5, + 0x2dbc85, + 0x6cb8724f, + 0x2e7947, + 0x2e7b08, + 0x2e7fc4, 0x2e8306, - 0x30f40e, - 0x35870a, - 0x2c7906, - 0x21498a, - 0x20d109, - 0x23f7c5, - 0x30bfc8, - 0x3dc706, - 0x2be208, - 0x343648, - 0x285dcb, - 0x39a685, - 0x3c76c8, - 0x204ccc, - 0x21c107, - 0x259b86, - 0x36a848, - 0x349688, - 0x6ce4ba82, - 0x32e38b, - 0x211e89, - 0x20a449, - 0x3c2187, - 0x3a8bc8, - 0x6d21e1c8, - 0x32c1cb, - 0x268d09, - 0x29420d, - 0x306f08, - 0x3c5088, - 0x6d603c82, - 0x210c84, - 0x6da386c2, - 0x377a06, - 0x6de00e42, - 0x3022ca, - 0x2b0606, - 0x22fc48, - 0x2b1e48, - 0x260946, - 0x2c37c6, - 0x3090c6, - 0x3e5505, - 0x2417c4, - 0x6e235504, - 0x3597c6, - 0x281447, - 0x6e684ec7, - 0x391e0b, - 0x208149, - 0x2bdd8a, - 0x2d9304, - 0x258208, - 0x24e08d, - 0x302bc9, - 0x302e08, - 0x303089, - 0x305504, - 0x251104, - 0x28c445, - 0x20508b, - 0x223146, - 0x359605, - 0x23f349, - 0x3220c8, - 0x2aeb04, - 0x312889, - 0x21eec5, - 0x2d3bc8, - 0x2f6a07, - 0x340d88, - 0x28cf06, - 0x206d47, - 0x2ecf49, - 0x203809, - 0x22f845, - 0x2b0d05, - 0x6ea1f182, - 0x33e7c4, - 0x244985, - 0x39a486, - 0x34b885, - 0x303c87, - 0x3598c5, - 0x281a44, - 0x36cec6, - 0x24ca07, - 0x3a01c6, - 0x32c605, - 0x212788, - 0x20af45, - 0x21b207, - 0x22c649, - 0x26688a, - 0x2344c7, - 0x2344cc, - 0x236ac6, - 0x242d89, - 0x24c505, - 0x24c7c8, - 0x22ea03, - 0x230445, - 0x2c7d85, - 0x286a07, - 0x6ee01242, - 0x2fe1c7, - 0x2eef06, - 0x3ad646, - 0x2f2006, - 0x3495c6, - 0x24b9c8, - 0x283885, - 0x321bc7, - 0x321bcd, - 0x20b5c3, - 0x3e83c5, - 0x3c7f87, - 0x2fe508, - 0x3c7b45, - 0x21f908, - 0x35b2c6, - 0x2ea3c7, - 0x2f5685, - 0x39a706, - 0x3973c5, - 0x22554a, - 0x2f9546, - 0x2315c7, - 0x320285, - 0x2fdec7, - 0x301804, - 0x308086, - 0x30bf05, - 0x23640b, - 0x2d2a49, - 0x28bc0a, - 0x22f8c8, - 0x377b48, - 0x30fecc, - 0x310c87, - 0x31ea88, - 0x391308, - 0x3d65c5, - 0x32a40a, - 0x34f9c9, - 0x6f200ec2, - 0x210606, - 0x24c004, - 0x300c89, - 0x247989, - 0x24eec7, - 0x284447, - 0x2a0d09, - 0x32aac8, - 0x32aacf, - 0x22dd46, - 0x2e9ecb, - 0x261445, - 0x261447, - 0x3572c9, - 0x22a186, - 0x312807, - 0x2ee685, - 0x23a944, - 0x34cb86, - 0x2174c4, - 0x2c9147, - 0x360648, - 0x6f7babc8, - 0x30d045, - 0x30d187, - 0x351bc9, - 0x211c44, - 0x24a5c8, - 0x6fb04c88, - 0x2e20c4, - 0x33ed08, - 0x32ce84, - 0x217389, - 0x227a85, - 0x6fe13402, - 0x22dd85, - 0x2ed405, - 0x3b69c8, - 0x23cf87, - 0x702008c2, - 0x3c2645, - 0x2e4146, - 0x25fb06, - 0x33e788, - 0x348688, - 0x34b846, - 0x37dcc6, - 0x2f00c9, - 0x3ad586, - 0x22a04b, - 0x349345, - 0x259386, - 0x261f88, - 0x362646, - 0x29e506, - 0x22000a, - 0x2e530a, - 0x22be45, - 0x24f187, - 0x27f886, - 0x70605002, - 0x3c80c7, - 0x38fb05, - 0x308744, - 0x308745, - 0x258106, - 0x27df47, - 0x2247c5, - 0x247a44, - 0x2e2708, - 0x29e5c5, - 0x355387, - 0x383485, - 0x225485, - 0x265c84, - 0x265c89, - 0x306008, - 0x2017c6, - 0x347706, - 0x3b6c06, - 0x70bd38c8, - 0x3dc2c7, - 0x31490d, - 0x314ecc, - 0x3154c9, - 0x315709, - 0x70f75ac2, - 0x3db703, - 0x22bec3, - 0x2d2c85, - 0x3b154a, - 0x33e646, - 0x34ce85, - 0x31cbc4, - 0x31cbcb, - 0x33508c, - 0x33594c, - 0x335c55, - 0x33698d, - 0x338a8f, - 0x338e52, - 0x3392cf, - 0x339692, - 0x339b13, + 0x6ce51882, + 0x2ec3c6, + 0x2edcc6, + 0x374a0e, + 0x34feca, + 0x214806, + 0x2cdd4a, + 0x3d6089, + 0x3023c5, + 0x2d8548, + 0x301186, + 0x2c4f88, + 0x385348, + 0x32234b, + 0x3a34c5, + 0x359408, + 0x2048cc, + 0x223947, + 0x25e646, + 0x3b2d88, + 0x3e2b08, + 0x6d216602, + 0x201ccb, + 0x392889, + 0x20ce09, + 0x3d1707, + 0x35e048, + 0x6d615f88, + 0x38480b, + 0x26e189, + 0x262f4d, + 0x385188, + 0x2d4e48, + 0x6da00f82, + 0x3ef104, + 0x6de47f42, + 0x365c06, + 0x6e201a42, + 0x3021ca, + 0x2b5586, + 0x230388, + 0x2583c8, + 0x264bc6, + 0x330846, + 0x309186, + 0x250005, + 0x245704, + 0x6e655cc4, + 0x358806, + 0x251647, + 0x6ea8d407, + 0x39e54b, + 0x2085c9, + 0x36ce0a, + 0x2df104, + 0x25dcc8, + 0x24c38d, + 0x302949, + 0x302b88, + 0x302e09, + 0x305744, + 0x230d44, + 0x291dc5, + 0x204c8b, + 0x3c5c06, + 0x358645, + 0x241949, + 0x35ebc8, + 0x26ae44, + 0x30e389, + 0x270705, + 0x2d21c8, + 0x236f87, + 0x335908, + 0x292886, + 0x3d5707, + 0x2f3589, + 0x381ec9, + 0x218c05, + 0x245a05, + 0x6ee09702, + 0x32ebc4, + 0x38a845, + 0x3a32c6, + 0x33ea05, + 0x262a87, + 0x303a05, + 0x287004, + 0x368286, + 0x256087, + 0x220bc6, + 0x330b45, + 0x21ae08, + 0x3d1285, + 0x228047, + 0x22f989, + 0x2699ca, + 0x2baac7, + 0x2baacc, + 0x2bb486, + 0x24d809, + 0x254345, + 0x256448, + 0x218a43, + 0x2c97c5, + 0x2ef5c5, + 0x24dc07, + 0x6f200bc2, + 0x2fef07, + 0x2e38c6, + 0x387e86, + 0x2ebd46, + 0x3e2a46, + 0x253548, + 0x3cc045, + 0x35e6c7, + 0x35e6cd, + 0x254a43, + 0x3cf485, + 0x359cc7, + 0x2ff248, + 0x359885, + 0x21f1c8, + 0x38a2c6, + 0x2a6bc7, + 0x2f5b45, + 0x3a3546, + 0x32d545, + 0x20c58a, + 0x2f9946, + 0x243cc7, + 0x2c6cc5, + 0x2fa847, + 0x2fb0c4, + 0x361946, + 0x3010c5, + 0x232f4b, + 0x31fcc9, + 0x289f0a, + 0x218c88, + 0x308388, + 0x30c28c, + 0x30dc87, + 0x30f408, + 0x388cc8, + 0x32f245, + 0x31a4ca, + 0x31e6c9, + 0x6f601402, + 0x20fec6, + 0x224804, + 0x2276c9, + 0x350bc9, + 0x312fc7, + 0x281687, + 0x288389, + 0x35a8c8, + 0x35a8cf, + 0x234046, + 0x2f160b, + 0x266b05, + 0x266b07, + 0x337789, + 0x30e306, + 0x30e307, + 0x2f4b45, + 0x23bb04, + 0x2a8746, + 0x215784, + 0x2cee87, + 0x2db048, + 0x6fba6dc8, + 0x3b8845, + 0x3bc687, + 0x2d9589, + 0x21a004, + 0x24cf48, + 0x6ff04708, + 0x2d54c4, + 0x30b548, + 0x3862c4, + 0x215649, + 0x221f45, + 0x70208ec2, + 0x234085, + 0x3aba85, + 0x3b6d08, + 0x23f7c7, + 0x706008c2, + 0x371bc5, + 0x2ea7c6, + 0x25e946, + 0x32eb88, + 0x366e48, + 0x33e9c6, + 0x31d946, + 0x2fd209, + 0x387dc6, + 0x3e068b, + 0x3e27c5, + 0x25d086, + 0x266548, + 0x366b06, + 0x2a5346, + 0x21f8ca, + 0x2eb7ca, + 0x264485, + 0x286a87, + 0x2852c6, + 0x70a04c02, + 0x359e07, + 0x3e1285, + 0x308804, + 0x308805, + 0x25dbc6, + 0x2686c7, + 0x20b785, + 0x2eb944, + 0x2e85c8, + 0x2a5405, + 0x2f6ac7, + 0x32a285, + 0x20c4c5, + 0x229604, + 0x229609, + 0x2e8708, + 0x20b0c6, + 0x217e86, + 0x3ce5c6, + 0x70ec3648, + 0x306247, + 0x33e5cd, + 0x3dcb8c, + 0x3e79c9, + 0x313549, + 0x7137e082, + 0x3e6403, + 0x246583, + 0x31ff05, + 0x3b77ca, + 0x33e406, + 0x241145, + 0x31b544, + 0x31b54b, + 0x333e8c, + 0x33474c, + 0x334a55, + 0x33660d, + 0x3384cf, + 0x338892, + 0x338d0f, + 0x3390d2, + 0x339553, + 0x339a0d, 0x339fcd, - 0x33a58d, - 0x33a90e, - 0x33b2ce, - 0x33b9cc, - 0x33bd8c, - 0x33c1cb, - 0x33cc4e, - 0x33d552, - 0x33e40c, - 0x33f5d0, - 0x34cfd2, - 0x34e1cc, - 0x34e88d, - 0x34ebcc, - 0x350dd1, - 0x35228d, - 0x355f8d, - 0x35658a, - 0x35680c, - 0x357ccc, - 0x35930c, - 0x359ccc, - 0x35dad3, - 0x35e550, - 0x35e950, - 0x35f34d, - 0x35f94c, - 0x360ac9, - 0x36290d, - 0x362c53, - 0x364b11, - 0x365313, - 0x36664f, - 0x366a0c, - 0x366d0f, - 0x3670cd, - 0x3676cf, - 0x367a90, - 0x36850e, - 0x36d54e, - 0x36de90, - 0x36ea8d, - 0x36f40e, - 0x36f78c, - 0x3708d3, - 0x3725ce, - 0x373310, - 0x373711, - 0x373b4f, - 0x373f13, - 0x37564d, - 0x37598f, - 0x375d4e, - 0x3762d0, - 0x3766c9, - 0x377d50, - 0x37824f, - 0x3788cf, - 0x378c92, - 0x37c3ce, - 0x37d94d, - 0x37e00d, - 0x37e34d, - 0x37f9cd, - 0x37fd0d, - 0x380050, - 0x38044b, - 0x380d4c, - 0x3810cc, - 0x3816cc, - 0x3819ce, - 0x390450, - 0x392492, - 0x39290b, - 0x3938ce, - 0x393c4e, - 0x3944ce, - 0x394a4b, - 0x71394ed6, - 0x395e0d, - 0x396994, - 0x39768d, - 0x399cd5, - 0x39b8cd, - 0x39c24f, - 0x39cb8f, - 0x3a3f4f, - 0x3a430e, - 0x3a468d, - 0x3a6611, - 0x3aaf4c, - 0x3ab24c, - 0x3ab54b, - 0x3ab98c, - 0x3ac40f, - 0x3ac7d2, - 0x3acdcd, - 0x3ae1cc, - 0x3aec8c, - 0x3aef8d, - 0x3af2cf, - 0x3af68e, - 0x3b120c, - 0x3b17cd, - 0x3b1b0b, - 0x3b23cc, - 0x3b318d, - 0x3b34ce, - 0x3b3849, - 0x3b50d3, - 0x3b798d, - 0x3b808d, - 0x3b868c, - 0x3b8d0e, - 0x3b958f, - 0x3b994c, - 0x3b9c4d, - 0x3b9f8f, - 0x3ba34c, - 0x3bb38c, - 0x3bb90c, + 0x33a34e, + 0x33ac4e, + 0x33b24c, + 0x33b60c, + 0x33ba4b, + 0x33ca0e, + 0x33d312, + 0x33e1cc, + 0x33f4d0, + 0x34ca92, + 0x34db0c, + 0x34e1cd, + 0x34e50c, + 0x351fd1, + 0x35360d, + 0x3556cd, + 0x355cca, + 0x355f4c, + 0x357b8c, + 0x35834c, + 0x35ac8c, + 0x360213, + 0x360c10, + 0x361010, + 0x361dcd, + 0x3623cc, + 0x3648c9, + 0x36704d, + 0x367393, + 0x368f11, + 0x369713, + 0x36a78f, + 0x36ab4c, + 0x36ae4f, + 0x36b20d, + 0x36b80f, + 0x36bbd0, + 0x36c64e, + 0x37554e, + 0x375e90, + 0x376a8d, + 0x37740e, + 0x37778c, + 0x378e53, + 0x37b50e, + 0x37c250, + 0x37c651, + 0x37ca8f, + 0x37ce53, + 0x37dc0d, + 0x37df4f, + 0x37e30e, + 0x37e890, + 0x37ec89, + 0x37fdd0, + 0x3802cf, + 0x38094f, + 0x380d12, + 0x38210e, + 0x387a4d, + 0x38800d, + 0x38834d, + 0x38934d, + 0x38968d, + 0x3899d0, + 0x389dcb, + 0x38a98c, + 0x38ad0c, + 0x38b30c, + 0x38b60e, + 0x39a510, + 0x39bb52, + 0x39bfcb, + 0x39c40e, + 0x39c78e, + 0x39d00e, + 0x39d58b, + 0x7179d916, + 0x39edcd, + 0x39fa14, + 0x3a0a4d, + 0x3a2b15, + 0x3a514d, + 0x3a5acf, + 0x3a628f, + 0x3aa3cf, + 0x3aa78e, + 0x3aab0d, + 0x3ac291, + 0x3af1cc, + 0x3af4cc, + 0x3af7cb, + 0x3afa8c, + 0x3b05cf, + 0x3b0992, + 0x3b0f8d, + 0x3b21cc, + 0x3b310c, + 0x3b340d, + 0x3b374f, + 0x3b3b0e, + 0x3b748c, + 0x3b7a4d, + 0x3b7d8b, + 0x3b834c, + 0x3b8d0d, + 0x3b904e, + 0x3b93c9, + 0x3ba753, + 0x3baf0d, + 0x3bb60d, 0x3bbc0c, - 0x3bc8cd, - 0x3bcc12, - 0x3bd38c, - 0x3bd68c, - 0x3bd991, - 0x3bddcf, - 0x3be18f, - 0x3be553, - 0x3bf34e, - 0x3bf6cf, + 0x3bc28e, + 0x3bdecf, + 0x3be28c, + 0x3be58d, + 0x3be8cf, + 0x3bec8c, + 0x3bf50c, 0x3bfa8c, - 0x717c014e, - 0x3c04cf, - 0x3c0896, - 0x3c1b92, - 0x3c528c, - 0x3c618f, - 0x3c680d, - 0x3d294f, - 0x3d2d0c, - 0x3d300d, - 0x3d334d, - 0x3d51ce, - 0x3d5d0c, - 0x3d914c, - 0x3d9450, - 0x3daa91, - 0x3daecb, - 0x3db30c, - 0x3db60e, - 0x3dd8d1, - 0x3ddd0e, - 0x3de08d, - 0x3e5f8b, - 0x3e688f, - 0x3e74d4, - 0x2038c2, - 0x2038c2, - 0x204cc3, - 0x2038c2, - 0x204cc3, - 0x2038c2, - 0x201082, - 0x2519c5, - 0x3dd5cc, - 0x2038c2, - 0x2038c2, - 0x201082, - 0x2038c2, - 0x2a0905, - 0x266885, - 0x2038c2, - 0x2038c2, - 0x20bd42, - 0x2a0905, - 0x337209, - 0x36480c, - 0x2038c2, - 0x2038c2, - 0x2038c2, - 0x2038c2, - 0x2519c5, - 0x2038c2, - 0x2038c2, - 0x2038c2, - 0x2038c2, - 0x20bd42, - 0x337209, - 0x2038c2, - 0x2038c2, - 0x2038c2, - 0x266885, - 0x2038c2, - 0x266885, - 0x36480c, - 0x3dd5cc, - 0x253c43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x2296c3, - 0x20cb83, - 0x3c4f, - 0x12d248, - 0x6f7c4, - 0xd903, - 0x17b4c8, - 0x1d5b83, + 0x3bfd8c, + 0x3c0c4d, + 0x3c0f92, + 0x3c1a0c, + 0x3c1d0c, + 0x3c2011, + 0x3c244f, + 0x3c280f, + 0x3c2bd3, + 0x3c3ece, + 0x3c424f, + 0x3c460c, + 0x71bc4cce, + 0x3c504f, + 0x3c5416, + 0x3c6652, + 0x3c920c, + 0x3ca10f, + 0x3ca78d, + 0x3dbc0f, + 0x3dbfcc, + 0x3dc2cd, + 0x3dc60d, + 0x3de74e, + 0x3df30c, + 0x3e32cc, + 0x3e35d0, + 0x3e5791, + 0x3e5bcb, + 0x3e600c, + 0x3e630e, + 0x3e7f11, + 0x3e834e, + 0x3e86cd, + 0x3ed6cb, + 0x3ee20f, + 0x3eebd4, + 0x21e682, + 0x21e682, + 0x2048c3, + 0x21e682, + 0x2048c3, + 0x21e682, + 0x204fc2, + 0x254685, + 0x3e7c0c, + 0x21e682, + 0x21e682, + 0x204fc2, + 0x21e682, + 0x2a7045, + 0x2699c5, + 0x21e682, + 0x21e682, + 0x202a02, + 0x2a7045, + 0x336c49, + 0x368c0c, + 0x21e682, + 0x21e682, + 0x21e682, + 0x21e682, + 0x254685, + 0x21e682, + 0x21e682, + 0x21e682, + 0x21e682, + 0x202a02, + 0x336c49, + 0x21e682, + 0x21e682, + 0x21e682, + 0x2699c5, + 0x21e682, + 0x2699c5, + 0x368c0c, + 0x3e7c0c, + 0x258843, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x2127c3, + 0x21f483, + 0x31cf, + 0xa788, + 0x75bc4, + 0xbc03, + 0xe44c8, + 0x1df183, 0x2000c2, - 0x72616542, - 0x249f03, - 0x23adc4, - 0x204f03, - 0x36c284, - 0x239c86, - 0x220e43, - 0x3b7004, - 0x2999c5, - 0x216443, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x23098a, - 0x259186, - 0x393fcc, - 0x793c8, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x233243, - 0x2e8306, - 0x2296c3, - 0x20cb83, - 0x21f6c3, - 0x39fc3, - 0xb4388, - 0x731e7c45, - 0x7c4c7, - 0xb1845, - 0x52547, - 0x146c05, - 0x4009, - 0xad42, - 0x1c138a, - 0x73f2d5c5, - 0x146c05, - 0x34347, - 0x16108, - 0x10d8e, - 0x95292, - 0x130e0b, - 0x1e1d46, - 0x742ea205, - 0x7479e04c, - 0x10de07, - 0xb46c7, - 0x1b620a, - 0x44ad0, - 0x17be85, - 0xc5e4b, - 0x1dcf08, - 0x3e1c7, - 0x3aa4b, - 0x51b89, - 0x873c7, - 0xf4547, - 0x187407, - 0x3e106, - 0x1c74c8, - 0x74c32f46, - 0x46bc7, - 0xc7e86, - 0xb8d0d, - 0x96110, - 0x75013242, - 0x1cdd88, - 0x184590, - 0x18ed0c, - 0x7578f54d, - 0x68508, - 0x6898b, - 0x76447, - 0x19a49, - 0x62246, - 0xa0488, - 0x5102, - 0x9c50a, - 0x36947, - 0xb8847, - 0xb4e49, - 0xb7288, - 0x154645, - 0x190a86, - 0x6ac6, - 0x1040ce, - 0x422ce, - 0x4aecf, - 0x5e789, - 0x932c9, - 0x9c08b, - 0xbb44f, - 0x1dd2cc, - 0xd4f4b, - 0x1b9248, - 0x191d07, - 0x19b308, - 0xbc0cb, - 0xbca0c, - 0xbce0c, - 0xbd20c, - 0xbd50d, - 0x1bc248, - 0x5adc2, - 0x1971c9, - 0x46688, - 0xda88b, - 0xdc906, - 0xe3acb, - 0x13d08b, - 0xeddca, - 0xeec85, - 0xf2550, - 0xf8286, - 0x583c6, - 0x10f7c5, - 0x120047, - 0xfa348, - 0xff487, - 0xff747, - 0x69587, - 0xd1846, - 0x17784a, - 0xb400a, - 0x30846, - 0xb860d, - 0x46c88, - 0x118d88, - 0xef809, - 0x1b2a09, - 0xcc205, - 0x176a8c, - 0xbd70b, - 0x10d989, - 0x112cc4, - 0x114549, - 0x114786, - 0x143506, - 0x4a42, - 0x13906, - 0x80c8b, - 0x11de07, - 0x11dfc7, - 0xe042, - 0xde645, - 0x9204, + 0x72a05842, + 0x24c883, + 0x23bf84, + 0x204b03, + 0x2e9c44, + 0x2389c6, + 0x20f503, + 0x3835c4, + 0x2aaf45, + 0x219c03, + 0x2127c3, + 0x81983, + 0x21f483, + 0x22600a, + 0x25ce86, + 0x39cb0c, + 0x7ffc8, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2335c3, + 0x2edcc6, + 0x2127c3, + 0x21f483, + 0x202783, + 0x13803, + 0xb7048, + 0x735eb785, + 0x80407, + 0x57dc5, + 0x1c387, + 0x145d45, + 0x3589, + 0x2c02, + 0x1cb20a, + 0x74332b45, + 0x145d45, + 0x110947, + 0x29b08, + 0x1060e, + 0x9a352, + 0x12dc8b, + 0x1146c6, + 0x746f8c05, + 0x74b8c5cc, + 0x8e07, + 0xf1a47, + 0x1b654a, + 0x47cd0, + 0xc7c5, + 0xb2e8b, + 0xd1e88, + 0x40787, + 0x3bc0b, + 0xa54c9, + 0x54847, + 0x1cd787, + 0x393c7, + 0x406c6, + 0x1db408, + 0x750332c6, + 0x56607, + 0xef6c6, + 0xbe10d, + 0x5de50, + 0x75406cc2, + 0x1cd608, + 0x199810, + 0x199f4c, + 0x75b9fecd, + 0x6d988, + 0x6de0b, + 0x7d747, + 0x9e6c9, + 0x66806, + 0xa6448, + 0x4d02, + 0x6b04a, + 0x150407, + 0xbd847, + 0xb92c9, + 0xbb988, + 0x146bc5, + 0x19ab46, + 0x1d71c6, + 0x103e4e, + 0x3c4ce, + 0x4b6cf, + 0x56a09, + 0x90249, + 0x1dda0b, + 0xc1b4f, + 0x17d90c, + 0xd71cb, + 0x11b208, + 0x19e447, + 0x1abd88, + 0xc2e8b, + 0xc384c, + 0xc3c4c, + 0xc404c, + 0xc434d, + 0x1c03c8, + 0x803c2, + 0x12d349, + 0x191648, + 0xe068b, + 0xe2946, + 0xea14b, + 0x13ce4b, + 0xf428a, + 0xf58c5, + 0xfa0d0, + 0xfd8c6, + 0x1683c6, + 0xcab05, + 0xd5247, + 0xec648, + 0xff7c7, + 0xffa87, + 0x121587, + 0xd7606, + 0x165a4a, + 0xa1b8a, + 0x18a46, + 0xbd60d, + 0x566c8, + 0x1167c8, + 0x1a5e89, + 0x4be49, + 0xd1445, + 0x15804c, + 0xc454b, + 0x184109, + 0x18de04, + 0x113189, + 0x1133c6, + 0x15fa86, + 0x1b02, + 0x5b646, + 0x4bfcb, + 0x11d147, + 0x11d307, + 0x4182, + 0xe3f05, + 0x29c84, 0x101, - 0x5b843, - 0x74b26806, - 0xa0803, + 0x5fdc3, + 0x74f4c586, + 0xa6b83, 0x382, - 0x1504, + 0xae04, 0xac2, - 0x5dd04, + 0x9f804, 0x882, - 0x8502, - 0x4702, - 0x128c42, - 0x4182, - 0xea202, - 0xd42, - 0x2e702, - 0x3fb82, - 0xc542, - 0x3242, - 0x57f02, - 0x22bc3, + 0x1e02, + 0x2b82, + 0x127082, + 0x3702, + 0xb79c2, + 0x2102, + 0xb90c2, + 0x38fc2, + 0x1bc2, + 0xd02, + 0x5d9c2, + 0x24d03, 0x942, - 0x2bc2, - 0x18242, - 0xeb02, + 0x3642, + 0x18b02, + 0x2e42, 0x642, - 0x3b342, - 0x1ec82, - 0x8e82, - 0x5502, + 0x3cac2, + 0x1d7c2, + 0x75c2, + 0x9c42, 0x5c2, - 0x43543, - 0x2642, - 0x6002, - 0x54202, - 0x7bc2, - 0x9d42, - 0x10442, - 0x205c2, - 0x11de42, - 0x1582, - 0x10f082, - 0x77782, - 0xa9542, - 0x296c3, + 0x5e043, + 0x3382, + 0x5fc2, + 0x58e02, + 0x8042, + 0xb982, + 0xfd02, + 0x2d442, + 0x2c82, + 0x26c2, + 0xbdc2, + 0x7eec2, + 0x5582, + 0x127c3, 0x602, - 0x4ba82, - 0x1cc2, - 0x2d4c2, - 0x2f7c5, - 0x59c2, - 0x4cec2, - 0x179e43, + 0x16602, + 0x1242, + 0x1c682, + 0x18b85, + 0x6582, + 0x85042, + 0x172303, 0x682, - 0x4a02, - 0x1702, - 0x4ac2, - 0xb5c2, + 0x9942, + 0x33c2, + 0x5f82, + 0x12882, 0x8c2, - 0x6502, - 0x4a42, - 0x3ec5, - 0x75a01082, - 0x75eecb83, - 0x9983, - 0x76201082, - 0x9983, - 0xdc1c7, - 0x215483, + 0x9e42, + 0x1b02, + 0x2cc5, + 0x75e04fc2, + 0x762f3143, + 0x2043, + 0x76604fc2, + 0x2043, + 0xe2207, + 0x2029c3, 0x2000c2, - 0x216543, - 0x222bc3, - 0x2f5503, + 0x229f43, + 0x224d03, + 0x28c6c3, 0x2005c3, - 0x233243, - 0x2296c3, - 0x20d903, - 0x20cb83, - 0x2a0843, - 0xcc244, - 0x143845, - 0x1084c5, - 0x1a143, - 0x793c8, - 0x216543, - 0x222bc3, - 0x2f5503, - 0x216443, - 0x2296c3, - 0x20d903, - 0x7ca83, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, + 0x2335c3, + 0x2127c3, + 0x20bc03, + 0x21f483, + 0x39ac43, + 0x16fe06, + 0xd1484, + 0x17585, + 0x108585, + 0xb8c3, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x28c6c3, + 0x219c03, + 0x2127c3, + 0x20bc03, + 0x81983, + 0x21f483, + 0x229f43, + 0x224d03, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, 0x200181, - 0x216443, - 0x2296c3, - 0x257743, - 0x20cb83, - 0x1a3904, - 0x253c43, - 0x216543, - 0x222bc3, - 0x2163c3, - 0x2f5503, - 0x322603, - 0x285483, - 0x2b05c3, - 0x205383, - 0x343b43, - 0x2b1b84, - 0x2296c3, - 0x20cb83, - 0x201643, - 0x202304, - 0x239843, - 0x3b43, - 0x2133c3, - 0x32f308, - 0x29ac84, + 0x219c03, + 0x2127c3, + 0x25c743, + 0x21f483, + 0x2ec4, + 0x258843, + 0x229f43, + 0x224d03, + 0x229dc3, + 0x28c6c3, + 0x25c783, + 0x244d83, + 0x2b5543, + 0x204f83, + 0x2e9c43, + 0x258104, + 0x2127c3, + 0x21f483, + 0x205ec3, + 0x209f84, + 0x239343, + 0x30c3, + 0x220cc3, + 0x32bd48, + 0x349f84, 0x20020a, - 0x25afc6, - 0x1519c4, - 0x3bd047, - 0x22820a, - 0x22dc09, - 0x3c9ec7, - 0x3cc38a, - 0x253c43, - 0x368b8b, - 0x20c389, - 0x31f4c5, - 0x20cd87, - 0x16542, - 0x216543, - 0x226f07, - 0x2224c5, - 0x2d8e09, - 0x222bc3, - 0x34bc46, - 0x32a4c3, - 0xd2b03, - 0x11bc06, - 0x17a2c6, - 0x20dc7, - 0x229a46, - 0x231f45, - 0x20a307, - 0x319507, - 0x78f43b43, - 0x34e407, - 0x3b29c3, - 0x2712c5, - 0x2b1b84, - 0x2c2188, - 0x3db94c, - 0x2c1305, - 0x2b01c6, - 0x226dc7, - 0x35b907, - 0x2678c7, - 0x26c148, - 0x31ae8f, - 0x27b905, - 0x24a007, - 0x2151c7, - 0x28974a, - 0x37f609, - 0x330145, - 0x34da0a, - 0x101546, - 0xcc787, - 0x2d7e45, - 0x2f5744, - 0x340486, - 0xcb946, - 0x256ec7, - 0x25acc7, - 0x3b5b48, - 0x3d07c5, - 0x2223c6, - 0x2f048, - 0x228c85, - 0x28e46, - 0x240305, - 0x288284, - 0x21ef87, - 0x24b80a, - 0x2aab88, - 0x3e3cc6, - 0x33243, - 0x2efe85, - 0x3d8586, - 0x3cbb06, - 0x30f6c6, - 0x216443, - 0x3ad047, - 0x215145, - 0x2296c3, - 0x2ee08d, - 0x20d903, - 0x3b5c48, - 0x243444, - 0x281d05, - 0x2b2506, - 0x32e106, - 0x259287, - 0x268bc7, - 0x27c805, - 0x20cb83, - 0x3a20c7, - 0x24b489, - 0x36a249, - 0x382d0a, - 0x23d7c2, - 0x271284, - 0x3211c4, - 0x2fda07, - 0x2fe088, - 0x300709, - 0x3e8289, - 0x301107, - 0x10a949, - 0x2132c6, - 0x103e46, - 0x305504, - 0x3b4e4a, - 0x307e08, - 0x308f89, - 0x309246, - 0x2c7245, - 0x2aaa48, - 0x2dcb8a, - 0x27d683, - 0x202486, - 0x301207, - 0x2c8885, - 0x3c10c5, - 0x24da03, - 0x2d1984, - 0x22f685, - 0x291587, - 0x306145, - 0x2f2cc6, - 0x166105, - 0x2c79c3, - 0x2c79c9, - 0x281acc, - 0x2d06cc, - 0x3416c8, - 0x2a3e47, - 0x3101c8, - 0x110e47, - 0x3111ca, - 0x31188b, - 0x20c4c8, - 0x32e208, - 0x25d306, - 0x272145, - 0x33b5ca, - 0x2ecbc5, - 0x213402, - 0x2db6c7, - 0x27d046, - 0x377045, - 0x313149, - 0x27b485, - 0x1dea48, - 0x29d645, - 0x270e89, - 0x3d84c6, - 0x3407c8, - 0x31dd83, - 0x212c46, - 0x3b7086, - 0x31d845, - 0x31d849, - 0x2cee49, - 0x271ec7, - 0x120d84, - 0x320d87, - 0x3e8189, - 0x228405, - 0x418c8, - 0x379cc5, - 0x3a14c5, - 0x36bc09, - 0x202cc2, - 0x35a344, - 0x204542, - 0x202642, - 0x2ffc05, - 0x351748, - 0x2cc145, - 0x2da043, - 0x2da045, - 0x2e5d83, - 0x212202, - 0x333544, - 0x36a603, + 0x264086, + 0xd9384, + 0x3babc7, + 0x22688a, + 0x233f09, + 0x3cb087, + 0x3d018a, + 0x258843, + 0x21b50b, + 0x237ac9, + 0x36a2c5, + 0x2384c7, + 0x5842, + 0x229f43, + 0x246747, + 0x347a05, + 0x2dec09, + 0x224d03, + 0x22cb86, + 0x2dd343, + 0xe3943, + 0x119e46, + 0x173bc6, + 0xf487, + 0x213cc6, + 0x22dc45, + 0x20ccc7, + 0x316f07, + 0x792e9c43, + 0x34dd47, + 0x24be03, + 0x23aa45, + 0x258104, + 0x2c8888, + 0x3e664c, + 0x2c7c85, + 0x2b5146, + 0x246607, + 0x384407, + 0x27d3c7, + 0x290448, + 0x3190cf, + 0x372ac5, + 0x24c987, + 0x29cc87, + 0x249c4a, + 0x30cf09, + 0x32c545, + 0x34d4ca, + 0x1080c6, + 0xd1747, + 0x2dd3c5, + 0x397644, + 0x340386, + 0x14f0c6, + 0x25bb47, + 0x2e1687, + 0x209748, + 0x20d005, + 0x347906, + 0x43288, + 0x242cc5, + 0x42e86, + 0x318985, + 0x29bcc4, + 0x247907, + 0x25338a, + 0x2afe88, + 0x3d6cc6, + 0x335c3, + 0x2f7305, + 0x220346, + 0x2089c6, + 0x374cc6, + 0x219c03, + 0x3b1207, + 0x29cc05, + 0x2127c3, + 0x2f454d, + 0x20bc03, + 0x209848, + 0x23d404, + 0x220645, + 0x2b6086, + 0x201a46, + 0x25cf87, + 0x26e047, + 0x280745, + 0x21f483, + 0x3326c7, + 0x207349, + 0x246049, + 0x38cf8a, + 0x2020c2, + 0x23aa04, + 0x32c1c4, + 0x2fec07, + 0x2fedc8, + 0x300949, + 0x3cf349, + 0x3014c7, + 0x10c5c9, + 0x2b81c6, + 0x103bc6, + 0x305744, + 0x2353ca, + 0x307d48, + 0x309049, + 0x309306, + 0x2cd685, + 0x2afd48, + 0x2e2bca, + 0x21cb03, + 0x20a106, + 0x3015c7, + 0x35c0c5, + 0x84408, + 0x3c3345, + 0x216f03, + 0x24a3c4, + 0x4a3c9, + 0x22e585, + 0x297087, + 0x2e8845, + 0x2f1bc6, + 0x1063c5, + 0x2148c3, + 0x2148c9, + 0x22040c, + 0x2d320c, + 0x3485c8, + 0x2a0c47, + 0x3e4008, + 0x111547, + 0x3118ca, + 0x311f8b, + 0x237c08, + 0x201b48, + 0x260fc6, + 0x31c245, + 0x284d8a, + 0x3da585, + 0x208ec2, + 0x2e1487, + 0x278606, + 0x37f485, + 0x3977c9, + 0x36f885, + 0x1d2348, + 0x2a3585, + 0x23a609, + 0x322dc6, + 0x3406c8, + 0x246ec3, + 0x211706, + 0x383646, + 0x31cb85, + 0x31cb89, + 0x287109, + 0x284b07, + 0x120c44, + 0x320c47, + 0x3cf249, + 0x221a85, + 0x26a88, + 0x372185, + 0x2028c5, + 0x367bc9, + 0x201182, + 0x2556c4, + 0x20f582, + 0x203382, + 0x361b85, + 0x352948, + 0x2d1385, + 0x2dfe43, + 0x2dfe45, + 0x2ec5c3, + 0x211402, + 0x298a44, + 0x203a83, 0x200a82, - 0x2c4d84, - 0x318f43, - 0x203482, - 0x269503, - 0x2307c4, - 0x3093c3, - 0x25be04, - 0x201ec2, - 0x21f5c3, - 0x214a83, - 0x202d82, - 0x352902, - 0x2cec89, + 0x2f81c4, + 0x30d543, + 0x2043c2, + 0x26e983, + 0x2189c4, + 0x309483, + 0x2623c4, + 0x201782, + 0x21ee83, + 0x21e503, 0x204942, - 0x296884, - 0x21ef42, - 0x2603c4, - 0x213284, - 0x2d7284, - 0x204a42, - 0x247e02, - 0x35d143, - 0x2a2683, - 0x291704, - 0x2e1184, - 0x307fc4, - 0x31fe44, - 0x31d303, - 0x208f03, - 0x3014c4, - 0x322cc4, - 0x322e06, - 0x229782, - 0x16542, - 0x4ab43, - 0x216542, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x14c45, + 0x29ec82, + 0x286f49, + 0x205182, + 0x29b184, + 0x203ac2, + 0x264644, + 0x2b8184, + 0x2d4844, + 0x201b02, + 0x249442, + 0x396583, + 0x311d43, + 0x297204, + 0x2e6f44, + 0x31e604, + 0x320dc4, + 0x31c503, + 0x383983, + 0x308044, + 0x322604, + 0x322746, + 0x202742, + 0x5842, + 0x4d383, + 0x205842, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x14305, 0x2000c2, - 0x253c43, - 0x216543, - 0x222bc3, - 0x206203, - 0x343b43, - 0x2b1b84, - 0x2cef44, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x21f6c3, - 0x305b04, - 0x20bc43, - 0x21bcc3, - 0x37dc04, - 0x379ac6, - 0x2079c3, - 0x146c05, - 0xb46c7, - 0x203643, - 0x7aa176c8, - 0x209a43, - 0x2c45c3, - 0x24c243, - 0x233243, - 0x3c2545, - 0xcd43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x212343, - 0x203e43, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x243543, - 0x2296c3, - 0x28ea04, - 0x7ca83, - 0x20cb83, - 0x2cce44, - 0x146c05, - 0x2d3605, - 0xb46c7, - 0x216542, - 0x2104c2, + 0x258843, + 0x229f43, + 0x224d03, + 0x206dc3, + 0x2e9c43, + 0x258104, + 0x287204, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x202783, + 0x305d44, + 0x329b43, + 0x223503, + 0x387d04, + 0x371f86, + 0x207e43, + 0x145d45, + 0xf1a47, + 0x261c03, + 0x7ae14fc8, + 0x209343, + 0x2ca043, + 0x21b643, + 0x2335c3, + 0x371ac5, + 0x38483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x211543, + 0x2033c3, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x25e043, + 0x2127c3, + 0x294384, + 0x81983, + 0x21f483, + 0x2d0584, + 0x145d45, + 0x2f5345, + 0xf1a47, + 0x205842, + 0x201902, 0x200382, - 0x204cc2, - 0xd903, + 0x2048c2, + 0xbc03, 0x2003c2, - 0x12dc04, - 0x216543, - 0x23ec84, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x21b544, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x202b03, - 0x25dd04, - 0x793c8, - 0x216543, - 0x20d903, - 0x1a143, - 0x11a5c4, - 0x21d684, - 0x793c8, - 0x16542, - 0x216543, - 0x256d44, - 0x2b1b84, - 0x20d903, - 0x203c82, - 0x7ca83, - 0x20cb83, - 0x24c343, - 0xd1984, - 0x355b45, - 0x213402, - 0x323543, - 0x10e689, - 0xebd86, - 0x1c4688, + 0x1544, + 0x229f43, + 0x241284, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x222d84, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x217083, + 0x29f804, + 0x7ffc8, + 0x229f43, + 0x20bc03, + 0xb8c3, + 0x123944, + 0x259b44, + 0x7ffc8, + 0x5842, + 0x229f43, + 0x25b9c4, + 0x258104, + 0x20bc03, + 0x200f82, + 0x81983, + 0x21f483, + 0x23ffc3, + 0x4a3c4, + 0x32e885, + 0x208ec2, + 0x325ec3, + 0x172fc9, + 0xf2386, + 0x87e08, 0x2000c2, - 0x793c8, - 0x216542, - 0x222bc3, - 0x343b43, + 0x7ffc8, + 0x205842, + 0x224d03, + 0x2e9c43, 0x2005c2, - 0xd903, - 0x20cb83, - 0xfe02, + 0xbc03, + 0x21f483, + 0x2802, 0x82, 0xc2, - 0x1cc547, - 0x14a709, - 0x3a43, - 0x793c8, - 0x17d0c3, - 0x7e3e71c7, - 0x16543, - 0x10508, - 0x22bc3, - 0x143b43, - 0x432c6, - 0x43543, - 0x15d8c8, - 0xd5c08, - 0x1c1ac3, - 0x83646, - 0x7e5a9d85, - 0x16443, - 0x98e48, - 0xdfc08, - 0x103d03, - 0x7e8ef3c6, - 0xf3585, - 0x1a1dc4, - 0x3c787, - 0x296c3, - 0x4f83, - 0xcb83, - 0x4642, - 0x15b0ca, - 0xc205, - 0x7303, - 0x7eed308c, - 0xffcc3, - 0x10ba84, - 0x11ac8b, - 0x11b248, - 0x15d184, - 0x9a402, - 0x4b343, - 0x145fdc7, - 0x157a147, - 0x14da108, - 0x144b343, - 0x1c4b88, - 0x1ad30b, - 0x14182, - 0x132747, - 0x114bc4, + 0x1d0347, + 0x1e949, + 0x2fc3, + 0x7ffc8, + 0x18f203, + 0x7e724f47, + 0x29f43, + 0xfdc8, + 0x24d03, + 0x86247, + 0xe9c43, + 0x3d286, + 0x5e043, + 0xa9388, + 0xdc448, + 0x1d4883, + 0x122246, + 0x7e92fc05, + 0x1318c5, + 0x19c03, + 0x9dac8, + 0xe59c8, + 0x62b03, + 0x7ecf6786, + 0xfb305, + 0x869c4, + 0x3e8c7, + 0x127c3, + 0x4b83, + 0x1f483, + 0x2082, + 0x18a0ca, + 0x37945, + 0x3d43, + 0x7f2d8e0c, + 0x161c43, + 0x120984, + 0x118ecb, + 0x119488, + 0x1965c4, + 0xa1342, + 0x45f03, + 0x1434307, + 0x15ce3c7, + 0x14dff08, + 0x1445f03, + 0x1c8bc8, + 0x1496944, + 0x183dcb, + 0x12c82, + 0x1300c7, + 0x14bc04, 0x2000c2, - 0x216542, - 0x23ec84, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x233243, - 0x2296c3, - 0x20cb83, - 0x204683, - 0x202b03, - 0x39fc3, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x602, - 0x1a143, - 0x143b43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x233243, - 0x2296c3, - 0x20cb83, - 0x22a042, + 0x205842, + 0x241284, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2335c3, + 0x2127c3, + 0x21f483, + 0x2a31c3, + 0x217083, + 0x13803, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0xb8c3, + 0x24d03, + 0x814e9c43, + 0x80407, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x2335c3, + 0x2127c3, + 0x21f483, + 0x26ca02, 0x2000c1, 0x2000c2, 0x200201, - 0x338b82, - 0x793c8, - 0x224545, + 0x3385c2, + 0x7ffc8, + 0x224f85, 0x200101, - 0x16543, - 0x3a304, - 0x201381, + 0x29f43, + 0x3b4c4, + 0x200d01, 0x200501, - 0x201281, - 0x251242, - 0x251244, - 0x251943, + 0x200c01, + 0x254602, + 0x395c04, + 0x254603, 0x200041, 0x200801, 0x200181, - 0x18ab06, + 0x1eaa46, 0x200701, - 0x30d307, - 0x312d8f, - 0x399086, + 0x3bc807, + 0x38decf, + 0x3786c6, 0x2004c1, - 0x31a606, - 0x200bc1, + 0x323986, + 0x200b41, 0x200581, - 0x3e61ce, + 0x3b7fce, 0x2003c1, - 0x20cb83, + 0x21f483, 0x200a81, - 0x3a8d85, - 0x204642, - 0x24d905, + 0x328745, + 0x202082, + 0x216e05, 0x200401, 0x200741, 0x2007c1, - 0x213402, + 0x208ec2, 0x200081, - 0x201641, - 0x207281, - 0x2024c1, - 0x208481, - 0x5c549, - 0x793c8, - 0x216543, - 0x222bc3, - 0xac1c8, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x2203c3, - 0x2f43, - 0x216543, - 0x343b43, - 0x9a348, - 0x216443, - 0x2296c3, - 0x91c43, - 0x20cb83, - 0x82a99048, - 0x1e9343, - 0x12248, - 0xcd42, - 0x3c43, - 0x13242, - 0x4a42, - 0x146c05, - 0x793c8, - 0x9fb06, - 0x15edc7, - 0xd903, - 0x146c05, - 0x171684, - 0x1cdf88, - 0x4f344, - 0x106a47, - 0x60244, - 0xb1c0c, - 0x1db944, - 0xdaf45, - 0x5c549, - 0x16e507, - 0x28846, - 0x191ca, - 0x14f990a, - 0x793c8, - 0x7ca83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x203b43, - 0x793c8, - 0x216543, - 0x222bc3, - 0x2e8fc4, - 0x20cb83, - 0x2655c5, - 0x2484c4, - 0x216543, - 0x222bc3, - 0x343b43, - 0x201582, - 0x2296c3, - 0x20cb83, - 0x2b03, - 0xedac6, - 0x12f6c4, - 0x124c46, - 0x253c43, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2296c3, - 0x20cb83, - 0x216542, - 0x216543, - 0x23a889, - 0x222bc3, - 0x2b79c9, - 0x343b43, - 0x216443, - 0x2296c3, - 0x84e04, - 0xd903, - 0x20cb83, - 0x305308, - 0x3e2687, - 0x355b45, - 0xd3a48, - 0x1db108, - 0x1cc547, - 0xfe30a, - 0x1c790b, - 0x11a847, - 0x48f08, - 0xf4a0a, - 0x26888, - 0x14a709, - 0x2f547, - 0x1ed87, - 0x10efc8, - 0x10508, - 0x4a2cf, - 0xaad45, - 0x1fc47, - 0x432c6, - 0x14cd47, - 0x130286, - 0x15d8c8, - 0xa3706, - 0x1405c7, - 0x1798c9, - 0x1df3c7, - 0xc6d09, - 0xcd749, - 0xd3386, - 0xd5c08, - 0xd3d05, - 0x86f4a, - 0xdfc08, - 0x103d03, - 0xe6008, - 0x3c787, - 0x133485, - 0x649d0, - 0x4f83, - 0x7ca83, - 0x179747, - 0x2d445, - 0xffa48, - 0x74505, - 0xffcc3, - 0x1a3108, - 0x1a1386, - 0x9ec09, - 0xba247, - 0x10e94b, - 0x77a04, - 0x113b84, - 0x11ac8b, - 0x11b248, - 0x11bb07, - 0x146c05, - 0x216543, - 0x222bc3, - 0x2f5503, - 0x20cb83, - 0x248783, - 0x343b43, - 0x7ca83, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x9c1cb, + 0x205241, + 0x201541, + 0x201c41, + 0x201b81, + 0x60209, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x10e7c8, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x21fc83, + 0x1efd03, + 0x229f43, + 0x2e9c43, + 0xa1288, + 0x219c03, + 0x2127c3, + 0x9843, + 0x21f483, + 0x82f0ad88, + 0x1ef9c3, + 0x11448, + 0x12d02, + 0x2583, + 0x6cc2, + 0x1b02, + 0x145d45, + 0x7ffc8, + 0x9e0c6, + 0x161487, + 0xbc03, + 0x145d45, + 0x179c04, + 0x199ac8, + 0x51a44, + 0x1217c7, + 0x63e44, + 0x5818c, + 0x1e6644, + 0x27885, + 0x60209, + 0x176507, + 0x1df86, + 0x5b74a, + 0x156e00a, + 0x11d484, + 0x1506c43, + 0x7ffc8, + 0x81983, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2127c3, + 0x21f483, + 0x2030c3, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2ef2c4, + 0x21f483, + 0x28a685, + 0x279884, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2026c2, + 0x2127c3, + 0x21f483, + 0x17083, + 0xf3f86, + 0xc2904, + 0x124a86, + 0x258843, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2026c2, + 0x2127c3, + 0x21f483, + 0x217083, + 0x205842, + 0x229f43, + 0x23ba49, + 0x224d03, + 0x2bc9c9, + 0x219c03, + 0x2127c3, + 0x8d344, + 0xbc03, + 0x21f483, + 0x305548, + 0x245347, + 0x32e885, + 0xd2048, + 0x12e889, + 0x1e5e08, + 0x1d0347, + 0xff04a, + 0x15964b, + 0x123bc7, + 0x4af48, + 0x8fca, + 0xc9508, + 0x1e949, + 0x2e447, + 0x1d8c7, + 0xbd08, + 0xfdc8, + 0x4cc4f, + 0xb0045, + 0x1f507, + 0x3d286, + 0x41007, + 0x12c686, + 0xa9388, + 0xae506, + 0x1404c7, + 0x167fc9, + 0x1ca87, + 0xe7d89, + 0xd2449, + 0xd9106, + 0xdc448, + 0xd2305, + 0x158e0a, + 0xe59c8, + 0x62b03, + 0xec9c8, + 0x3e8c7, + 0x1865c5, + 0x160810, + 0x4b83, + 0x81983, + 0x183307, + 0x1c605, + 0xffd88, + 0x7a605, + 0x161c43, + 0x1dea48, + 0x2606, + 0x15f089, + 0xbfb87, + 0x17328b, + 0x7f144, + 0x112d84, + 0x118ecb, + 0x119488, + 0x119d47, + 0x145d45, + 0x229f43, + 0x224d03, + 0x28c6c3, + 0x21f483, + 0x249f03, + 0x2e9c43, + 0x81983, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x1ddb4b, 0x2000c2, - 0x216542, - 0x20cb83, - 0xd42, - 0x1582, - 0x1642, - 0x793c8, - 0x1b7409, - 0x1c4b88, - 0x16542, + 0x205842, + 0x21f483, + 0x2102, + 0x26c2, + 0x5ec2, + 0x7ffc8, + 0x12b409, + 0x1c8bc8, + 0x5842, 0x2000c2, - 0x216542, + 0x205842, 0x200382, 0x2005c2, - 0x202042, - 0x2296c3, - 0x148ec6, + 0x205c02, + 0x2127c3, + 0x165c6, 0x2003c2, - 0xd1984, + 0x4a3c4, 0x2000c2, - 0x253c43, - 0x216542, - 0x216543, - 0x222bc3, + 0x258843, + 0x205842, + 0x229f43, + 0x224d03, 0x200382, - 0x343b43, - 0x243543, - 0x216443, - 0x21b544, - 0x2296c3, - 0x20b243, - 0xd903, - 0x20cb83, - 0x30ba84, - 0x201643, - 0x343b43, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x20d903, - 0x20cb83, - 0x3c5747, - 0x216543, - 0x2868c7, - 0x3823c6, - 0x209843, - 0x21a003, - 0x343b43, - 0x20e443, - 0x2b1b84, - 0x243544, - 0x3d66c6, - 0x202803, - 0x2296c3, - 0x127f0b, - 0x20cb83, - 0x2655c5, - 0x2f7184, - 0x3b6703, - 0x343483, - 0x2db6c7, - 0x2f6985, - 0x1a1003, - 0x216543, - 0x222bc3, - 0x343b43, - 0x216443, - 0x2296c3, - 0x1c1184, - 0x20cb83, - 0x1fa83, - 0x89f0b24c, - 0x58083, - 0x4bc47, - 0x80dc6, - 0x120047, - 0x133d85, - 0x205242, - 0x246dc3, - 0x211d43, - 0x253c43, - 0x8aa16543, - 0x2080c2, - 0x222bc3, - 0x204f03, - 0x343b43, - 0x2b1b84, - 0x34b203, - 0x27b903, - 0x216443, - 0x21b544, - 0x8ae06c02, - 0x2296c3, - 0x20cb83, - 0x20e603, - 0x209203, - 0x2883c3, - 0x22a042, - 0x201643, - 0x793c8, - 0x343b43, - 0x1a143, - 0x258bc4, - 0x253c43, - 0x216542, - 0x216543, - 0x23ec84, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x243543, - 0x239104, - 0x28d4c4, - 0x2e8306, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x21f6c3, - 0x27d046, - 0x4290b, - 0x32f46, - 0xb6c0a, - 0x11faca, - 0x793c8, - 0x22f004, - 0x8c216543, - 0x32c744, - 0x222bc3, - 0x219a44, - 0x343b43, - 0x284103, - 0x216443, - 0x2296c3, - 0x7ca83, - 0x20cb83, - 0x31c03, - 0x348b0b, - 0x3d368a, - 0x3e8e4c, - 0xefc08, + 0x2e9c43, + 0x25e043, + 0x219c03, + 0x222d84, + 0x2127c3, + 0x21c043, + 0xbc03, + 0x21f483, + 0x320984, + 0x205ec3, + 0x2e9c43, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x20bc03, + 0x21f483, + 0x3c96c7, + 0x229f43, + 0x24dac7, + 0x3a3d06, + 0x21b983, + 0x226403, + 0x2e9c43, + 0x204203, + 0x258104, + 0x3b4204, + 0x33ef46, + 0x231083, + 0x2127c3, + 0x10aacb, + 0x21f483, + 0x28a685, + 0x22b5c4, + 0x3b6a43, + 0x3d8003, + 0x2e1487, + 0x236f05, + 0x2283, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x1c3404, + 0x21f483, + 0x1f343, + 0x8a30d6cc, + 0x5db43, + 0x53a87, + 0x4c106, + 0xd5247, + 0x135f85, + 0x204e42, + 0x256803, + 0x219383, + 0x258843, + 0x8ae29f43, + 0x208542, + 0x224d03, + 0x204b03, + 0x2e9c43, + 0x258104, + 0x3ce883, + 0x372ac3, + 0x219c03, + 0x222d84, + 0x8b203bc2, + 0x2127c3, + 0x21f483, + 0x2043c3, + 0x229c83, + 0x212843, + 0x26ca02, + 0x205ec3, + 0x7ffc8, + 0x2e9c43, + 0xb8c3, + 0x285584, + 0x258843, + 0x205842, + 0x229f43, + 0x241284, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x25e043, + 0x276f44, + 0x292e44, + 0x2edcc6, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x202783, + 0x278606, + 0x46bcb, + 0x332c6, + 0x12650a, + 0x11e28a, + 0x7ffc8, + 0x243244, + 0x8c629f43, + 0x384f44, + 0x224d03, + 0x29e6c4, + 0x2e9c43, + 0x352e83, + 0x219c03, + 0x2127c3, + 0x81983, + 0x21f483, + 0x2f7c3, + 0x34804b, + 0x3dc94a, + 0x3ef4cc, + 0xf7088, 0x2000c2, - 0x216542, + 0x205842, 0x200382, - 0x2b96c5, - 0x2b1b84, - 0x201582, - 0x216443, - 0x28d4c4, - 0x204cc2, + 0x235c45, + 0x258104, + 0x2026c2, + 0x219c03, + 0x292e44, + 0x2048c2, 0x2003c2, - 0x202b02, - 0x22a042, - 0x53c43, - 0x4042, - 0x2d5fc9, - 0x278a08, - 0x3d8a09, - 0x39d3c9, - 0x2116ca, - 0x21424a, - 0x208d02, - 0x22e702, - 0x16542, - 0x216543, - 0x213b02, - 0x24a1c6, - 0x378742, - 0x47402, - 0x201442, - 0x3c7c8e, - 0x21f60e, - 0x3d1b47, - 0x219cc2, - 0x222bc3, - 0x343b43, - 0x20bac2, + 0x2036c2, + 0x26ca02, + 0x58843, + 0x35c2, + 0x2da949, + 0x27ce48, + 0x2f0949, + 0x3a6ac9, + 0x212d4a, + 0x214aca, + 0x20d482, + 0x2b90c2, + 0x5842, + 0x229f43, + 0x20f1c2, + 0x24cb46, + 0x329c42, + 0x48e02, + 0x20ad42, + 0x3599ce, + 0x21eece, + 0x212747, + 0x2154c2, + 0x224d03, + 0x2e9c43, + 0x205d42, 0x2005c2, - 0x6a7c3, - 0x23ee8f, + 0x58103, + 0x24148f, + 0x21d942, + 0x2e8447, + 0x2ecb87, + 0x2f1d07, + 0x2f5d4c, + 0x2fbe8c, + 0x2fc844, + 0x291c0a, 0x21ee02, - 0x2eae47, - 0x2e2587, - 0x2e61c7, - 0x2f0e4c, - 0x2f2e0c, - 0x258884, - 0x28c28a, - 0x21f542, - 0x207bc2, - 0x2cf304, + 0x208042, + 0x2d4344, 0x200702, - 0x2d8882, - 0x2f3044, - 0x21ab82, - 0x209d42, - 0x1b283, - 0x2a3787, - 0x288345, - 0x2205c2, - 0x319f04, - 0x30f082, - 0x2ef548, - 0x2296c3, - 0x3773c8, - 0x204d82, - 0x258a45, - 0x39b086, - 0x20cb83, - 0x2059c2, - 0x300947, - 0x4642, - 0x2504c5, - 0x203505, - 0x201782, - 0x207f02, - 0x3cfd8a, - 0x27c68a, - 0x279c42, - 0x2a94c4, - 0x200f02, - 0x271148, - 0x20e002, - 0x2b4bc8, - 0x17c1, - 0x316887, - 0x3174c9, - 0x203582, - 0x31c385, - 0x372b05, - 0x3d088b, - 0x3d6c4c, - 0x237288, - 0x332588, - 0x229782, - 0x259342, + 0x24f6c2, + 0x2fc0c4, + 0x21c142, + 0x20b982, + 0x280c3, + 0x2ae587, + 0x35ba05, + 0x22d442, + 0x240f84, + 0x20bdc2, + 0x2f6908, + 0x2127c3, + 0x37f808, + 0x204982, + 0x2fca05, + 0x3a4706, + 0x21f483, + 0x206582, + 0x300b87, + 0x2082, + 0x252e45, + 0x331d05, + 0x20b082, + 0x208382, + 0x3cb68a, + 0x2805ca, + 0x246f82, + 0x2af444, + 0x202602, + 0x23a8c8, + 0x20d682, + 0x2dd588, + 0x4c01, + 0x314487, + 0x315189, + 0x252ec2, + 0x31ab85, + 0x37ba45, + 0x21c6cb, + 0x20d0cc, + 0x2323c8, + 0x32ff08, + 0x202742, + 0x25d042, 0x2000c2, - 0x793c8, - 0x216542, - 0x216543, + 0x7ffc8, + 0x205842, + 0x229f43, 0x200382, - 0x204cc2, - 0xd903, + 0x2048c2, + 0xbc03, 0x2003c2, - 0x20cb83, - 0x202b02, + 0x21f483, + 0x2036c2, 0x2000c2, - 0x146c05, - 0x8d616542, - 0x10b384, - 0x405c5, - 0x8e743b43, - 0x21b283, - 0x201582, - 0x2296c3, - 0x3e8603, - 0x8ea0cb83, - 0x2faf43, - 0x2dc2c6, - 0xf57c5, - 0x1602b03, - 0x146c05, - 0x148d8b, - 0x793c8, - 0x8dbb6d08, - 0x6be87, - 0x8deca7ca, - 0x791c7, - 0x10f7c5, - 0x8e200f89, - 0x2f20d, - 0x430c2, - 0x11b842, - 0xe01, - 0xe91c4, - 0xb530a, - 0x7c4c7, - 0x30044, - 0x30083, - 0x30084, - 0x8f201f02, - 0x8f600ac2, - 0x8fa03b42, - 0x8fe030c2, - 0x90208742, - 0x90604182, - 0xb46c7, - 0x90a16542, - 0x90e19d82, - 0x9121d802, - 0x91603242, - 0x21f603, - 0x2a2c4, - 0x91aac1c8, - 0x213643, - 0x91e18902, - 0x68508, - 0x92204982, - 0x63187, - 0x1b88c7, - 0x92600042, - 0x92a00d82, - 0x92e00182, - 0x932042c2, - 0x93605502, - 0x93a005c2, - 0x11f405, - 0x20af03, - 0x2f44c4, - 0x93e00702, - 0x94211b82, - 0x94605542, - 0x92b8b, - 0x94a00c42, - 0x95256e02, - 0x95601582, - 0x95a02042, - 0x98e48, - 0x95e28882, - 0x96200bc2, - 0x96603742, - 0x96a77782, - 0x96e06c02, - 0x97205782, - 0x97604cc2, - 0x97a18f02, - 0x97e0d502, - 0x9820f502, - 0xac8c4, - 0x332ec3, - 0x9863d1c2, - 0x98a0bbc2, - 0x98e0cfc2, - 0x992006c2, - 0x996003c2, - 0x99a00a82, - 0xfa6c8, - 0x9c347, - 0x99e037c2, - 0x9a202a82, - 0x9a602b02, - 0x9aa0a0c2, - 0x176a8c, - 0x9ae2bdc2, - 0x9b22ce82, - 0x9b602e02, - 0x9ba05002, - 0x9be08e42, - 0x9c211842, - 0x9c6089c2, - 0x9ca13342, - 0x9ce81202, - 0x9d281742, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x207c3, - 0xd2443, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x94f4b203, - 0x2207c3, - 0x3c25c4, - 0x3d8906, + 0x145d45, + 0x8da05842, + 0x10d804, + 0x44005, + 0x8eae9c43, + 0x2280c3, + 0x2026c2, + 0x2127c3, + 0x3c5f83, + 0x8ee1f483, + 0x2fe343, + 0x2e2306, + 0x1976c5, + 0x1617083, + 0x145d45, + 0x1482cb, + 0x7ffc8, + 0x8dfce6c8, + 0x6b547, + 0x8e2ce18a, + 0x7fdc7, + 0xcab05, + 0x8e786f09, + 0x3204d, + 0x3d082, + 0x119a82, + 0xc41, + 0xf7544, + 0xb978a, + 0x80407, + 0x1e5c4, + 0x1e603, + 0x1e604, + 0x8f603e02, + 0x8fa00ac2, + 0x8fe00ec2, + 0x90200b82, + 0x90604142, + 0x90a03702, + 0xf1a47, + 0x90e05842, + 0x91215582, + 0x91605802, + 0x91a00d02, + 0x21eec3, + 0x2ba44, + 0x91f0e7c8, + 0x220f43, + 0x92217202, + 0x6d988, + 0x92602a82, + 0x82907, + 0x1bbe47, + 0x92a00042, + 0x92e02142, + 0x93200182, + 0x93603842, + 0x93a09c42, + 0x93e005c2, + 0x16a205, + 0x2191c3, + 0x368784, + 0x94200702, + 0x94619f42, + 0x94a065c2, + 0x8e04b, + 0x94e00b42, + 0x95654902, + 0x95a026c2, + 0x95e05c02, + 0x9dac8, + 0x9621dfc2, + 0x9660dec2, + 0x96a0f782, + 0x96e7eec2, + 0x97203bc2, + 0x97604242, + 0x97a048c2, + 0x97e0ee02, + 0x9822f002, + 0x9860e942, + 0xf9304, + 0x381983, + 0x98a3fa02, + 0x98e1d342, + 0x9920dcc2, + 0x996006c2, + 0x99a003c2, + 0x99e00a82, + 0xfde88, + 0x1ddcc7, + 0x9a202782, + 0x9a603342, + 0x9aa036c2, + 0x9ae1ee82, + 0x15804c, + 0x9b201c82, + 0x9b626d42, + 0x9ba06202, + 0x9be04c02, + 0x9c212182, + 0x9c612ec2, + 0x9ca05242, + 0x9ce0f542, + 0x9d288142, + 0x9d689482, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x2d643, + 0xc8503, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x953ce883, + 0x22d643, + 0x371b44, + 0x2f0846, 0x309a43, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x35c349, - 0x204042, - 0x271c43, - 0x2cda43, - 0x3b6945, - 0x204f03, - 0x34b203, - 0x2207c3, - 0x2e69c3, - 0x22e683, - 0x3ca009, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x34b203, - 0x2207c3, - 0x204042, - 0x204042, - 0x34b203, - 0x2207c3, - 0x9da16543, - 0x222bc3, - 0x39d603, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x793c8, - 0x216542, - 0x216543, - 0x2296c3, - 0x20cb83, - 0x145842, - 0x216543, - 0x222bc3, - 0x343b43, - 0x9e51d0c2, - 0x216443, - 0x2296c3, - 0xd903, - 0x20cb83, - 0x1381, - 0x21d684, - 0x216542, - 0x216543, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x271609, + 0x2035c2, + 0x367e03, + 0x2d2743, + 0x3b6c85, + 0x204b03, + 0x3ce883, + 0x22d643, + 0x2ed403, + 0x23c7c3, + 0x205249, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x2035c2, + 0x2035c2, + 0x3ce883, + 0x22d643, + 0x9de29f43, + 0x224d03, + 0x3a6d03, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0x7ffc8, + 0x205842, + 0x229f43, + 0x2127c3, + 0x21f483, + 0x71482, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x9e90b602, + 0x219c03, + 0x2127c3, + 0xbc03, + 0x21f483, + 0xd01, + 0x259b44, + 0x205842, + 0x229f43, 0x200983, - 0x222bc3, - 0x256d44, - 0x2f5503, - 0x343b43, - 0x2b1b84, - 0x243543, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x24c343, - 0x355b45, - 0x22e683, - 0x201643, + 0x224d03, + 0x25b9c4, + 0x28c6c3, + 0x2e9c43, + 0x258104, + 0x25e043, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x23ffc3, + 0x32e885, + 0x23c7c3, + 0x205ec3, 0x882, - 0xd903, - 0x216542, - 0x216543, - 0x34b203, - 0x2296c3, - 0x20cb83, + 0xbc03, + 0x205842, + 0x229f43, + 0x3ce883, + 0x2127c3, + 0x21f483, 0x2000c2, - 0x253c43, - 0x793c8, - 0x216543, - 0x222bc3, - 0x343b43, - 0x239c86, - 0x2b1b84, - 0x243543, - 0x21b544, - 0x2296c3, - 0x20cb83, - 0x21f6c3, - 0xe804, - 0x2e702, - 0x216543, - 0x20a83, - 0x222bc3, - 0x1582, - 0x2296c3, - 0x20cb83, - 0x10e104, - 0x6ff44, - 0x2a02, - 0x148bb07, - 0x125887, - 0x216543, - 0x32f46, - 0x222bc3, - 0x343b43, - 0xf1386, - 0x2296c3, - 0x20cb83, - 0x32f188, - 0x3323c9, - 0x341cc9, - 0x34b688, - 0x39d208, - 0x39d209, - 0x325d0a, - 0x36084a, - 0x3979ca, - 0x39ecca, - 0x3d368a, - 0x3dfecb, - 0x2fc28d, - 0x2fcf4f, - 0x247450, - 0x3621cd, - 0x3813cc, - 0x39ea0b, - 0x16108, - 0x13ec08, - 0x18a0c5, - 0x190209, - 0x1495c87, - 0xde645, + 0x258843, + 0x7ffc8, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x2389c6, + 0x258104, + 0x25e043, + 0x222d84, + 0x2127c3, + 0x21f483, + 0x202783, + 0x45c4, + 0xb90c2, + 0x229f43, + 0x5483, + 0x224d03, + 0x26c2, + 0x2127c3, + 0x21f483, + 0x76c04, + 0x762c4, + 0xfc2, + 0x1489e07, + 0x187887, + 0x229f43, + 0x332c6, + 0x224d03, + 0x2e9c43, + 0xf8986, + 0x2127c3, + 0x21f483, + 0x32bbc8, + 0x32fd49, + 0x340f89, + 0x34b788, + 0x3a6908, + 0x3a6909, + 0x3254ca, + 0x362f8a, + 0x3a0d8a, + 0x3a8fca, + 0x3dc94a, + 0x3ea14b, + 0x230a4d, + 0x248e4f, + 0x36ea90, + 0x36668d, + 0x38b00c, + 0x3a8d0b, + 0x1a20c7, + 0x1299ce, + 0x12cd8a, + 0x12fa49, + 0x140f89, + 0x164fc9, + 0x16520a, + 0x16de09, + 0x16e789, + 0x17014b, + 0x29b08, + 0x10b448, + 0x14abc9, + 0x1498307, + 0xe3f05, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x1f483, 0x2000c2, - 0x2f67c5, - 0x209d03, - 0xa1e16542, - 0x222bc3, - 0x343b43, - 0x380b87, - 0x24c243, - 0x216443, - 0x2296c3, - 0x257743, - 0x20b243, - 0x20f1c3, - 0x20d903, - 0x20cb83, - 0x259186, - 0x213402, - 0x201643, - 0x793c8, + 0x236d45, + 0x228083, + 0xa2e05842, + 0x224d03, + 0x2e9c43, + 0x3664c7, + 0x21b643, + 0x219c03, + 0x2127c3, + 0x25c743, + 0x21c043, + 0x204003, + 0x20bc03, + 0x21f483, + 0x25ce86, + 0x208ec2, + 0x205ec3, + 0x7ffc8, 0x2000c2, - 0x253c43, - 0x216542, - 0x216543, - 0x222bc3, - 0x343b43, - 0x2b1b84, - 0x216443, - 0x2296c3, - 0x20cb83, - 0x202b03, - 0x125887, - 0x14182, - 0x10e684, - 0x1534746, + 0x258843, + 0x205842, + 0x229f43, + 0x224d03, + 0x2e9c43, + 0x258104, + 0x219c03, + 0x2127c3, + 0x21f483, + 0x217083, + 0x187887, + 0x12c82, + 0x9744, + 0x151d546, 0x2000c2, - 0x216542, - 0x343b43, - 0x216443, - 0x20cb83, + 0x205842, + 0x2e9c43, + 0x219c03, + 0x21f483, } // children is the list of nodes' children, the parent's wildcard bit and the @@ -9781,49 +9862,50 @@ var children = [...]uint32{ 0x40000000, 0x50000000, 0x60000000, - 0x17bc5e9, - 0x17c05ef, - 0x17c45f0, - 0x17e85f1, - 0x19405fa, - 0x1958650, - 0x196c656, - 0x198465b, - 0x19a4661, - 0x19c8669, - 0x19e0672, - 0x1a08678, - 0x1a0c682, - 0x1a34683, - 0x1a3868d, - 0x1a5068e, + 0x17a05e2, + 0x17a45e8, + 0x17a85e9, + 0x17cc5ea, + 0x19245f3, + 0x193c649, + 0x195064f, + 0x1968654, + 0x198865a, + 0x19ac662, + 0x19c466b, + 0x1a04671, + 0x1a08681, + 0x1a30682, + 0x1a3468c, + 0x1a4c68d, + 0x1a50693, 0x1a54694, - 0x1a58695, - 0x1a98696, + 0x1a94695, + 0x1a986a5, 0x1a9c6a6, - 0x1aa06a7, - 0x21aa46a8, - 0x61aac6a9, - 0x21ab46ab, - 0x1afc6ad, - 0x1b046bf, - 0x21b086c1, - 0x1b2c6c2, - 0x1b306cb, - 0x1b446cc, - 0x1b486d1, - 0x1b686d2, - 0x1b986da, - 0x1bb46e6, - 0x1bbc6ed, - 0x1be46ef, - 0x1bf86f9, + 0x21aa06a7, + 0x61aa86a8, + 0x21ab06aa, + 0x1af86ac, + 0x1b006be, + 0x21b046c0, + 0x1b286c1, + 0x1b2c6ca, + 0x1b406cb, + 0x1b446d0, + 0x1b646d1, + 0x1b946d9, + 0x1bb06e5, + 0x1bb86ec, + 0x1be06ee, + 0x1bf86f8, 0x21bfc6fe, - 0x1c006ff, - 0x1c98700, - 0x1cac726, - 0x1cc072b, - 0x1cfc730, + 0x21c006ff, + 0x1c04700, + 0x1c9c701, + 0x1cb0727, + 0x1cc472c, + 0x1cfc731, 0x1d0c73f, 0x1d20743, 0x1d38748, @@ -9837,549 +9919,532 @@ var children = [...]uint32{ 0x211083e, 0x2124844, 0x2128849, - 0x213084a, - 0x214884c, - 0x214c852, - 0x2170853, - 0x21c085c, - 0x21c4870, - 0x221c8871, - 0x21e8872, - 0x21ec87a, + 0x212c84a, + 0x213484b, + 0x214c84d, + 0x2150853, + 0x2174854, + 0x21c485d, + 0x21c8871, + 0x221cc872, + 0x21ec873, 0x21f087b, - 0x221c87c, - 0x62220887, - 0x22228888, - 0x2222c88a, - 0x227088b, - 0x227489c, + 0x21f487c, + 0x222087d, + 0x62224888, + 0x2222c889, + 0x2223088b, + 0x227488c, 0x6227889d, 0x229489e, - 0x22e88a5, - 0x222ec8ba, + 0x22ec8a5, 0x222f08bb, - 0x222f88bc, - 0x222fc8be, + 0x222f48bc, + 0x222fc8bd, 0x223008bf, 0x223048c0, - 0x230c8c1, - 0x23108c3, - 0x2231c8c4, - 0x223248c7, - 0x23348c9, - 0x23448cd, - 0x23f88d1, - 0x23fc8fe, - 0x2240c8ff, - 0x22410903, - 0x22418904, - 0x2470906, - 0x247491c, + 0x23088c1, + 0x23108c2, + 0x23148c4, + 0x223208c5, + 0x223288c8, + 0x23388ca, + 0x23488ce, + 0x23fc8d2, + 0x24008ff, + 0x22410900, + 0x22414904, + 0x2241c905, + 0x2474907, 0x247891d, - 0x29ec91e, - 0x29f0a7b, - 0x22a98a7c, - 0x22a9caa6, - 0x22aa0aa7, - 0x22aacaa8, - 0x22ab0aab, - 0x22abcaac, - 0x22ac0aaf, - 0x22ac4ab0, - 0x22ac8ab1, - 0x22accab2, - 0x22ad0ab3, - 0x22adcab4, - 0x22ae0ab7, - 0x22aecab8, - 0x22af0abb, - 0x22af4abc, - 0x22af8abd, - 0x22b04abe, - 0x22b08ac1, - 0x22b14ac2, - 0x22b18ac5, - 0x22b1cac6, + 0x247c91e, + 0x248091f, + 0x2a4c920, + 0x2a50a93, + 0x22af8a94, + 0x22afcabe, + 0x22b00abf, + 0x22b0cac0, + 0x22b10ac3, + 0x22b1cac4, 0x22b20ac7, - 0x2b24ac8, + 0x22b24ac8, 0x22b28ac9, - 0x22b34aca, - 0x22b38acd, - 0x2b3cace, - 0x2b44acf, - 0x22b50ad1, - 0x62b5cad4, - 0x2ba0ad7, - 0x2ba4ae8, - 0x22bc4ae9, - 0x22bc8af1, - 0x22bccaf2, - 0x22bd4af3, - 0x22bdcaf5, - 0x22be0af7, - 0x22be4af8, - 0x22becaf9, - 0x22bf0afb, - 0x22bf4afc, - 0x2bf8afd, - 0x22c18afe, + 0x22b2caca, + 0x22b30acb, + 0x22b3cacc, + 0x22b40acf, + 0x22b4cad0, + 0x22b50ad3, + 0x22b54ad4, + 0x22b58ad5, + 0x22b64ad6, + 0x22b68ad9, + 0x22b74ada, + 0x22b78add, + 0x22b7cade, + 0x22b80adf, + 0x2b84ae0, + 0x22b88ae1, + 0x22b94ae2, + 0x22b98ae5, + 0x2b9cae6, + 0x2ba4ae7, + 0x62bb0ae9, + 0x2bf4aec, + 0x22c14afd, + 0x22c18b05, 0x22c1cb06, - 0x22c20b07, - 0x22c24b08, - 0x22c28b09, - 0x22c34b0a, - 0x22c38b0d, - 0x2c3cb0e, - 0x2c44b0f, - 0x2c4cb11, - 0x2c50b13, - 0x2c6cb14, - 0x2c84b1b, - 0x2c88b21, - 0x2c98b22, - 0x2ca4b26, - 0x2cd8b29, - 0x2ce0b36, - 0x22ce4b38, - 0x2cfcb39, - 0x22d04b3f, - 0x22d08b41, - 0x22d10b42, - 0x2e0cb44, - 0x22e10b83, - 0x2e18b84, - 0x2e1cb86, - 0x22e20b87, - 0x2e24b88, - 0x2e54b89, - 0x2e58b95, - 0x2e5cb96, - 0x2e74b97, - 0x2e88b9d, - 0x2eb0ba2, - 0x2ed8bac, - 0x2edcbb6, - 0x62ee0bb7, - 0x2f14bb8, - 0x2f18bc5, - 0x22f1cbc6, - 0x2f20bc7, - 0x2f48bc8, - 0x2f4cbd2, - 0x2f70bd3, - 0x2f74bdc, - 0x2f88bdd, - 0x2f8cbe2, - 0x2f90be3, - 0x2fb0be4, - 0x2fd4bec, - 0x22fd8bf5, - 0x22fdcbf6, - 0x2fe0bf7, - 0x22fe4bf8, - 0x2fe8bf9, - 0x2fecbfa, + 0x22c24b07, + 0x22c2cb09, + 0x22c30b0b, + 0x22c34b0c, + 0x22c3cb0d, + 0x22c40b0f, + 0x22c44b10, + 0x2c48b11, + 0x22c74b12, + 0x22c78b1d, + 0x22c7cb1e, + 0x2c80b1f, + 0x22c84b20, + 0x22c88b21, + 0x22c94b22, + 0x22c98b25, + 0x2c9cb26, + 0x2ca4b27, + 0x2cacb29, + 0x2cb0b2b, + 0x2cccb2c, + 0x2ce4b33, + 0x2ce8b39, + 0x2cf8b3a, + 0x2d04b3e, + 0x2d38b41, + 0x2d40b4e, + 0x22d44b50, + 0x2d5cb51, + 0x22d64b57, + 0x22d68b59, + 0x22d70b5a, + 0x2e74b5c, + 0x22e78b9d, + 0x2e80b9e, + 0x2e84ba0, + 0x22e88ba1, + 0x2e8cba2, + 0x2ed0ba3, + 0x2ed4bb4, + 0x2ed8bb5, + 0x2ef0bb6, + 0x2f04bbc, + 0x2f2cbc1, + 0x2f54bcb, + 0x2f58bd5, + 0x62f5cbd6, + 0x2f90bd7, + 0x2f94be4, + 0x22f98be5, + 0x2f9cbe6, + 0x2fc4be7, + 0x2fc8bf1, + 0x2fecbf2, 0x2ff0bfb, - 0x2ff4bfc, - 0x3010bfd, - 0x23014c04, - 0x2301cc05, - 0x3020c07, - 0x3048c08, - 0x305cc12, - 0x30d0c17, - 0x30dcc34, - 0x30e0c37, - 0x3100c38, - 0x3118c40, - 0x311cc46, - 0x3130c47, - 0x3148c4c, - 0x3168c52, - 0x3180c5a, - 0x3188c60, - 0x31a4c62, - 0x31c0c69, - 0x31c4c70, - 0x31f0c71, - 0x3210c7c, - 0x3230c84, - 0x3298c8c, - 0x32b8ca6, - 0x32d8cae, - 0x32dccb6, - 0x32f4cb7, - 0x3338cbd, - 0x33b8cce, - 0x33f4cee, - 0x33f8cfd, - 0x3404cfe, - 0x3424d01, - 0x3428d09, - 0x344cd0a, - 0x3454d13, - 0x3494d15, - 0x34e8d25, - 0x34ecd3a, - 0x34f0d3b, - 0x35e4d3c, - 0x235ecd79, - 0x235f0d7b, - 0x235f4d7c, - 0x35f8d7d, - 0x235fcd7e, - 0x23600d7f, - 0x23604d80, - 0x3608d81, - 0x2360cd82, - 0x2361cd83, - 0x23620d87, - 0x23624d88, - 0x23628d89, - 0x2362cd8a, - 0x23638d8b, - 0x2363cd8e, - 0x3654d8f, - 0x3678d95, - 0x3698d9e, - 0x3d0cda6, - 0x23d10f43, - 0x23d14f44, - 0x23d18f45, - 0x23d1cf46, - 0x3d2cf47, - 0x3d4cf4b, - 0x3f0cf53, - 0x3fdcfc3, - 0x404cff7, - 0x40a5013, - 0x418d029, - 0x41e5063, - 0x4221079, - 0x431d088, - 0x43e90c7, - 0x44810fa, - 0x4511120, - 0x4575144, - 0x47ad15d, - 0x48651eb, - 0x4931219, - 0x497d24c, - 0x4a0525f, - 0x4a41281, - 0x4a91290, - 0x4b092a4, - 0x64b0d2c2, - 0x64b112c3, - 0x64b152c4, - 0x4b912c5, - 0x4bed2e4, - 0x4c692fb, - 0x4ce131a, - 0x4d61338, - 0x4dcd358, - 0x4ef9373, - 0x4f513be, - 0x64f553d4, - 0x4fed3d5, - 0x4ff53fb, - 0x24ff93fd, - 0x50813fe, - 0x50cd420, - 0x5135433, - 0x51dd44d, - 0x52a5477, - 0x530d4a9, - 0x54214c3, - 0x65425508, - 0x65429509, - 0x548550a, - 0x54e1521, - 0x5571538, - 0x55ed55c, - 0x563157b, - 0x571558c, - 0x57495c5, - 0x57a95d2, - 0x581d5ea, - 0x58a5607, - 0x58e5629, - 0x5955639, - 0x65959655, - 0x5981656, - 0x5985660, - 0x59b5661, - 0x59d166d, - 0x5a15674, - 0x5a25685, - 0x5a3d689, - 0x5ab568f, - 0x5abd6ad, - 0x5ad96af, - 0x5aed6b6, - 0x5b116bb, - 0x25b156c4, - 0x5b416c5, - 0x5b456d0, - 0x5b4d6d1, - 0x5b616d3, - 0x5b816d8, - 0x5b916e0, - 0x5b9d6e4, - 0x5bd96e7, - 0x5bdd6f6, - 0x5be56f7, - 0x5bf96f9, - 0x5c216fe, - 0x5c2d708, - 0x5c3570b, - 0x5c5d70d, - 0x5c81717, - 0x5c99720, - 0x5c9d726, - 0x5ca5727, - 0x5cad729, - 0x5cc172b, - 0x5d71730, - 0x5d7575c, - 0x5d7d75d, - 0x5d8175f, - 0x5da5760, - 0x5dc9769, - 0x5de5772, - 0x5df9779, - 0x5e0d77e, - 0x5e15783, + 0x3004bfc, + 0x3008c01, + 0x300cc02, + 0x302cc03, + 0x304cc0b, + 0x23050c13, + 0x3054c14, + 0x23058c15, + 0x305cc16, + 0x3060c17, + 0x3064c18, + 0x3068c19, + 0x3084c1a, + 0x23088c21, + 0x23090c22, + 0x3094c24, + 0x30bcc25, + 0x30d0c2f, + 0x3144c34, + 0x3150c51, + 0x3154c54, + 0x3174c55, + 0x318cc5d, + 0x3190c63, + 0x31a4c64, + 0x31bcc69, + 0x31dcc6f, + 0x31f4c77, + 0x31fcc7d, + 0x3218c7f, + 0x3234c86, + 0x3238c8d, + 0x3264c8e, + 0x3284c99, + 0x32a4ca1, + 0x32a8ca9, + 0x3310caa, + 0x3330cc4, + 0x3358ccc, + 0x335ccd6, + 0x3374cd7, + 0x33b8cdd, + 0x3438cee, + 0x3478d0e, + 0x347cd1e, + 0x3488d1f, + 0x34a8d22, + 0x34b0d2a, + 0x34d4d2c, + 0x34dcd35, + 0x351cd37, + 0x3570d47, + 0x3574d5c, + 0x3678d5d, + 0x23680d9e, + 0x23684da0, + 0x23688da1, + 0x2368cda2, + 0x23690da3, + 0x3694da4, + 0x23698da5, + 0x2369cda6, + 0x236a0da7, + 0x36a4da8, + 0x236a8da9, + 0x236b8daa, + 0x236bcdae, + 0x236c0daf, + 0x236c4db0, + 0x236c8db1, + 0x236ccdb2, + 0x236d0db3, + 0x36e8db4, + 0x370cdba, + 0x372cdc3, + 0x3da0dcb, + 0x23da4f68, + 0x23da8f69, + 0x23dacf6a, + 0x23db0f6b, + 0x3dc0f6c, + 0x3de0f70, + 0x3fa0f78, + 0x4070fe8, + 0x40e101c, + 0x4139038, + 0x422104e, + 0x4279088, + 0x42b509e, + 0x43b10ad, + 0x447d0ec, + 0x451511f, + 0x45a5145, + 0x4609169, + 0x4841182, + 0x48f9210, + 0x49c523e, + 0x4a11271, + 0x4a99284, + 0x4ad52a6, + 0x4b252b5, + 0x4b9d2c9, + 0x64ba12e7, + 0x64ba52e8, + 0x64ba92e9, + 0x4c252ea, + 0x4c81309, + 0x4cfd320, + 0x4d7533f, + 0x4df535d, + 0x4e6137d, + 0x4f8d398, + 0x4fe53e3, + 0x64fe93f9, + 0x50813fa, + 0x5089420, + 0x2508d422, + 0x5115423, + 0x5161445, + 0x51c9458, + 0x5271472, + 0x533949c, + 0x53a14ce, + 0x54b54e8, + 0x654b952d, + 0x654bd52e, + 0x551952f, + 0x5575546, + 0x560555d, + 0x5681581, + 0x56c55a0, + 0x57a95b1, + 0x57dd5ea, + 0x583d5f7, + 0x58b160f, + 0x593962c, + 0x597964e, + 0x59e965e, + 0x659ed67a, + 0x5a1567b, + 0x5a19685, + 0x5a49686, + 0x5a65692, + 0x5aa9699, + 0x5ab96aa, + 0x5ad16ae, + 0x5b496b4, + 0x5b516d2, + 0x5b6d6d4, + 0x5b816db, + 0x5ba56e0, + 0x25ba96e9, + 0x5bd56ea, + 0x5bd96f5, + 0x5be16f6, + 0x5bf56f8, + 0x5c156fd, + 0x5c25705, + 0x5c31709, + 0x5c6d70c, + 0x5c7171b, + 0x5c7971c, + 0x5c8d71e, + 0x5cb5723, + 0x5cc172d, + 0x5cc9730, + 0x5cf1732, + 0x5d1573c, + 0x5d2d745, + 0x5d3174b, + 0x5d3974c, + 0x5d4174e, + 0x5d55750, + 0x5e11755, + 0x5e15784, 0x5e1d785, - 0x5e25787, - 0x5e3d789, - 0x5e4d78f, - 0x5e51793, - 0x5e6d794, - 0x66f579b, - 0x672d9bd, - 0x67599cb, - 0x67759d6, - 0x67799dd, - 0x2677d9de, - 0x679d9df, - 0x67bd9e7, - 0x68019ef, - 0x6809a00, - 0x2680da02, - 0x26811a03, - 0x6819a04, - 0x6a35a06, - 0x6a49a8d, - 0x26a4da92, - 0x6a51a93, - 0x6a59a94, - 0x26a5da96, - 0x26a61a97, - 0x26a6da98, - 0x26a7da9b, - 0x26a85a9f, - 0x26a91aa1, - 0x6a95aa4, - 0x26a99aa5, - 0x26ab1aa6, - 0x26ab9aac, - 0x26abdaae, - 0x26ac5aaf, - 0x26ac9ab1, - 0x26acdab2, - 0x26ad5ab3, - 0x6addab5, - 0x6af1ab7, - 0x6b19abc, - 0x6b55ac6, - 0x6b59ad5, - 0x6b91ad6, - 0x6bb5ae4, - 0x770daed, - 0x7711dc3, - 0x7715dc4, - 0x27719dc5, - 0x771ddc6, - 0x27721dc7, - 0x7725dc8, - 0x27731dc9, - 0x7735dcc, - 0x7739dcd, - 0x2773ddce, - 0x7741dcf, - 0x27749dd0, - 0x774ddd2, - 0x7751dd3, - 0x27761dd4, - 0x7765dd8, - 0x7769dd9, - 0x776ddda, - 0x7771ddb, - 0x27775ddc, - 0x7779ddd, - 0x777ddde, - 0x7781ddf, - 0x7785de0, - 0x2778dde1, - 0x7791de3, - 0x7795de4, - 0x7799de5, - 0x2779dde6, - 0x77a1de7, - 0x277a9de8, - 0x277addea, - 0x77c9deb, - 0x77e1df2, - 0x7825df8, + 0x5e21787, + 0x5e45788, + 0x5e69791, + 0x5e8579a, + 0x5e997a1, + 0x5ead7a6, + 0x5eb57ab, + 0x5ebd7ad, + 0x5ec57af, + 0x5edd7b1, + 0x5eed7b7, + 0x5ef17bb, + 0x5f0d7bc, + 0x67957c3, + 0x67cd9e5, + 0x67f99f3, + 0x68159fe, + 0x6839a05, + 0x6859a0e, + 0x689da16, + 0x68a5a27, + 0x268a9a29, + 0x268ada2a, + 0x68b5a2b, + 0x6ae5a2d, + 0x6af9ab9, + 0x26afdabe, + 0x6b01abf, + 0x6b09ac0, + 0x26b15ac2, + 0x26b25ac5, + 0x26b2dac9, + 0x26b39acb, + 0x6b3dace, + 0x26b41acf, + 0x26b59ad0, + 0x26b61ad6, + 0x26b69ad8, + 0x26b6dada, + 0x26b75adb, + 0x6b79add, + 0x26b7dade, + 0x6b81adf, + 0x26b8dae0, + 0x6b95ae3, + 0x6ba9ae5, + 0x6badaea, + 0x6bd5aeb, + 0x6c11af5, + 0x6c15b04, + 0x6c4db05, + 0x6c71b13, + 0x77c9b1c, + 0x77cddf2, + 0x77d1df3, + 0x277d5df4, + 0x77d9df5, + 0x277dddf6, + 0x77e1df7, + 0x277eddf8, + 0x77f1dfb, + 0x77f5dfc, + 0x277f9dfd, + 0x77fddfe, + 0x27805dff, + 0x7809e01, + 0x780de02, + 0x2781de03, + 0x7821e07, + 0x7825e08, 0x7829e09, - 0x784de0a, - 0x7861e13, - 0x7865e18, - 0x7869e19, - 0x7a2de1a, - 0x27a31e8b, - 0x27a39e8c, - 0x27a3de8e, - 0x27a41e8f, - 0x7a49e90, - 0x7b25e92, - 0x27b31ec9, - 0x27b35ecc, - 0x27b39ecd, - 0x27b3dece, - 0x7b41ecf, - 0x7b6ded0, - 0x7b79edb, - 0x7b7dede, - 0x7ba1edf, - 0x7badee8, - 0x7bcdeeb, - 0x7bd1ef3, - 0x7c09ef4, - 0x7ebdf02, - 0x7f79faf, - 0x7f7dfde, - 0x7f81fdf, - 0x7f95fe0, - 0x7f99fe5, - 0x7fcdfe6, - 0x8005ff3, - 0x2800a001, - 0x8026002, - 0x804e009, - 0x8052013, - 0x8076014, - 0x809201d, - 0x80ba024, - 0x80ca02e, - 0x80ce032, - 0x80d2033, - 0x810e034, - 0x811a043, - 0x8142046, - 0x81de050, - 0x281e2077, - 0x81e6078, - 0x81f6079, - 0x281fa07d, - 0x820a07e, - 0x8226082, - 0x8246089, - 0x824a091, - 0x825e092, - 0x8272097, - 0x827609c, - 0x827a09d, - 0x827e09e, - 0x829e09f, - 0x834a0a7, - 0x834e0d2, - 0x836e0d3, - 0x839a0db, - 0x283aa0e6, - 0x83ae0ea, - 0x83be0eb, - 0x83f60ef, - 0x83fe0fd, - 0x84120ff, - 0x8432104, - 0x844e10c, - 0x845a113, - 0x8472116, - 0x84aa11c, - 0x84ae12a, - 0x858212b, - 0x8586160, - 0x859a161, - 0x85a2166, - 0x85ba168, - 0x85be16e, - 0x85ca16f, - 0x85d6172, - 0x85da175, - 0x85e2176, - 0x85e6178, - 0x860a179, - 0x864a182, - 0x864e192, - 0x866e193, - 0x86c219b, - 0x86f21b0, - 0x286f61bc, - 0x86fe1bd, - 0x87561bf, - 0x875a1d5, - 0x875e1d6, - 0x87621d7, - 0x87a61d8, - 0x87b61e9, - 0x87f61ed, - 0x87fa1fd, - 0x882a1fe, - 0x897620a, - 0x899e25d, - 0x89da267, - 0x8a02276, - 0x28a0a280, - 0x28a0e282, - 0x28a12283, - 0x8a1a284, - 0x8a26286, - 0x8b4a289, - 0x8b562d2, - 0x8b622d5, - 0x8b6e2d8, - 0x8b7a2db, - 0x8b862de, - 0x8b922e1, - 0x8b9e2e4, - 0x8baa2e7, - 0x8bb62ea, - 0x8bc22ed, - 0x28bc62f0, - 0x8bd22f1, - 0x8bde2f4, - 0x8bea2f7, - 0x8bf22fa, - 0x8bfe2fc, - 0x8c0a2ff, - 0x8c16302, - 0x8c22305, - 0x8c2e308, - 0x8c3a30b, - 0x8c4630e, - 0x8c52311, - 0x8c5e314, - 0x8c6a317, - 0x8c7631a, - 0x8ca231d, - 0x8cae328, + 0x782de0a, + 0x27831e0b, + 0x7835e0c, + 0x7839e0d, + 0x783de0e, + 0x7841e0f, + 0x27849e10, + 0x784de12, + 0x7851e13, + 0x7855e14, + 0x27859e15, + 0x785de16, + 0x27865e17, + 0x27869e19, + 0x7885e1a, + 0x789de21, + 0x78e1e27, + 0x78e5e38, + 0x7909e39, + 0x791de42, + 0x7921e47, + 0x7925e48, + 0x7ae9e49, + 0x27aedeba, + 0x27af5ebb, + 0x27af9ebd, + 0x27afdebe, + 0x7b05ebf, + 0x7be1ec1, + 0x27bedef8, + 0x27bf1efb, + 0x27bf5efc, + 0x27bf9efd, + 0x7bfdefe, + 0x7c29eff, + 0x7c39f0a, + 0x7c3df0e, + 0x7c61f0f, + 0x7c6df18, + 0x7c8df1b, + 0x7c91f23, + 0x7cc9f24, + 0x7f85f32, + 0x8041fe1, + 0x8046010, + 0x804a011, + 0x805e012, + 0x8062017, + 0x8096018, + 0x80ce025, + 0x280d2033, + 0x80ee034, + 0x811603b, + 0x811a045, + 0x813e046, + 0x815a04f, + 0x8182056, + 0x8192060, + 0x8196064, + 0x819a065, + 0x81d6066, + 0x81e2075, + 0x820a078, + 0x82ae082, + 0x282b20ab, + 0x82b60ac, + 0x82c60ad, + 0x282ca0b1, + 0x82de0b2, + 0x82fa0b7, + 0x831a0be, + 0x831e0c6, + 0x83320c7, + 0x83460cc, + 0x834a0d1, + 0x83520d2, + 0x83560d4, + 0x83760d5, + 0x84220dd, + 0x8426108, + 0x8446109, + 0x8472111, + 0x2848211c, + 0x8486120, + 0x8496121, + 0x84d6125, + 0x84de135, + 0x84f2137, + 0x851213c, + 0x852e144, + 0x853a14b, + 0x855a14e, + 0x858e156, + 0x8596163, + 0x866a165, + 0x866e19a, + 0x868219b, + 0x868a1a0, + 0x86a21a2, + 0x86a61a8, + 0x86b21a9, + 0x86be1ac, + 0x86c21af, + 0x86ca1b0, + 0x86ce1b2, + 0x86f21b3, + 0x87321bc, + 0x87361cc, + 0x87561cd, + 0x87aa1d5, + 0x87da1ea, + 0x287de1f6, + 0x87e61f7, + 0x883e1f9, + 0x884220f, + 0x8846210, + 0x884a211, + 0x888e212, + 0x889e223, + 0x88de227, + 0x88e2237, + 0x8912238, + 0x8a5e244, + 0x8a86297, + 0x8ac22a1, + 0x8aea2b0, + 0x28af22ba, + 0x28af62bc, + 0x28afa2bd, + 0x8b022be, + 0x8b0e2c0, + 0x8c322c3, + 0x8c3e30c, + 0x8c4a30f, + 0x8c56312, + 0x8c62315, + 0x8c6e318, + 0x8c7a31b, + 0x8c8631e, + 0x8c92321, + 0x8c9e324, + 0x8caa327, + 0x28cae32a, 0x8cba32b, 0x8cc632e, 0x8cd2331, - 0x8cde334, - 0x8ce6337, + 0x8cda334, + 0x8ce6336, 0x8cf2339, 0x8cfe33c, 0x8d0a33f, @@ -10390,46 +10455,66 @@ var children = [...]uint32{ 0x8d4634e, 0x8d52351, 0x8d5e354, - 0x8d6a357, - 0x8d7235a, - 0x8d7e35c, - 0x8d8635f, - 0x8d92361, - 0x8d9e364, - 0x8daa367, - 0x8db636a, - 0x8dc236d, - 0x8dce370, + 0x8d8a357, + 0x8d96362, + 0x8da2365, + 0x8dae368, + 0x8dba36b, + 0x8dc636e, + 0x8dce371, 0x8dda373, 0x8de6376, - 0x8dea379, - 0x8df637a, - 0x8e1237d, - 0x8e16384, - 0x8e26385, - 0x8e4a389, - 0x8e4e392, - 0x8e92393, - 0x8e9a3a4, - 0x8eae3a6, - 0x8ee23ab, - 0x8f023b8, - 0x8f063c0, - 0x8f0e3c1, + 0x8df2379, + 0x8dfe37c, + 0x8e0a37f, + 0x8e16382, + 0x8e22385, + 0x8e2e388, + 0x8e3a38b, + 0x8e4638e, + 0x8e52391, + 0x8e5a394, + 0x8e66396, + 0x8e6e399, + 0x8e7a39b, + 0x8e8639e, + 0x8e923a1, + 0x8e9e3a4, + 0x8eaa3a7, + 0x8eb63aa, + 0x8ec23ad, + 0x8ece3b0, + 0x8ed23b3, + 0x8ede3b4, + 0x8efa3b7, + 0x8efe3be, + 0x8f0e3bf, 0x8f323c3, - 0x8f4a3cc, - 0x8f623d2, - 0x8f7a3d8, - 0x8f923de, - 0x28fda3e4, - 0x8fde3f6, - 0x900a3f7, - 0x901a402, - 0x902e406, + 0x8f363cc, + 0x8f7a3cd, + 0x8f823de, + 0x8f963e0, + 0x8fca3e5, + 0x8fea3f2, + 0x8fee3fa, + 0x8ff63fb, + 0x901a3fd, + 0x9032406, + 0x904a40c, + 0x9062412, + 0x908a418, + 0x909e422, + 0x90b6427, + 0x90ba42d, + 0x2910242e, + 0x9106440, + 0x9132441, + 0x914244c, + 0x9156450, } -// max children 650 (capacity 1023) -// max text offset 31341 (capacity 32767) +// max children 654 (capacity 1023) +// max text offset 31758 (capacity 32767) // max text length 36 (capacity 63) -// max hi 9227 (capacity 16383) -// max lo 9222 (capacity 16383) +// max hi 9301 (capacity 16383) +// max lo 9296 (capacity 16383) diff --git a/vendor/modules.txt b/vendor/modules.txt index a385ca2b..f72acc85 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -88,7 +88,7 @@ github.com/elastic/go-elasticsearch/v7/internal/version # github.com/fatih/color v1.10.0 ## explicit github.com/fatih/color -# github.com/go-resty/resty/v2 v2.6.0 +# github.com/go-resty/resty/v2 v2.7.0 ## explicit github.com/go-resty/resty/v2 # github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da @@ -292,8 +292,7 @@ golang.org/x/lint/golint ## explicit golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 -## explicit +# golang.org/x/net v0.0.0-20211029224645-99673261e6eb golang.org/x/net/context golang.org/x/net/context/ctxhttp golang.org/x/net/http/httpguts