From ee536430efb2f2559e794749a30911307d03e63a Mon Sep 17 00:00:00 2001 From: Andrei Mihu Date: Wed, 26 Feb 2020 21:43:48 -0800 Subject: [PATCH] Update to nakama-common 1.3.1. --- go.mod | 8 +- go.sum | 16 +- .../protoc-gen-go/descriptor/descriptor.pb.go | 12 +- .../protoc-gen-go/descriptor/descriptor.proto | 140 ++-- .../golang/protobuf/ptypes/any/any.pb.go | 7 +- .../golang/protobuf/ptypes/any/any.proto | 3 +- .../protobuf/ptypes/duration/duration.pb.go | 6 +- .../protobuf/ptypes/duration/duration.proto | 3 +- .../golang/protobuf/ptypes/empty/empty.pb.go | 4 +- .../protobuf/ptypes/struct/struct.pb.go | 4 +- .../protobuf/ptypes/struct/struct.proto | 1 - .../protobuf/ptypes/timestamp/timestamp.pb.go | 40 +- .../protobuf/ptypes/timestamp/timestamp.proto | 37 +- .../protobuf/ptypes/wrappers/wrappers.pb.go | 4 +- .../protobuf/ptypes/wrappers/wrappers.proto | 5 + .../heroiclabs/nakama-common/api/api.pb.go | 759 ++++++++++-------- .../heroiclabs/nakama-common/api/api.proto | 20 + .../nakama-common/rtapi/realtime.pb.go | 4 +- .../nakama-common/runtime/runtime.go | 21 +- vendor/modules.txt | 8 +- 20 files changed, 651 insertions(+), 451 deletions(-) diff --git a/go.mod b/go.mod index 3f8191287..1ee3e6a4c 100644 --- a/go.mod +++ b/go.mod @@ -26,12 +26,12 @@ require ( github.com/go-sql-driver/mysql v1.4.1 // indirect github.com/gobuffalo/packr v1.30.1 github.com/gofrs/uuid v0.0.0-20190510204422-abfe1881e60e - github.com/golang/protobuf v1.3.3 + github.com/golang/protobuf v1.3.4 github.com/gorilla/handlers v1.4.2 github.com/gorilla/mux v1.7.4 github.com/gorilla/websocket v1.4.1 github.com/grpc-ecosystem/grpc-gateway v1.13.0 - github.com/heroiclabs/nakama-common v1.3.0 + github.com/heroiclabs/nakama-common v1.3.1 github.com/jackc/fake v0.0.0-20150926172116-812a484cc733 // indirect github.com/jackc/pgx v3.5.0+incompatible github.com/jmhodges/levigo v1.0.0 // indirect @@ -55,11 +55,11 @@ require ( go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.10.0 golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d - golang.org/x/net v0.0.0-20200226051749-491c5fce7268 // indirect + golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae // indirect google.golang.org/api v0.10.0 // indirect google.golang.org/appengine v1.6.2 // indirect - google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688 + google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c google.golang.org/grpc v1.27.1 gopkg.in/gorp.v1 v1.7.2 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0-20190411184413-94d9e492cc53 diff --git a/go.sum b/go.sum index 72c5c6e36..044dc7563 100644 --- a/go.sum +++ b/go.sum @@ -108,6 +108,8 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -141,8 +143,8 @@ github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heroiclabs/nakama-common v1.3.0 h1:YjhVIFxt6HEcHeMVcACBQ0pwrG9Ts9LRxo88h9/uWO0= -github.com/heroiclabs/nakama-common v1.3.0/go.mod h1:e8eLcnHLZnElf9yvJqrLGTbvnxXQJRLVGebx/5zRXc4= +github.com/heroiclabs/nakama-common v1.3.1 h1:M2pBuJtvh1QLjXZtHuwTGpRTfGgpNWDGF2y6SOgl9t4= +github.com/heroiclabs/nakama-common v1.3.1/go.mod h1:0lw1qUs5FhJlox1WsEPdODRsdvfZ7Q1c/2jxkbeL++M= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -296,8 +298,8 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226051749-491c5fce7268 h1:fnuNgko6vrkrxuKfTMd+0eOz50ziv+Wi+t38KUT3j+E= -golang.org/x/net v0.0.0-20200226051749-491c5fce7268/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-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 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= @@ -369,11 +371,9 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190905072037-92dd089d5514 h1:oFSK4421fpCKRrpzIpybyBVWyht05NegY9+L/3TLAZs= -google.golang.org/genproto v0.0.0-20190905072037-92dd089d5514/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688 h1:1+0Z5cgv1eDXJD9z2tdQF9PSSQnJXwism490hJydMRI= -google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c h1:xFOdgVPpeowWAH0MJ5i0XMp+3yWiWamMtN/kx9xThIQ= +google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1 h1:j6XxA85m/6txkUCHvzlV5f+HBNl/1r5cZ2A/3IEFOO8= diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go index 1ded05bbe..d371d5697 100644 --- a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go @@ -1376,8 +1376,8 @@ type FileOptions struct { // determining the namespace. PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be used - // for determining the namespace. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` // Use this option to change the package of ruby generated classes. Default // is empty. When this option is not set, the package name will be used for @@ -1627,7 +1627,7 @@ type MessageOptions struct { // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as + // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax @@ -2377,7 +2377,7 @@ type SourceCodeInfo struct { // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines + // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to @@ -2718,7 +2718,9 @@ func init() { proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") } -func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor_e5baabe45344a177) } +func init() { + proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor_e5baabe45344a177) +} var fileDescriptor_e5baabe45344a177 = []byte{ // 2589 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto index ed08fcbc5..a2102d7aa 100644 --- a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto @@ -40,6 +40,7 @@ syntax = "proto2"; package google.protobuf; + option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; option java_package = "com.google.protobuf"; option java_outer_classname = "DescriptorProtos"; @@ -59,8 +60,8 @@ message FileDescriptorSet { // Describes a complete .proto file. message FileDescriptorProto { - optional string name = 1; // file name, relative to root of source tree - optional string package = 2; // e.g. "foo", "foo.bar", etc. + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. // Names of files imported by this file. repeated string dependency = 3; @@ -100,8 +101,8 @@ message DescriptorProto { repeated EnumDescriptorProto enum_type = 4; message ExtensionRange { - optional int32 start = 1; - optional int32 end = 2; + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. optional ExtensionRangeOptions options = 3; } @@ -115,8 +116,8 @@ message DescriptorProto { // fields or extension ranges in the same message. Reserved ranges may // not overlap. message ReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Exclusive. + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. } repeated ReservedRange reserved_range = 9; // Reserved field names, which may not be used by fields in the same message. @@ -137,42 +138,42 @@ message FieldDescriptorProto { enum Type { // 0 is reserved for errors. // Order is weird for historical reasons. - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if // negative values are likely. - TYPE_INT64 = 3; - TYPE_UINT64 = 4; + TYPE_INT64 = 3; + TYPE_UINT64 = 4; // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if // negative values are likely. - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; // Tag-delimited aggregate. // Group type is deprecated and not supported in proto3. However, Proto3 // implementations should still be able to parse the group wire format and // treat group fields as unknown fields. - TYPE_GROUP = 10; - TYPE_MESSAGE = 11; // Length-delimited aggregate. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. // New in version 2. - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; // Uses ZigZag encoding. - TYPE_SINT64 = 18; // Uses ZigZag encoding. - }; + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } enum Label { // 0 is reserved for errors - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - }; + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + } optional string name = 1; optional int32 number = 3; @@ -234,8 +235,8 @@ message EnumDescriptorProto { // is inclusive such that it can appropriately represent the entire int32 // domain. message EnumReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Inclusive. + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. } // Range of reserved numeric values. Reserved numeric values may not be used @@ -276,9 +277,9 @@ message MethodDescriptorProto { optional MethodOptions options = 4; // Identifies if client streams multiple client messages - optional bool client_streaming = 5 [default=false]; + optional bool client_streaming = 5 [default = false]; // Identifies if server streams multiple server messages - optional bool server_streaming = 6 [default=false]; + optional bool server_streaming = 6 [default = false]; } @@ -314,7 +315,6 @@ message MethodDescriptorProto { // If this turns out to be popular, a web service will be set up // to automatically assign option numbers. - message FileOptions { // Sets the Java package where classes generated from this .proto will be @@ -337,7 +337,7 @@ message FileOptions { // named by java_outer_classname. However, the outer class will still be // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. - optional bool java_multiple_files = 10 [default=false]; + optional bool java_multiple_files = 10 [default = false]; // This option does nothing. optional bool java_generate_equals_and_hash = 20 [deprecated=true]; @@ -348,17 +348,17 @@ message FileOptions { // Message reflection will do the same. // However, an extension field still accepts non-UTF-8 byte sequences. // This option has no effect on when used with the lite runtime. - optional bool java_string_check_utf8 = 27 [default=false]; + optional bool java_string_check_utf8 = 27 [default = false]; // Generated classes can be optimized for speed or code size. enum OptimizeMode { - SPEED = 1; // Generate complete code for parsing, serialization, - // etc. - CODE_SIZE = 2; // Use ReflectionOps to implement these methods. - LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. } - optional OptimizeMode optimize_for = 9 [default=SPEED]; + optional OptimizeMode optimize_for = 9 [default = SPEED]; // Sets the Go package where structs generated from this .proto will be // placed. If omitted, the Go package will be derived from the following: @@ -369,6 +369,7 @@ message FileOptions { + // Should generic services be generated in each language? "Generic" services // are not specific to any particular RPC system. They are generated by the // main code generators in each language (without additional plugins). @@ -379,20 +380,20 @@ message FileOptions { // that generate code specific to your particular RPC system. Therefore, // these default to false. Old code which depends on generic services should // explicitly set them to true. - optional bool cc_generic_services = 16 [default=false]; - optional bool java_generic_services = 17 [default=false]; - optional bool py_generic_services = 18 [default=false]; - optional bool php_generic_services = 42 [default=false]; + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + optional bool php_generic_services = 42 [default = false]; // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations // for everything in the file, or it will be completely ignored; in the very // least, this is a formalization for deprecating files. - optional bool deprecated = 23 [default=false]; + optional bool deprecated = 23 [default = false]; // Enables the use of arenas for the proto messages in this file. This applies // only to generated classes for C++. - optional bool cc_enable_arenas = 31 [default=false]; + optional bool cc_enable_arenas = 31 [default = false]; // Sets the objective c class prefix which is prepended to all objective c @@ -417,10 +418,9 @@ message FileOptions { // determining the namespace. optional string php_namespace = 41; - // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be used - // for determining the namespace. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. optional string php_metadata_namespace = 44; // Use this option to change the package of ruby generated classes. Default @@ -428,6 +428,7 @@ message FileOptions { // determining the ruby package. optional string ruby_package = 45; + // The parser stores options it doesn't recognize here. // See the documentation for the "Options" section above. repeated UninterpretedOption uninterpreted_option = 999; @@ -458,18 +459,18 @@ message MessageOptions { // // Because this is an option, the above two restrictions are not enforced by // the protocol compiler. - optional bool message_set_wire_format = 1 [default=false]; + optional bool message_set_wire_format = 1 [default = false]; // Disables the generation of the standard "descriptor()" accessor, which can // conflict with a field of the same name. This is meant to make migration // from proto1 easier; new code should avoid fields named "descriptor". - optional bool no_standard_descriptor_accessor = 2 [default=false]; + optional bool no_standard_descriptor_accessor = 2 [default = false]; // Is this message deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the message, or it will be completely ignored; in the very least, // this is a formalization for deprecating messages. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; // Whether the message is an automatically generated map entry type for the // maps field. @@ -486,7 +487,7 @@ message MessageOptions { // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as + // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax @@ -497,6 +498,7 @@ message MessageOptions { reserved 8; // javalite_serializable reserved 9; // javanano_as_lite + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -576,16 +578,16 @@ message FieldOptions { // implementation must either *always* check its required fields, or *never* // check its required fields, regardless of whether or not the message has // been parsed. - optional bool lazy = 5 [default=false]; + optional bool lazy = 5 [default = false]; // Is this field deprecated? // Depending on the target platform, this can emit Deprecated annotations // for accessors, or it will be completely ignored; in the very least, this // is a formalization for deprecating fields. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; // For Google-internal migration only. Do not use. - optional bool weak = 10 [default=false]; + optional bool weak = 10 [default = false]; // The parser stores options it doesn't recognize here. See above. @@ -615,7 +617,7 @@ message EnumOptions { // Depending on the target platform, this can emit Deprecated annotations // for the enum, or it will be completely ignored; in the very least, this // is a formalization for deprecating enums. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; reserved 5; // javanano_as_lite @@ -631,7 +633,7 @@ message EnumValueOptions { // Depending on the target platform, this can emit Deprecated annotations // for the enum value, or it will be completely ignored; in the very least, // this is a formalization for deprecating enum values. - optional bool deprecated = 1 [default=false]; + optional bool deprecated = 1 [default = false]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -651,7 +653,7 @@ message ServiceOptions { // Depending on the target platform, this can emit Deprecated annotations // for the service, or it will be completely ignored; in the very least, // this is a formalization for deprecating services. - optional bool deprecated = 33 [default=false]; + optional bool deprecated = 33 [default = false]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -671,18 +673,18 @@ message MethodOptions { // Depending on the target platform, this can emit Deprecated annotations // for the method, or it will be completely ignored; in the very least, // this is a formalization for deprecating methods. - optional bool deprecated = 33 [default=false]; + optional bool deprecated = 33 [default = false]; // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, // or neither? HTTP based RPC implementation may choose GET verb for safe // methods, and PUT verb for idempotent methods instead of the default POST. enum IdempotencyLevel { IDEMPOTENCY_UNKNOWN = 0; - NO_SIDE_EFFECTS = 1; // implies idempotent - IDEMPOTENT = 2; // idempotent, but may have side effects + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects } - optional IdempotencyLevel idempotency_level = - 34 [default=IDEMPOTENCY_UNKNOWN]; + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -763,7 +765,7 @@ message SourceCodeInfo { // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines + // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to @@ -794,14 +796,14 @@ message SourceCodeInfo { // [ 4, 3, 2, 7 ] // this path refers to the whole field declaration (from the beginning // of the label to the terminating semicolon). - repeated int32 path = 1 [packed=true]; + repeated int32 path = 1 [packed = true]; // Always has exactly three or four elements: start line, start column, // end line (optional, otherwise assumed same as start line), end column. // These are packed into a single field for efficiency. Note that line // and column numbers are zero-based -- typically you will want to add // 1 to each before displaying to a user. - repeated int32 span = 2 [packed=true]; + repeated int32 span = 2 [packed = true]; // If this SourceCodeInfo represents a complete declaration, these are any // comments appearing before and after the declaration which appear to be @@ -866,7 +868,7 @@ message GeneratedCodeInfo { message Annotation { // Identifies the element in the original source .proto file. This field // is formatted the same as SourceCodeInfo.Location.path. - repeated int32 path = 1 [packed=true]; + repeated int32 path = 1 [packed = true]; // Identifies the filesystem path to the original source .proto. optional string source_file = 2; diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go index 78ee52334..7b0ad1ad8 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go @@ -102,7 +102,8 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // type Any struct { // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. The last segment of the URL's path must represent + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). @@ -181,7 +182,9 @@ func init() { proto.RegisterType((*Any)(nil), "google.protobuf.Any") } -func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) } +func init() { + proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) +} var fileDescriptor_b53526c13ae22eb4 = []byte{ // 185 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.proto b/vendor/github.com/golang/protobuf/ptypes/any/any.proto index 493294255..c9be85416 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/any.proto +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.proto @@ -121,7 +121,8 @@ option objc_class_prefix = "GPB"; // message Any { // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. The last segment of the URL's path must represent + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go index 0d681ee21..58b078699 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go @@ -41,7 +41,7 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; -// } else if (durations.seconds > 0 && duration.nanos < 0) { +// } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } @@ -142,7 +142,9 @@ func init() { proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") } -func init() { proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) } +func init() { + proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) +} var fileDescriptor_23597b2ebd7ac6c5 = []byte{ // 190 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto index 975fce41a..99cb102c3 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto @@ -61,7 +61,7 @@ option objc_class_prefix = "GPB"; // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; -// } else if (durations.seconds > 0 && duration.nanos < 0) { +// } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } @@ -101,7 +101,6 @@ option objc_class_prefix = "GPB"; // // message Duration { - // Signed seconds of the span of time. Must be from -315,576,000,000 // to +315,576,000,000 inclusive. Note: these bounds are computed from: // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go index b4eb03ecc..6bd9f6748 100644 --- a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go @@ -66,7 +66,9 @@ func init() { proto.RegisterType((*Empty)(nil), "google.protobuf.Empty") } -func init() { proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) } +func init() { + proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) +} var fileDescriptor_900544acb223d5b8 = []byte{ // 148 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go b/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go index 33daa73dd..d82d6176b 100644 --- a/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go @@ -302,7 +302,9 @@ func init() { proto.RegisterType((*ListValue)(nil), "google.protobuf.ListValue") } -func init() { proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) } +func init() { + proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) +} var fileDescriptor_df322afd6c9fb402 = []byte{ // 417 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto b/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto index 7d7808e7f..ed990e31d 100644 --- a/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto +++ b/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto @@ -40,7 +40,6 @@ option java_outer_classname = "StructProto"; option java_multiple_files = true; option objc_class_prefix = "GPB"; - // `Struct` represents a structured data value, consisting of fields // which map to dynamically typed values. In some languages, `Struct` // might be supported by a native representation. For example, in diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go index 31cd846de..7a3b1e40e 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go @@ -20,17 +20,19 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package -// A Timestamp represents a point in time independent of any time zone -// or calendar, represented as seconds and fractions of seconds at -// nanosecond resolution in UTC Epoch time. It is encoded using the -// Proleptic Gregorian Calendar which extends the Gregorian calendar -// backwards to year one. It is encoded assuming all minutes are 60 -// seconds long, i.e. leap seconds are "smeared" so that no leap second -// table is needed for interpretation. Range is from -// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. -// By restricting to that range, we ensure that we can convert to -// and from RFC 3339 date strings. -// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // @@ -91,12 +93,14 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the -// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted -// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) -// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one -// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // @@ -160,7 +164,9 @@ func init() { proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") } -func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) } +func init() { + proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) +} var fileDescriptor_292007bbfe81227e = []byte{ // 191 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto index eafb3fa03..cd357864a 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto @@ -40,17 +40,19 @@ option java_outer_classname = "TimestampProto"; option java_multiple_files = true; option objc_class_prefix = "GPB"; -// A Timestamp represents a point in time independent of any time zone -// or calendar, represented as seconds and fractions of seconds at -// nanosecond resolution in UTC Epoch time. It is encoded using the -// Proleptic Gregorian Calendar which extends the Gregorian calendar -// backwards to year one. It is encoded assuming all minutes are 60 -// seconds long, i.e. leap seconds are "smeared" so that no leap second -// table is needed for interpretation. Range is from -// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. -// By restricting to that range, we ensure that we can convert to -// and from RFC 3339 date strings. -// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // @@ -111,17 +113,18 @@ option objc_class_prefix = "GPB"; // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the -// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted -// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) -// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one -// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // message Timestamp { - // Represents seconds of UTC time since Unix epoch // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to // 9999-12-31T23:59:59Z inclusive. diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go index add19a1ad..968ff318d 100644 --- a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go @@ -437,7 +437,9 @@ func init() { proto.RegisterType((*BytesValue)(nil), "google.protobuf.BytesValue") } -func init() { proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) } +func init() { + proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) +} var fileDescriptor_5377b62bda767935 = []byte{ // 259 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto index 01947639a..9ee41e384 100644 --- a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto @@ -32,6 +32,11 @@ // for embedding primitives in the `google.protobuf.Any` type and for places // where we need to distinguish between the absence of a primitive // typed field and its default value. +// +// These wrappers have no meaningful use within repeated fields as they lack +// the ability to detect presence on individual elements. +// These wrappers have no meaningful use within a map or a oneof since +// individual entries of a map or fields of a oneof can already detect presence. syntax = "proto3"; diff --git a/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go b/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go index ad885083c..30e6386ad 100644 --- a/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go +++ b/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go @@ -55,7 +55,7 @@ func (x Friend_State) String() string { } func (Friend_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{29, 0} + return fileDescriptor_1b40cafcd4234784, []int{31, 0} } // The group role status. @@ -91,7 +91,7 @@ func (x GroupUserList_GroupUser_State) String() string { } func (GroupUserList_GroupUser_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{34, 0, 0} + return fileDescriptor_1b40cafcd4234784, []int{36, 0, 0} } // The group role status. @@ -127,7 +127,7 @@ func (x UserGroupList_UserGroup_State) String() string { } func (UserGroupList_UserGroup_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{76, 0, 0} + return fileDescriptor_1b40cafcd4234784, []int{78, 0, 0} } // A user with additional account details. Always the current user. @@ -425,6 +425,56 @@ func (m *AccountFacebook) GetVars() map[string]string { return nil } +// Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink. +type AccountFacebookInstantGame struct { + // The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration) + SignedPlayerInfo string `protobuf:"bytes,1,opt,name=signed_player_info,json=signedPlayerInfo,proto3" json:"signed_player_info,omitempty"` + // Extra information that will be bundled in the session token. + Vars map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountFacebookInstantGame) Reset() { *m = AccountFacebookInstantGame{} } +func (m *AccountFacebookInstantGame) String() string { return proto.CompactTextString(m) } +func (*AccountFacebookInstantGame) ProtoMessage() {} +func (*AccountFacebookInstantGame) Descriptor() ([]byte, []int) { + return fileDescriptor_1b40cafcd4234784, []int{5} +} + +func (m *AccountFacebookInstantGame) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountFacebookInstantGame.Unmarshal(m, b) +} +func (m *AccountFacebookInstantGame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountFacebookInstantGame.Marshal(b, m, deterministic) +} +func (m *AccountFacebookInstantGame) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountFacebookInstantGame.Merge(m, src) +} +func (m *AccountFacebookInstantGame) XXX_Size() int { + return xxx_messageInfo_AccountFacebookInstantGame.Size(m) +} +func (m *AccountFacebookInstantGame) XXX_DiscardUnknown() { + xxx_messageInfo_AccountFacebookInstantGame.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountFacebookInstantGame proto.InternalMessageInfo + +func (m *AccountFacebookInstantGame) GetSignedPlayerInfo() string { + if m != nil { + return m.SignedPlayerInfo + } + return "" +} + +func (m *AccountFacebookInstantGame) GetVars() map[string]string { + if m != nil { + return m.Vars + } + return nil +} + // Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. type AccountGameCenter struct { // Player ID (generated by GameCenter). @@ -450,7 +500,7 @@ func (m *AccountGameCenter) Reset() { *m = AccountGameCenter{} } func (m *AccountGameCenter) String() string { return proto.CompactTextString(m) } func (*AccountGameCenter) ProtoMessage() {} func (*AccountGameCenter) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{5} + return fileDescriptor_1b40cafcd4234784, []int{6} } func (m *AccountGameCenter) XXX_Unmarshal(b []byte) error { @@ -535,7 +585,7 @@ func (m *AccountGoogle) Reset() { *m = AccountGoogle{} } func (m *AccountGoogle) String() string { return proto.CompactTextString(m) } func (*AccountGoogle) ProtoMessage() {} func (*AccountGoogle) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{6} + return fileDescriptor_1b40cafcd4234784, []int{7} } func (m *AccountGoogle) XXX_Unmarshal(b []byte) error { @@ -585,7 +635,7 @@ func (m *AccountSteam) Reset() { *m = AccountSteam{} } func (m *AccountSteam) String() string { return proto.CompactTextString(m) } func (*AccountSteam) ProtoMessage() {} func (*AccountSteam) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{7} + return fileDescriptor_1b40cafcd4234784, []int{8} } func (m *AccountSteam) XXX_Unmarshal(b []byte) error { @@ -635,7 +685,7 @@ func (m *AddFriendsRequest) Reset() { *m = AddFriendsRequest{} } func (m *AddFriendsRequest) String() string { return proto.CompactTextString(m) } func (*AddFriendsRequest) ProtoMessage() {} func (*AddFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{8} + return fileDescriptor_1b40cafcd4234784, []int{9} } func (m *AddFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -685,7 +735,7 @@ func (m *AddGroupUsersRequest) Reset() { *m = AddGroupUsersRequest{} } func (m *AddGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*AddGroupUsersRequest) ProtoMessage() {} func (*AddGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{9} + return fileDescriptor_1b40cafcd4234784, []int{10} } func (m *AddGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -737,7 +787,7 @@ func (m *AuthenticateCustomRequest) Reset() { *m = AuthenticateCustomReq func (m *AuthenticateCustomRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateCustomRequest) ProtoMessage() {} func (*AuthenticateCustomRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{10} + return fileDescriptor_1b40cafcd4234784, []int{11} } func (m *AuthenticateCustomRequest) XXX_Unmarshal(b []byte) error { @@ -796,7 +846,7 @@ func (m *AuthenticateDeviceRequest) Reset() { *m = AuthenticateDeviceReq func (m *AuthenticateDeviceRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateDeviceRequest) ProtoMessage() {} func (*AuthenticateDeviceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{11} + return fileDescriptor_1b40cafcd4234784, []int{12} } func (m *AuthenticateDeviceRequest) XXX_Unmarshal(b []byte) error { @@ -855,7 +905,7 @@ func (m *AuthenticateEmailRequest) Reset() { *m = AuthenticateEmailReque func (m *AuthenticateEmailRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateEmailRequest) ProtoMessage() {} func (*AuthenticateEmailRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{12} + return fileDescriptor_1b40cafcd4234784, []int{13} } func (m *AuthenticateEmailRequest) XXX_Unmarshal(b []byte) error { @@ -916,7 +966,7 @@ func (m *AuthenticateFacebookRequest) Reset() { *m = AuthenticateFaceboo func (m *AuthenticateFacebookRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateFacebookRequest) ProtoMessage() {} func (*AuthenticateFacebookRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{13} + return fileDescriptor_1b40cafcd4234784, []int{14} } func (m *AuthenticateFacebookRequest) XXX_Unmarshal(b []byte) error { @@ -965,6 +1015,67 @@ func (m *AuthenticateFacebookRequest) GetSync() *wrappers.BoolValue { return nil } +// Authenticate against the server with Facebook Instant Game token. +type AuthenticateFacebookInstantGameRequest struct { + // The Facebook Instant Game account details. + Account *AccountFacebookInstantGame `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + // Register the account if the user does not already exist. + Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"` + // Set the username on the account at register. Must be unique. + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AuthenticateFacebookInstantGameRequest) Reset() { + *m = AuthenticateFacebookInstantGameRequest{} +} +func (m *AuthenticateFacebookInstantGameRequest) String() string { return proto.CompactTextString(m) } +func (*AuthenticateFacebookInstantGameRequest) ProtoMessage() {} +func (*AuthenticateFacebookInstantGameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1b40cafcd4234784, []int{15} +} + +func (m *AuthenticateFacebookInstantGameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Unmarshal(m, b) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Marshal(b, m, deterministic) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Merge(m, src) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_Size() int { + return xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Size(m) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AuthenticateFacebookInstantGameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthenticateFacebookInstantGameRequest proto.InternalMessageInfo + +func (m *AuthenticateFacebookInstantGameRequest) GetAccount() *AccountFacebookInstantGame { + if m != nil { + return m.Account + } + return nil +} + +func (m *AuthenticateFacebookInstantGameRequest) GetCreate() *wrappers.BoolValue { + if m != nil { + return m.Create + } + return nil +} + +func (m *AuthenticateFacebookInstantGameRequest) GetUsername() string { + if m != nil { + return m.Username + } + return "" +} + // Authenticate against the server with Apple's Game Center. type AuthenticateGameCenterRequest struct { // The Game Center account details. @@ -982,7 +1093,7 @@ func (m *AuthenticateGameCenterRequest) Reset() { *m = AuthenticateGameC func (m *AuthenticateGameCenterRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateGameCenterRequest) ProtoMessage() {} func (*AuthenticateGameCenterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{14} + return fileDescriptor_1b40cafcd4234784, []int{16} } func (m *AuthenticateGameCenterRequest) XXX_Unmarshal(b []byte) error { @@ -1041,7 +1152,7 @@ func (m *AuthenticateGoogleRequest) Reset() { *m = AuthenticateGoogleReq func (m *AuthenticateGoogleRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateGoogleRequest) ProtoMessage() {} func (*AuthenticateGoogleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{15} + return fileDescriptor_1b40cafcd4234784, []int{17} } func (m *AuthenticateGoogleRequest) XXX_Unmarshal(b []byte) error { @@ -1100,7 +1211,7 @@ func (m *AuthenticateSteamRequest) Reset() { *m = AuthenticateSteamReque func (m *AuthenticateSteamRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateSteamRequest) ProtoMessage() {} func (*AuthenticateSteamRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{16} + return fileDescriptor_1b40cafcd4234784, []int{18} } func (m *AuthenticateSteamRequest) XXX_Unmarshal(b []byte) error { @@ -1157,7 +1268,7 @@ func (m *BanGroupUsersRequest) Reset() { *m = BanGroupUsersRequest{} } func (m *BanGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*BanGroupUsersRequest) ProtoMessage() {} func (*BanGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{17} + return fileDescriptor_1b40cafcd4234784, []int{19} } func (m *BanGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -1207,7 +1318,7 @@ func (m *BlockFriendsRequest) Reset() { *m = BlockFriendsRequest{} } func (m *BlockFriendsRequest) String() string { return proto.CompactTextString(m) } func (*BlockFriendsRequest) ProtoMessage() {} func (*BlockFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{18} + return fileDescriptor_1b40cafcd4234784, []int{20} } func (m *BlockFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -1279,7 +1390,7 @@ func (m *ChannelMessage) Reset() { *m = ChannelMessage{} } func (m *ChannelMessage) String() string { return proto.CompactTextString(m) } func (*ChannelMessage) ProtoMessage() {} func (*ChannelMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{19} + return fileDescriptor_1b40cafcd4234784, []int{21} } func (m *ChannelMessage) XXX_Unmarshal(b []byte) error { @@ -1408,7 +1519,7 @@ func (m *ChannelMessageList) Reset() { *m = ChannelMessageList{} } func (m *ChannelMessageList) String() string { return proto.CompactTextString(m) } func (*ChannelMessageList) ProtoMessage() {} func (*ChannelMessageList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{20} + return fileDescriptor_1b40cafcd4234784, []int{22} } func (m *ChannelMessageList) XXX_Unmarshal(b []byte) error { @@ -1473,7 +1584,7 @@ func (m *CreateGroupRequest) Reset() { *m = CreateGroupRequest{} } func (m *CreateGroupRequest) String() string { return proto.CompactTextString(m) } func (*CreateGroupRequest) ProtoMessage() {} func (*CreateGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{21} + return fileDescriptor_1b40cafcd4234784, []int{23} } func (m *CreateGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1551,7 +1662,7 @@ func (m *DeleteFriendsRequest) Reset() { *m = DeleteFriendsRequest{} } func (m *DeleteFriendsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteFriendsRequest) ProtoMessage() {} func (*DeleteFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{22} + return fileDescriptor_1b40cafcd4234784, []int{24} } func (m *DeleteFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -1599,7 +1710,7 @@ func (m *DeleteGroupRequest) Reset() { *m = DeleteGroupRequest{} } func (m *DeleteGroupRequest) String() string { return proto.CompactTextString(m) } func (*DeleteGroupRequest) ProtoMessage() {} func (*DeleteGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{23} + return fileDescriptor_1b40cafcd4234784, []int{25} } func (m *DeleteGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1640,7 +1751,7 @@ func (m *DeleteLeaderboardRecordRequest) Reset() { *m = DeleteLeaderboar func (m *DeleteLeaderboardRecordRequest) String() string { return proto.CompactTextString(m) } func (*DeleteLeaderboardRecordRequest) ProtoMessage() {} func (*DeleteLeaderboardRecordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{24} + return fileDescriptor_1b40cafcd4234784, []int{26} } func (m *DeleteLeaderboardRecordRequest) XXX_Unmarshal(b []byte) error { @@ -1681,7 +1792,7 @@ func (m *DeleteNotificationsRequest) Reset() { *m = DeleteNotificationsR func (m *DeleteNotificationsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteNotificationsRequest) ProtoMessage() {} func (*DeleteNotificationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{25} + return fileDescriptor_1b40cafcd4234784, []int{27} } func (m *DeleteNotificationsRequest) XXX_Unmarshal(b []byte) error { @@ -1726,7 +1837,7 @@ func (m *DeleteStorageObjectId) Reset() { *m = DeleteStorageObjectId{} } func (m *DeleteStorageObjectId) String() string { return proto.CompactTextString(m) } func (*DeleteStorageObjectId) ProtoMessage() {} func (*DeleteStorageObjectId) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{26} + return fileDescriptor_1b40cafcd4234784, []int{28} } func (m *DeleteStorageObjectId) XXX_Unmarshal(b []byte) error { @@ -1781,7 +1892,7 @@ func (m *DeleteStorageObjectsRequest) Reset() { *m = DeleteStorageObject func (m *DeleteStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteStorageObjectsRequest) ProtoMessage() {} func (*DeleteStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{27} + return fileDescriptor_1b40cafcd4234784, []int{29} } func (m *DeleteStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -1828,7 +1939,7 @@ func (m *Event) Reset() { *m = Event{} } func (m *Event) String() string { return proto.CompactTextString(m) } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{28} + return fileDescriptor_1b40cafcd4234784, []int{30} } func (m *Event) XXX_Unmarshal(b []byte) error { @@ -1892,7 +2003,7 @@ func (m *Friend) Reset() { *m = Friend{} } func (m *Friend) String() string { return proto.CompactTextString(m) } func (*Friend) ProtoMessage() {} func (*Friend) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{29} + return fileDescriptor_1b40cafcd4234784, []int{31} } func (m *Friend) XXX_Unmarshal(b []byte) error { @@ -1942,7 +2053,7 @@ func (m *FriendList) Reset() { *m = FriendList{} } func (m *FriendList) String() string { return proto.CompactTextString(m) } func (*FriendList) ProtoMessage() {} func (*FriendList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{30} + return fileDescriptor_1b40cafcd4234784, []int{32} } func (m *FriendList) XXX_Unmarshal(b []byte) error { @@ -1994,7 +2105,7 @@ func (m *GetUsersRequest) Reset() { *m = GetUsersRequest{} } func (m *GetUsersRequest) String() string { return proto.CompactTextString(m) } func (*GetUsersRequest) ProtoMessage() {} func (*GetUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{31} + return fileDescriptor_1b40cafcd4234784, []int{33} } func (m *GetUsersRequest) XXX_Unmarshal(b []byte) error { @@ -2071,7 +2182,7 @@ func (m *Group) Reset() { *m = Group{} } func (m *Group) String() string { return proto.CompactTextString(m) } func (*Group) ProtoMessage() {} func (*Group) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{32} + return fileDescriptor_1b40cafcd4234784, []int{34} } func (m *Group) XXX_Unmarshal(b []byte) error { @@ -2191,7 +2302,7 @@ func (m *GroupList) Reset() { *m = GroupList{} } func (m *GroupList) String() string { return proto.CompactTextString(m) } func (*GroupList) ProtoMessage() {} func (*GroupList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{33} + return fileDescriptor_1b40cafcd4234784, []int{35} } func (m *GroupList) XXX_Unmarshal(b []byte) error { @@ -2241,7 +2352,7 @@ func (m *GroupUserList) Reset() { *m = GroupUserList{} } func (m *GroupUserList) String() string { return proto.CompactTextString(m) } func (*GroupUserList) ProtoMessage() {} func (*GroupUserList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{34} + return fileDescriptor_1b40cafcd4234784, []int{36} } func (m *GroupUserList) XXX_Unmarshal(b []byte) error { @@ -2291,7 +2402,7 @@ func (m *GroupUserList_GroupUser) Reset() { *m = GroupUserList_GroupUser func (m *GroupUserList_GroupUser) String() string { return proto.CompactTextString(m) } func (*GroupUserList_GroupUser) ProtoMessage() {} func (*GroupUserList_GroupUser) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{34, 0} + return fileDescriptor_1b40cafcd4234784, []int{36, 0} } func (m *GroupUserList_GroupUser) XXX_Unmarshal(b []byte) error { @@ -2341,7 +2452,7 @@ func (m *ImportFacebookFriendsRequest) Reset() { *m = ImportFacebookFrie func (m *ImportFacebookFriendsRequest) String() string { return proto.CompactTextString(m) } func (*ImportFacebookFriendsRequest) ProtoMessage() {} func (*ImportFacebookFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{35} + return fileDescriptor_1b40cafcd4234784, []int{37} } func (m *ImportFacebookFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -2389,7 +2500,7 @@ func (m *JoinGroupRequest) Reset() { *m = JoinGroupRequest{} } func (m *JoinGroupRequest) String() string { return proto.CompactTextString(m) } func (*JoinGroupRequest) ProtoMessage() {} func (*JoinGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{36} + return fileDescriptor_1b40cafcd4234784, []int{38} } func (m *JoinGroupRequest) XXX_Unmarshal(b []byte) error { @@ -2430,7 +2541,7 @@ func (m *JoinTournamentRequest) Reset() { *m = JoinTournamentRequest{} } func (m *JoinTournamentRequest) String() string { return proto.CompactTextString(m) } func (*JoinTournamentRequest) ProtoMessage() {} func (*JoinTournamentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{37} + return fileDescriptor_1b40cafcd4234784, []int{39} } func (m *JoinTournamentRequest) XXX_Unmarshal(b []byte) error { @@ -2473,7 +2584,7 @@ func (m *KickGroupUsersRequest) Reset() { *m = KickGroupUsersRequest{} } func (m *KickGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*KickGroupUsersRequest) ProtoMessage() {} func (*KickGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{38} + return fileDescriptor_1b40cafcd4234784, []int{40} } func (m *KickGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -2543,7 +2654,7 @@ func (m *LeaderboardRecord) Reset() { *m = LeaderboardRecord{} } func (m *LeaderboardRecord) String() string { return proto.CompactTextString(m) } func (*LeaderboardRecord) ProtoMessage() {} func (*LeaderboardRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{39} + return fileDescriptor_1b40cafcd4234784, []int{41} } func (m *LeaderboardRecord) XXX_Unmarshal(b []byte) error { @@ -2667,7 +2778,7 @@ func (m *LeaderboardRecordList) Reset() { *m = LeaderboardRecordList{} } func (m *LeaderboardRecordList) String() string { return proto.CompactTextString(m) } func (*LeaderboardRecordList) ProtoMessage() {} func (*LeaderboardRecordList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{40} + return fileDescriptor_1b40cafcd4234784, []int{42} } func (m *LeaderboardRecordList) XXX_Unmarshal(b []byte) error { @@ -2729,7 +2840,7 @@ func (m *LeaveGroupRequest) Reset() { *m = LeaveGroupRequest{} } func (m *LeaveGroupRequest) String() string { return proto.CompactTextString(m) } func (*LeaveGroupRequest) ProtoMessage() {} func (*LeaveGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{41} + return fileDescriptor_1b40cafcd4234784, []int{43} } func (m *LeaveGroupRequest) XXX_Unmarshal(b []byte) error { @@ -2772,7 +2883,7 @@ func (m *LinkFacebookRequest) Reset() { *m = LinkFacebookRequest{} } func (m *LinkFacebookRequest) String() string { return proto.CompactTextString(m) } func (*LinkFacebookRequest) ProtoMessage() {} func (*LinkFacebookRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{42} + return fileDescriptor_1b40cafcd4234784, []int{44} } func (m *LinkFacebookRequest) XXX_Unmarshal(b []byte) error { @@ -2826,7 +2937,7 @@ func (m *ListChannelMessagesRequest) Reset() { *m = ListChannelMessagesR func (m *ListChannelMessagesRequest) String() string { return proto.CompactTextString(m) } func (*ListChannelMessagesRequest) ProtoMessage() {} func (*ListChannelMessagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{43} + return fileDescriptor_1b40cafcd4234784, []int{45} } func (m *ListChannelMessagesRequest) XXX_Unmarshal(b []byte) error { @@ -2892,7 +3003,7 @@ func (m *ListFriendsRequest) Reset() { *m = ListFriendsRequest{} } func (m *ListFriendsRequest) String() string { return proto.CompactTextString(m) } func (*ListFriendsRequest) ProtoMessage() {} func (*ListFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{44} + return fileDescriptor_1b40cafcd4234784, []int{46} } func (m *ListFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -2951,7 +3062,7 @@ func (m *ListGroupsRequest) Reset() { *m = ListGroupsRequest{} } func (m *ListGroupsRequest) String() string { return proto.CompactTextString(m) } func (*ListGroupsRequest) ProtoMessage() {} func (*ListGroupsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{45} + return fileDescriptor_1b40cafcd4234784, []int{47} } func (m *ListGroupsRequest) XXX_Unmarshal(b []byte) error { @@ -3012,7 +3123,7 @@ func (m *ListGroupUsersRequest) Reset() { *m = ListGroupUsersRequest{} } func (m *ListGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*ListGroupUsersRequest) ProtoMessage() {} func (*ListGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{46} + return fileDescriptor_1b40cafcd4234784, []int{48} } func (m *ListGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -3082,7 +3193,7 @@ func (m *ListLeaderboardRecordsAroundOwnerRequest) Reset() { func (m *ListLeaderboardRecordsAroundOwnerRequest) String() string { return proto.CompactTextString(m) } func (*ListLeaderboardRecordsAroundOwnerRequest) ProtoMessage() {} func (*ListLeaderboardRecordsAroundOwnerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{47} + return fileDescriptor_1b40cafcd4234784, []int{49} } func (m *ListLeaderboardRecordsAroundOwnerRequest) XXX_Unmarshal(b []byte) error { @@ -3152,7 +3263,7 @@ func (m *ListLeaderboardRecordsRequest) Reset() { *m = ListLeaderboardRe func (m *ListLeaderboardRecordsRequest) String() string { return proto.CompactTextString(m) } func (*ListLeaderboardRecordsRequest) ProtoMessage() {} func (*ListLeaderboardRecordsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{48} + return fileDescriptor_1b40cafcd4234784, []int{50} } func (m *ListLeaderboardRecordsRequest) XXX_Unmarshal(b []byte) error { @@ -3231,7 +3342,7 @@ func (m *ListMatchesRequest) Reset() { *m = ListMatchesRequest{} } func (m *ListMatchesRequest) String() string { return proto.CompactTextString(m) } func (*ListMatchesRequest) ProtoMessage() {} func (*ListMatchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{49} + return fileDescriptor_1b40cafcd4234784, []int{51} } func (m *ListMatchesRequest) XXX_Unmarshal(b []byte) error { @@ -3309,7 +3420,7 @@ func (m *ListNotificationsRequest) Reset() { *m = ListNotificationsReque func (m *ListNotificationsRequest) String() string { return proto.CompactTextString(m) } func (*ListNotificationsRequest) ProtoMessage() {} func (*ListNotificationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{50} + return fileDescriptor_1b40cafcd4234784, []int{52} } func (m *ListNotificationsRequest) XXX_Unmarshal(b []byte) error { @@ -3363,7 +3474,7 @@ func (m *ListStorageObjectsRequest) Reset() { *m = ListStorageObjectsReq func (m *ListStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*ListStorageObjectsRequest) ProtoMessage() {} func (*ListStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{51} + return fileDescriptor_1b40cafcd4234784, []int{53} } func (m *ListStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -3433,7 +3544,7 @@ func (m *ListTournamentRecordsAroundOwnerRequest) Reset() { func (m *ListTournamentRecordsAroundOwnerRequest) String() string { return proto.CompactTextString(m) } func (*ListTournamentRecordsAroundOwnerRequest) ProtoMessage() {} func (*ListTournamentRecordsAroundOwnerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{52} + return fileDescriptor_1b40cafcd4234784, []int{54} } func (m *ListTournamentRecordsAroundOwnerRequest) XXX_Unmarshal(b []byte) error { @@ -3503,7 +3614,7 @@ func (m *ListTournamentRecordsRequest) Reset() { *m = ListTournamentReco func (m *ListTournamentRecordsRequest) String() string { return proto.CompactTextString(m) } func (*ListTournamentRecordsRequest) ProtoMessage() {} func (*ListTournamentRecordsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{53} + return fileDescriptor_1b40cafcd4234784, []int{55} } func (m *ListTournamentRecordsRequest) XXX_Unmarshal(b []byte) error { @@ -3582,7 +3693,7 @@ func (m *ListTournamentsRequest) Reset() { *m = ListTournamentsRequest{} func (m *ListTournamentsRequest) String() string { return proto.CompactTextString(m) } func (*ListTournamentsRequest) ProtoMessage() {} func (*ListTournamentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{54} + return fileDescriptor_1b40cafcd4234784, []int{56} } func (m *ListTournamentsRequest) XXX_Unmarshal(b []byte) error { @@ -3664,7 +3775,7 @@ func (m *ListUserGroupsRequest) Reset() { *m = ListUserGroupsRequest{} } func (m *ListUserGroupsRequest) String() string { return proto.CompactTextString(m) } func (*ListUserGroupsRequest) ProtoMessage() {} func (*ListUserGroupsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{55} + return fileDescriptor_1b40cafcd4234784, []int{57} } func (m *ListUserGroupsRequest) XXX_Unmarshal(b []byte) error { @@ -3732,7 +3843,7 @@ func (m *Match) Reset() { *m = Match{} } func (m *Match) String() string { return proto.CompactTextString(m) } func (*Match) ProtoMessage() {} func (*Match) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{56} + return fileDescriptor_1b40cafcd4234784, []int{58} } func (m *Match) XXX_Unmarshal(b []byte) error { @@ -3794,7 +3905,7 @@ func (m *MatchList) Reset() { *m = MatchList{} } func (m *MatchList) String() string { return proto.CompactTextString(m) } func (*MatchList) ProtoMessage() {} func (*MatchList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{57} + return fileDescriptor_1b40cafcd4234784, []int{59} } func (m *MatchList) XXX_Unmarshal(b []byte) error { @@ -3847,7 +3958,7 @@ func (m *Notification) Reset() { *m = Notification{} } func (m *Notification) String() string { return proto.CompactTextString(m) } func (*Notification) ProtoMessage() {} func (*Notification) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{58} + return fileDescriptor_1b40cafcd4234784, []int{60} } func (m *Notification) XXX_Unmarshal(b []byte) error { @@ -3932,7 +4043,7 @@ func (m *NotificationList) Reset() { *m = NotificationList{} } func (m *NotificationList) String() string { return proto.CompactTextString(m) } func (*NotificationList) ProtoMessage() {} func (*NotificationList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{59} + return fileDescriptor_1b40cafcd4234784, []int{61} } func (m *NotificationList) XXX_Unmarshal(b []byte) error { @@ -3982,7 +4093,7 @@ func (m *PromoteGroupUsersRequest) Reset() { *m = PromoteGroupUsersReque func (m *PromoteGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*PromoteGroupUsersRequest) ProtoMessage() {} func (*PromoteGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{60} + return fileDescriptor_1b40cafcd4234784, []int{62} } func (m *PromoteGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -4034,7 +4145,7 @@ func (m *ReadStorageObjectId) Reset() { *m = ReadStorageObjectId{} } func (m *ReadStorageObjectId) String() string { return proto.CompactTextString(m) } func (*ReadStorageObjectId) ProtoMessage() {} func (*ReadStorageObjectId) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{61} + return fileDescriptor_1b40cafcd4234784, []int{63} } func (m *ReadStorageObjectId) XXX_Unmarshal(b []byte) error { @@ -4089,7 +4200,7 @@ func (m *ReadStorageObjectsRequest) Reset() { *m = ReadStorageObjectsReq func (m *ReadStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*ReadStorageObjectsRequest) ProtoMessage() {} func (*ReadStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{62} + return fileDescriptor_1b40cafcd4234784, []int{64} } func (m *ReadStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -4134,7 +4245,7 @@ func (m *Rpc) Reset() { *m = Rpc{} } func (m *Rpc) String() string { return proto.CompactTextString(m) } func (*Rpc) ProtoMessage() {} func (*Rpc) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{63} + return fileDescriptor_1b40cafcd4234784, []int{65} } func (m *Rpc) XXX_Unmarshal(b []byte) error { @@ -4191,7 +4302,7 @@ func (m *Session) Reset() { *m = Session{} } func (m *Session) String() string { return proto.CompactTextString(m) } func (*Session) ProtoMessage() {} func (*Session) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{64} + return fileDescriptor_1b40cafcd4234784, []int{66} } func (m *Session) XXX_Unmarshal(b []byte) error { @@ -4255,7 +4366,7 @@ func (m *StorageObject) Reset() { *m = StorageObject{} } func (m *StorageObject) String() string { return proto.CompactTextString(m) } func (*StorageObject) ProtoMessage() {} func (*StorageObject) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{65} + return fileDescriptor_1b40cafcd4234784, []int{67} } func (m *StorageObject) XXX_Unmarshal(b []byte) error { @@ -4358,7 +4469,7 @@ func (m *StorageObjectAck) Reset() { *m = StorageObjectAck{} } func (m *StorageObjectAck) String() string { return proto.CompactTextString(m) } func (*StorageObjectAck) ProtoMessage() {} func (*StorageObjectAck) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{66} + return fileDescriptor_1b40cafcd4234784, []int{68} } func (m *StorageObjectAck) XXX_Unmarshal(b []byte) error { @@ -4420,7 +4531,7 @@ func (m *StorageObjectAcks) Reset() { *m = StorageObjectAcks{} } func (m *StorageObjectAcks) String() string { return proto.CompactTextString(m) } func (*StorageObjectAcks) ProtoMessage() {} func (*StorageObjectAcks) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{67} + return fileDescriptor_1b40cafcd4234784, []int{69} } func (m *StorageObjectAcks) XXX_Unmarshal(b []byte) error { @@ -4461,7 +4572,7 @@ func (m *StorageObjects) Reset() { *m = StorageObjects{} } func (m *StorageObjects) String() string { return proto.CompactTextString(m) } func (*StorageObjects) ProtoMessage() {} func (*StorageObjects) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{68} + return fileDescriptor_1b40cafcd4234784, []int{70} } func (m *StorageObjects) XXX_Unmarshal(b []byte) error { @@ -4504,7 +4615,7 @@ func (m *StorageObjectList) Reset() { *m = StorageObjectList{} } func (m *StorageObjectList) String() string { return proto.CompactTextString(m) } func (*StorageObjectList) ProtoMessage() {} func (*StorageObjectList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{69} + return fileDescriptor_1b40cafcd4234784, []int{71} } func (m *StorageObjectList) XXX_Unmarshal(b []byte) error { @@ -4584,7 +4695,7 @@ func (m *Tournament) Reset() { *m = Tournament{} } func (m *Tournament) String() string { return proto.CompactTextString(m) } func (*Tournament) ProtoMessage() {} func (*Tournament) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{70} + return fileDescriptor_1b40cafcd4234784, []int{72} } func (m *Tournament) XXX_Unmarshal(b []byte) error { @@ -4739,7 +4850,7 @@ func (m *TournamentList) Reset() { *m = TournamentList{} } func (m *TournamentList) String() string { return proto.CompactTextString(m) } func (*TournamentList) ProtoMessage() {} func (*TournamentList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{71} + return fileDescriptor_1b40cafcd4234784, []int{73} } func (m *TournamentList) XXX_Unmarshal(b []byte) error { @@ -4793,7 +4904,7 @@ func (m *TournamentRecordList) Reset() { *m = TournamentRecordList{} } func (m *TournamentRecordList) String() string { return proto.CompactTextString(m) } func (*TournamentRecordList) ProtoMessage() {} func (*TournamentRecordList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{72} + return fileDescriptor_1b40cafcd4234784, []int{74} } func (m *TournamentRecordList) XXX_Unmarshal(b []byte) error { @@ -4865,7 +4976,7 @@ func (m *UpdateAccountRequest) Reset() { *m = UpdateAccountRequest{} } func (m *UpdateAccountRequest) String() string { return proto.CompactTextString(m) } func (*UpdateAccountRequest) ProtoMessage() {} func (*UpdateAccountRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{73} + return fileDescriptor_1b40cafcd4234784, []int{75} } func (m *UpdateAccountRequest) XXX_Unmarshal(b []byte) error { @@ -4951,7 +5062,7 @@ func (m *UpdateGroupRequest) Reset() { *m = UpdateGroupRequest{} } func (m *UpdateGroupRequest) String() string { return proto.CompactTextString(m) } func (*UpdateGroupRequest) ProtoMessage() {} func (*UpdateGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{74} + return fileDescriptor_1b40cafcd4234784, []int{76} } func (m *UpdateGroupRequest) XXX_Unmarshal(b []byte) error { @@ -5047,17 +5158,19 @@ type User struct { // The UNIX time when the user was created. CreateTime *timestamp.Timestamp `protobuf:"bytes,15,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // The UNIX time when the user was last updated. - UpdateTime *timestamp.Timestamp `protobuf:"bytes,16,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UpdateTime *timestamp.Timestamp `protobuf:"bytes,16,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The Facebook Instant Game id in the user's account. + FacebookInstantGameId string `protobuf:"bytes,17,opt,name=facebook_instant_game_id,json=facebookInstantGameId,proto3" json:"facebook_instant_game_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *User) Reset() { *m = User{} } func (m *User) String() string { return proto.CompactTextString(m) } func (*User) ProtoMessage() {} func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{75} + return fileDescriptor_1b40cafcd4234784, []int{77} } func (m *User) XXX_Unmarshal(b []byte) error { @@ -5190,6 +5303,13 @@ func (m *User) GetUpdateTime() *timestamp.Timestamp { return nil } +func (m *User) GetFacebookInstantGameId() string { + if m != nil { + return m.FacebookInstantGameId + } + return "" +} + // A list of groups belonging to a user, along with the user's role in each group. type UserGroupList struct { // Group-role pairs for a user. @@ -5205,7 +5325,7 @@ func (m *UserGroupList) Reset() { *m = UserGroupList{} } func (m *UserGroupList) String() string { return proto.CompactTextString(m) } func (*UserGroupList) ProtoMessage() {} func (*UserGroupList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{76} + return fileDescriptor_1b40cafcd4234784, []int{78} } func (m *UserGroupList) XXX_Unmarshal(b []byte) error { @@ -5255,7 +5375,7 @@ func (m *UserGroupList_UserGroup) Reset() { *m = UserGroupList_UserGroup func (m *UserGroupList_UserGroup) String() string { return proto.CompactTextString(m) } func (*UserGroupList_UserGroup) ProtoMessage() {} func (*UserGroupList_UserGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{76, 0} + return fileDescriptor_1b40cafcd4234784, []int{78, 0} } func (m *UserGroupList_UserGroup) XXX_Unmarshal(b []byte) error { @@ -5303,7 +5423,7 @@ func (m *Users) Reset() { *m = Users{} } func (m *Users) String() string { return proto.CompactTextString(m) } func (*Users) ProtoMessage() {} func (*Users) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{77} + return fileDescriptor_1b40cafcd4234784, []int{79} } func (m *Users) XXX_Unmarshal(b []byte) error { @@ -5346,7 +5466,7 @@ func (m *WriteLeaderboardRecordRequest) Reset() { *m = WriteLeaderboardR func (m *WriteLeaderboardRecordRequest) String() string { return proto.CompactTextString(m) } func (*WriteLeaderboardRecordRequest) ProtoMessage() {} func (*WriteLeaderboardRecordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{78} + return fileDescriptor_1b40cafcd4234784, []int{80} } func (m *WriteLeaderboardRecordRequest) XXX_Unmarshal(b []byte) error { @@ -5402,7 +5522,7 @@ func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) String() string { } func (*WriteLeaderboardRecordRequest_LeaderboardRecordWrite) ProtoMessage() {} func (*WriteLeaderboardRecordRequest_LeaderboardRecordWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{78, 0} + return fileDescriptor_1b40cafcd4234784, []int{80, 0} } func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) XXX_Unmarshal(b []byte) error { @@ -5467,7 +5587,7 @@ func (m *WriteStorageObject) Reset() { *m = WriteStorageObject{} } func (m *WriteStorageObject) String() string { return proto.CompactTextString(m) } func (*WriteStorageObject) ProtoMessage() {} func (*WriteStorageObject) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{79} + return fileDescriptor_1b40cafcd4234784, []int{81} } func (m *WriteStorageObject) XXX_Unmarshal(b []byte) error { @@ -5543,7 +5663,7 @@ func (m *WriteStorageObjectsRequest) Reset() { *m = WriteStorageObjectsR func (m *WriteStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*WriteStorageObjectsRequest) ProtoMessage() {} func (*WriteStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{80} + return fileDescriptor_1b40cafcd4234784, []int{82} } func (m *WriteStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -5586,7 +5706,7 @@ func (m *WriteTournamentRecordRequest) Reset() { *m = WriteTournamentRec func (m *WriteTournamentRecordRequest) String() string { return proto.CompactTextString(m) } func (*WriteTournamentRecordRequest) ProtoMessage() {} func (*WriteTournamentRecordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{81} + return fileDescriptor_1b40cafcd4234784, []int{83} } func (m *WriteTournamentRecordRequest) XXX_Unmarshal(b []byte) error { @@ -5642,7 +5762,7 @@ func (m *WriteTournamentRecordRequest_TournamentRecordWrite) String() string { } func (*WriteTournamentRecordRequest_TournamentRecordWrite) ProtoMessage() {} func (*WriteTournamentRecordRequest_TournamentRecordWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{81, 0} + return fileDescriptor_1b40cafcd4234784, []int{83, 0} } func (m *WriteTournamentRecordRequest_TournamentRecordWrite) XXX_Unmarshal(b []byte) error { @@ -5697,6 +5817,8 @@ func init() { proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountEmail.VarsEntry") proto.RegisterType((*AccountFacebook)(nil), "nakama.api.AccountFacebook") proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountFacebook.VarsEntry") + proto.RegisterType((*AccountFacebookInstantGame)(nil), "nakama.api.AccountFacebookInstantGame") + proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountFacebookInstantGame.VarsEntry") proto.RegisterType((*AccountGameCenter)(nil), "nakama.api.AccountGameCenter") proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountGameCenter.VarsEntry") proto.RegisterType((*AccountGoogle)(nil), "nakama.api.AccountGoogle") @@ -5709,6 +5831,7 @@ func init() { proto.RegisterType((*AuthenticateDeviceRequest)(nil), "nakama.api.AuthenticateDeviceRequest") proto.RegisterType((*AuthenticateEmailRequest)(nil), "nakama.api.AuthenticateEmailRequest") proto.RegisterType((*AuthenticateFacebookRequest)(nil), "nakama.api.AuthenticateFacebookRequest") + proto.RegisterType((*AuthenticateFacebookInstantGameRequest)(nil), "nakama.api.AuthenticateFacebookInstantGameRequest") proto.RegisterType((*AuthenticateGameCenterRequest)(nil), "nakama.api.AuthenticateGameCenterRequest") proto.RegisterType((*AuthenticateGoogleRequest)(nil), "nakama.api.AuthenticateGoogleRequest") proto.RegisterType((*AuthenticateSteamRequest)(nil), "nakama.api.AuthenticateSteamRequest") @@ -5784,233 +5907,241 @@ func init() { proto.RegisterType((*WriteTournamentRecordRequest_TournamentRecordWrite)(nil), "nakama.api.WriteTournamentRecordRequest.TournamentRecordWrite") } -func init() { proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd4234784) } +func init() { + proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd4234784) +} var fileDescriptor_1b40cafcd4234784 = []byte{ - // 3590 bytes of a gzipped FileDescriptorProto + // 3689 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3b, 0x4b, 0x8c, 0x1b, 0xc7, - 0x95, 0x6e, 0xfe, 0xf9, 0x48, 0xce, 0x70, 0x4a, 0x9f, 0xe5, 0x50, 0x1a, 0x7d, 0x5a, 0xf6, 0x4a, - 0x86, 0x77, 0x29, 0x7b, 0x64, 0x4b, 0xb2, 0xb5, 0x96, 0x35, 0x1f, 0x4a, 0xa0, 0x25, 0x8d, 0xb4, - 0x3d, 0x92, 0x76, 0xb1, 0x7b, 0xa0, 0x6b, 0xba, 0x4b, 0xa3, 0xde, 0x21, 0xbb, 0xe9, 0xee, 0xe6, - 0x7c, 0x8c, 0x0d, 0x10, 0x04, 0x01, 0x92, 0x53, 0x90, 0x18, 0x48, 0x82, 0x20, 0x40, 0x12, 0xe4, - 0x10, 0xd8, 0x39, 0x04, 0xc9, 0x21, 0xb7, 0xdc, 0x9d, 0x73, 0x10, 0x07, 0xb9, 0x25, 0x41, 0x4e, - 0x01, 0x72, 0xcb, 0x31, 0x97, 0xa0, 0x5e, 0x55, 0x7f, 0x49, 0xce, 0x90, 0x33, 0x94, 0x6d, 0xe4, - 0x32, 0x60, 0xbd, 0x7a, 0xaf, 0xea, 0xd5, 0xab, 0xf7, 0xab, 0xf7, 0x7a, 0xa0, 0x42, 0x7b, 0xe6, - 0x65, 0xda, 0x33, 0x1b, 0x3d, 0xc7, 0xf6, 0x6c, 0x02, 0x16, 0xdd, 0xa2, 0x5d, 0xda, 0xa0, 0x3d, - 0xb3, 0x7e, 0x76, 0xd3, 0xb6, 0x37, 0x3b, 0xec, 0x32, 0xce, 0x6c, 0xf4, 0x9f, 0x5e, 0xf6, 0xcc, - 0x2e, 0x73, 0x3d, 0xda, 0xed, 0x09, 0xe4, 0xfa, 0x99, 0x24, 0xc2, 0x8e, 0x43, 0x7b, 0x3d, 0xe6, - 0xb8, 0x62, 0x5e, 0xfd, 0xab, 0x02, 0xf9, 0x25, 0x5d, 0xb7, 0xfb, 0x96, 0x47, 0x5e, 0x84, 0x4c, - 0xdf, 0x65, 0x4e, 0x4d, 0x39, 0xa7, 0x5c, 0x2a, 0x2d, 0x56, 0x1b, 0xe1, 0x3e, 0x8d, 0xc7, 0x2e, - 0x73, 0x34, 0x9c, 0x25, 0x27, 0x21, 0xb7, 0x43, 0x3b, 0x1d, 0xe6, 0xd5, 0x52, 0xe7, 0x94, 0x4b, - 0x45, 0x4d, 0x8e, 0xc8, 0x71, 0xc8, 0xb2, 0x2e, 0x35, 0x3b, 0xb5, 0x34, 0x82, 0xc5, 0x80, 0x5c, - 0x81, 0xbc, 0xc1, 0xb6, 0x4d, 0x9d, 0xb9, 0xb5, 0xcc, 0xb9, 0xf4, 0xa5, 0xd2, 0xe2, 0x7c, 0x74, - 0x59, 0xb9, 0xf3, 0x2a, 0x62, 0x68, 0x3e, 0x26, 0x39, 0x05, 0x45, 0xbd, 0xef, 0x7a, 0x76, 0xb7, - 0x6d, 0x1a, 0xb5, 0x2c, 0x2e, 0x57, 0x10, 0x80, 0x96, 0x41, 0x6e, 0x40, 0x69, 0x9b, 0x39, 0xe6, - 0xd3, 0xbd, 0x36, 0x3f, 0x6b, 0x2d, 0x87, 0xcc, 0xd6, 0x1b, 0xe2, 0x9c, 0x0d, 0xff, 0x9c, 0x8d, - 0x47, 0xbe, 0x20, 0x34, 0x10, 0xe8, 0x1c, 0xa0, 0x7e, 0x4b, 0x81, 0x8a, 0xdc, 0x74, 0x05, 0x17, - 0x24, 0x33, 0x90, 0x32, 0x0d, 0x3c, 0x72, 0x51, 0x4b, 0x99, 0x06, 0xb9, 0x06, 0x99, 0x6d, 0xea, - 0xb8, 0xb5, 0x14, 0x72, 0x7b, 0x61, 0x08, 0xb7, 0x82, 0xb0, 0xf1, 0x84, 0x3a, 0x6e, 0xd3, 0xf2, - 0x9c, 0x3d, 0x0d, 0x09, 0xea, 0xd7, 0xa0, 0x18, 0x80, 0x48, 0x15, 0xd2, 0x5b, 0x6c, 0x4f, 0x2e, - 0xcb, 0x7f, 0x72, 0xf1, 0x6c, 0xd3, 0x4e, 0x9f, 0x49, 0xa9, 0x89, 0xc1, 0x5b, 0xa9, 0xeb, 0x4a, - 0x94, 0x27, 0x21, 0x88, 0x43, 0xf0, 0x24, 0x08, 0xa7, 0xc7, 0xd3, 0x2f, 0x14, 0x28, 0xcb, 0xa5, - 0x9b, 0x78, 0x8f, 0xc1, 0xed, 0x2a, 0xd1, 0xdb, 0xad, 0x43, 0xa1, 0x47, 0x5d, 0x77, 0xc7, 0x76, - 0x0c, 0xb9, 0x46, 0x30, 0x26, 0x57, 0x25, 0xd3, 0x69, 0x64, 0x5a, 0x1d, 0xc2, 0x34, 0xae, 0x3c, - 0x3d, 0x9e, 0xbf, 0xaf, 0xc0, 0xac, 0x5c, 0xf9, 0x36, 0xd5, 0xd9, 0x86, 0x6d, 0x6f, 0x71, 0x6c, - 0xcf, 0xde, 0x62, 0x96, 0xcf, 0x36, 0x0e, 0xc8, 0x9b, 0x31, 0x79, 0xbe, 0x34, 0x84, 0x35, 0x7f, - 0x81, 0xe9, 0x71, 0xf7, 0xeb, 0x14, 0xcc, 0xc9, 0xc5, 0xef, 0xd0, 0x2e, 0x5b, 0x61, 0x96, 0xc7, - 0x1c, 0xae, 0xe9, 0xbd, 0x0e, 0xdd, 0x63, 0x4e, 0x3b, 0xb8, 0xf0, 0x82, 0x00, 0xb4, 0x0c, 0x3e, - 0xb9, 0xd1, 0xb7, 0x8c, 0x0e, 0xe3, 0x93, 0x52, 0xbc, 0x02, 0xd0, 0x32, 0xc8, 0x2b, 0x30, 0x17, - 0xd8, 0x7a, 0xdb, 0x65, 0xba, 0x6d, 0x19, 0x2e, 0x9a, 0x5e, 0x5a, 0xab, 0x06, 0x13, 0xeb, 0x02, - 0x4e, 0x08, 0x64, 0x5c, 0xda, 0xf1, 0x6a, 0x19, 0x5c, 0x04, 0x7f, 0x93, 0xd3, 0x50, 0x74, 0xcd, - 0x4d, 0x8b, 0x7a, 0x7d, 0x87, 0x49, 0x23, 0x0b, 0x01, 0xe4, 0x45, 0x98, 0xe9, 0xf5, 0x37, 0x3a, - 0xa6, 0xde, 0xde, 0x62, 0x7b, 0xed, 0xbe, 0xd3, 0x41, 0x43, 0x2b, 0x6a, 0x65, 0x01, 0xbd, 0xcb, - 0xf6, 0x1e, 0x3b, 0x1d, 0x72, 0x43, 0x0a, 0x32, 0x8f, 0x82, 0xbc, 0x38, 0x44, 0x90, 0xe1, 0x59, - 0xa7, 0x27, 0xca, 0xef, 0x86, 0x06, 0x73, 0x07, 0xad, 0x7e, 0xc4, 0x35, 0x1f, 0x6c, 0x36, 0x82, - 0x7c, 0x7a, 0x9c, 0x7d, 0x3b, 0x34, 0x9b, 0x75, 0x8f, 0xd1, 0xee, 0x08, 0xc6, 0xae, 0xc6, 0x18, - 0x1b, 0x66, 0x1a, 0x48, 0x3d, 0x3d, 0xbe, 0x56, 0x60, 0x6e, 0xc9, 0x30, 0x6e, 0x3b, 0x26, 0xb3, - 0x0c, 0x57, 0x63, 0xef, 0xf7, 0x99, 0xeb, 0xf1, 0x05, 0x4c, 0xc3, 0xad, 0x29, 0xe7, 0xd2, 0x7c, - 0x01, 0xd3, 0x70, 0xb9, 0x4a, 0x70, 0x17, 0x6f, 0xd1, 0x2e, 0x13, 0xcc, 0x15, 0xb5, 0x10, 0xa0, - 0xde, 0x83, 0xe3, 0x4b, 0x86, 0x71, 0xc7, 0xb1, 0xfb, 0x3d, 0x1e, 0x0e, 0x82, 0x75, 0xe6, 0xa1, - 0xb0, 0xc9, 0x81, 0xa1, 0x0a, 0xe7, 0x71, 0xdc, 0x32, 0xf8, 0x14, 0xa7, 0x6f, 0xf3, 0x7d, 0xc4, - 0x7a, 0x79, 0x3e, 0x6e, 0x19, 0xae, 0xfa, 0x23, 0x05, 0xe6, 0x97, 0xfa, 0xde, 0x33, 0x66, 0x79, - 0xa6, 0x4e, 0x3d, 0x26, 0xbc, 0xaa, 0xbf, 0xe6, 0x15, 0xc8, 0x53, 0x21, 0x09, 0x19, 0x8d, 0xe6, - 0x47, 0x3a, 0x62, 0xcd, 0xc7, 0x24, 0x8b, 0x90, 0xd3, 0x1d, 0x46, 0x3d, 0x21, 0x80, 0x61, 0x41, - 0x61, 0xd9, 0xb6, 0x3b, 0x4f, 0xb8, 0x54, 0x34, 0x89, 0xc9, 0x3d, 0x98, 0x7f, 0x42, 0x19, 0xb8, - 0x82, 0xf1, 0x00, 0x8b, 0x32, 0x4c, 0x4d, 0xc2, 0xa2, 0x1f, 0xd9, 0x9e, 0x17, 0x8b, 0x3f, 0x50, - 0xa0, 0x16, 0x65, 0x11, 0x5d, 0xaa, 0xcf, 0xe1, 0x62, 0x92, 0xc3, 0xda, 0x28, 0x27, 0xfc, 0xfc, - 0x18, 0xfc, 0xad, 0x02, 0xa7, 0xa2, 0x0c, 0xfa, 0x8e, 0xd5, 0xe7, 0xf1, 0x8d, 0x24, 0x8f, 0xa7, - 0xf6, 0xf1, 0xc6, 0xcf, 0x8d, 0x4d, 0xd2, 0x80, 0x8c, 0xbb, 0x67, 0xe9, 0xe8, 0x20, 0xf7, 0x5f, - 0x0d, 0xf1, 0xd4, 0x8f, 0x14, 0x58, 0x88, 0x1e, 0x2b, 0x74, 0x73, 0xfe, 0xc1, 0xae, 0x25, 0x0f, - 0xb6, 0xb0, 0xaf, 0x77, 0xfc, 0xec, 0xb4, 0x58, 0xf8, 0xbc, 0x89, 0xb4, 0x58, 0x92, 0x7c, 0x66, - 0x5a, 0x8c, 0xde, 0x6f, 0x22, 0x2d, 0x16, 0x14, 0xcf, 0x8d, 0xc1, 0x7b, 0x70, 0x7c, 0x99, 0x5a, - 0xd3, 0x72, 0x7d, 0x4d, 0x38, 0xb6, 0xdc, 0xb1, 0xf5, 0xad, 0x23, 0xfa, 0xe3, 0x2f, 0x67, 0x60, - 0x66, 0xe5, 0x19, 0xb5, 0x2c, 0xd6, 0xb9, 0xcf, 0x5c, 0x97, 0x6e, 0x32, 0xb2, 0x00, 0xa0, 0x0b, - 0x48, 0xc8, 0x51, 0x51, 0x42, 0x5a, 0x06, 0x9f, 0xee, 0x0a, 0xcc, 0x30, 0xa3, 0x28, 0x4a, 0x48, - 0xcb, 0x20, 0x97, 0x21, 0xa3, 0xdb, 0x86, 0x38, 0x3d, 0x37, 0xc4, 0xa4, 0xcc, 0x5a, 0x96, 0x77, - 0x65, 0x51, 0x5a, 0x01, 0x47, 0xe4, 0x09, 0x8a, 0xcb, 0x2c, 0x43, 0x64, 0x2f, 0x22, 0xb7, 0x28, - 0x08, 0x40, 0xcb, 0x88, 0xc9, 0x33, 0x9b, 0x30, 0xb7, 0x1a, 0xe4, 0x75, 0xdb, 0xf2, 0x98, 0xe5, - 0xc9, 0xb4, 0xc2, 0x1f, 0xf2, 0xec, 0x5e, 0xdc, 0x87, 0xc8, 0xee, 0xf3, 0x07, 0x67, 0xf7, 0x02, - 0x9d, 0x03, 0x38, 0x71, 0xbf, 0x67, 0x04, 0xc4, 0x85, 0x83, 0x89, 0x05, 0x3a, 0x12, 0xbf, 0x05, - 0xc0, 0xdf, 0x45, 0xa6, 0x8b, 0x6c, 0x15, 0x0f, 0xd4, 0x9b, 0x08, 0x36, 0x17, 0x84, 0x63, 0xdb, - 0xdd, 0x36, 0x1e, 0x16, 0xc4, 0x61, 0x39, 0x60, 0x8d, 0x1f, 0x36, 0xaa, 0x24, 0xa5, 0xb8, 0x92, - 0x9c, 0x81, 0x92, 0x54, 0x92, 0xb6, 0x6d, 0xb1, 0x5a, 0x59, 0xdc, 0x88, 0xd0, 0x93, 0x07, 0x16, - 0x8b, 0xce, 0x7b, 0x3b, 0x76, 0xad, 0x12, 0x9d, 0x7f, 0xb4, 0x63, 0xab, 0xdf, 0x50, 0x80, 0xc4, - 0x55, 0xe0, 0x9e, 0xe9, 0x7a, 0xe4, 0x2a, 0x14, 0xe4, 0xad, 0x0a, 0x75, 0xe2, 0x07, 0x89, 0xd8, - 0x4c, 0x9c, 0x42, 0x0b, 0x70, 0xc9, 0x59, 0x28, 0x59, 0x6c, 0xd7, 0x6b, 0xeb, 0x7d, 0xc7, 0xb5, - 0x1d, 0xa9, 0x20, 0xc0, 0x41, 0x2b, 0x08, 0xe1, 0x08, 0x3d, 0x87, 0x6d, 0xfb, 0x08, 0xc2, 0x4c, - 0x80, 0x83, 0x04, 0x82, 0xfa, 0x4b, 0xce, 0x10, 0x5e, 0x08, 0x1a, 0x8b, 0xaf, 0xda, 0x04, 0x32, - 0x28, 0x1a, 0xa1, 0x91, 0xf8, 0x9b, 0x9c, 0x83, 0x92, 0xc1, 0x5c, 0xdd, 0x31, 0x7b, 0x9e, 0x69, - 0x5b, 0x72, 0xb3, 0x28, 0x88, 0x0b, 0xae, 0x43, 0xad, 0xcd, 0xb6, 0x47, 0x37, 0xe5, 0x56, 0x79, - 0x3e, 0x7e, 0x44, 0x37, 0xb9, 0x26, 0xd3, 0x6d, 0xea, 0x51, 0x07, 0x53, 0x53, 0xa1, 0x7a, 0x45, - 0x01, 0xe1, 0x79, 0x29, 0x81, 0x8c, 0xdd, 0x63, 0x16, 0xea, 0x5d, 0x41, 0xc3, 0xdf, 0xfc, 0x8e, - 0xba, 0x74, 0xb7, 0x2d, 0x3c, 0x09, 0xd7, 0xba, 0xac, 0x56, 0xe8, 0xd2, 0xdd, 0x15, 0x3e, 0x56, - 0x6f, 0xc3, 0xf1, 0x55, 0xd6, 0x61, 0x1e, 0x3b, 0xa2, 0x4d, 0x5e, 0x06, 0x22, 0xd6, 0x89, 0x1d, - 0x7f, 0xb4, 0x9b, 0x50, 0xef, 0xc0, 0x19, 0x41, 0x70, 0x8f, 0x51, 0x83, 0x39, 0x1b, 0x36, 0x75, - 0x0c, 0x8d, 0xe9, 0x36, 0xff, 0x2b, 0x88, 0x5f, 0x82, 0x99, 0x4e, 0x38, 0x17, 0x2e, 0x51, 0x89, - 0x40, 0x5b, 0x86, 0xda, 0x80, 0xba, 0x58, 0x68, 0xcd, 0xf6, 0xcc, 0xa7, 0xdc, 0x8d, 0x9a, 0xb6, - 0x35, 0xfa, 0x1c, 0xaa, 0x0e, 0x27, 0x04, 0xfe, 0xba, 0x67, 0x3b, 0x74, 0x93, 0x3d, 0xd8, 0xf8, - 0x3f, 0xa6, 0x7b, 0xa8, 0x93, 0xa0, 0xdb, 0x9d, 0x0e, 0xd3, 0xf1, 0x5a, 0xc4, 0x5e, 0x11, 0x88, - 0x9f, 0x77, 0xa6, 0xc2, 0xbc, 0xb3, 0x06, 0xf9, 0x6d, 0x6e, 0x0b, 0xb6, 0xe5, 0x5f, 0x93, 0x1c, - 0xaa, 0x6d, 0x38, 0x35, 0x64, 0x93, 0x80, 0xab, 0x5b, 0x00, 0x36, 0x42, 0xda, 0x3e, 0x73, 0xa5, - 0xc5, 0xf3, 0x51, 0x4d, 0x1d, 0xca, 0xa1, 0x56, 0xb4, 0xe5, 0x2f, 0x57, 0xfd, 0x9b, 0x02, 0xd9, - 0xe6, 0x36, 0x37, 0xc1, 0x61, 0x2a, 0xb6, 0x04, 0xd0, 0x73, 0xec, 0x1e, 0x73, 0x3c, 0x93, 0xf9, - 0xd9, 0x76, 0x6c, 0x7d, 0x24, 0x6d, 0x3c, 0x0c, 0x70, 0x44, 0xb2, 0x1d, 0x21, 0x22, 0xd7, 0xa1, - 0x18, 0xbc, 0xa6, 0xa4, 0x63, 0xdc, 0xcf, 0xa1, 0x84, 0xc8, 0xdc, 0xff, 0xb1, 0x5d, 0x8f, 0x2b, - 0x86, 0x50, 0xd0, 0x82, 0x16, 0x8c, 0xeb, 0x6f, 0xc3, 0x6c, 0x62, 0xd3, 0x89, 0xd2, 0xf9, 0x8f, - 0x15, 0xc8, 0x09, 0x45, 0x1d, 0xb3, 0x66, 0xf3, 0x1a, 0x64, 0x5d, 0x2f, 0x0c, 0x87, 0xfb, 0xba, - 0x76, 0x81, 0xa9, 0xde, 0x86, 0xec, 0x3a, 0xff, 0x41, 0x00, 0x72, 0xb7, 0xb5, 0x56, 0x73, 0x6d, - 0xb5, 0xfa, 0x02, 0x99, 0x85, 0x52, 0x6b, 0xed, 0x49, 0xeb, 0x51, 0xb3, 0xbd, 0xde, 0x5c, 0x7b, - 0x54, 0x55, 0xc8, 0x31, 0x98, 0x95, 0x00, 0xad, 0xb9, 0xd2, 0x6c, 0x3d, 0x69, 0xae, 0x56, 0x53, - 0xa4, 0x04, 0xf9, 0xe5, 0x7b, 0x0f, 0x56, 0xee, 0x36, 0x57, 0xab, 0x69, 0x55, 0x03, 0x10, 0xac, - 0xa2, 0x67, 0xfa, 0x37, 0xc8, 0x3f, 0x15, 0x16, 0x26, 0xaf, 0x9b, 0x44, 0x39, 0x16, 0x88, 0x9a, - 0x8f, 0x42, 0x4e, 0x42, 0x2e, 0xe6, 0x8a, 0xe4, 0x48, 0x35, 0x60, 0xf6, 0x0e, 0xf3, 0x62, 0x91, - 0x78, 0x42, 0x43, 0x25, 0xe7, 0xa1, 0xfc, 0x54, 0x66, 0x95, 0xa8, 0x7c, 0x69, 0x44, 0x28, 0xf9, - 0x30, 0xae, 0x5b, 0x1f, 0xa5, 0x21, 0x8b, 0x66, 0x3c, 0x50, 0x8f, 0xe1, 0x61, 0x96, 0x3b, 0x39, - 0xdb, 0x89, 0xc4, 0x51, 0x09, 0x69, 0x19, 0x81, 0x2a, 0xa6, 0x47, 0x7b, 0xbb, 0xcc, 0xfe, 0xde, - 0x2e, 0x1b, 0xf7, 0x76, 0x75, 0xee, 0xcf, 0x3d, 0x6a, 0x50, 0x8f, 0xca, 0x78, 0x19, 0x8c, 0x13, - 0x9e, 0x30, 0x9f, 0xf4, 0x84, 0x0d, 0xe9, 0x09, 0x0b, 0x07, 0x27, 0xb6, 0xe8, 0x25, 0x17, 0x00, - 0x98, 0xb1, 0xc9, 0xa4, 0x9b, 0x2c, 0xa2, 0x9b, 0x2c, 0x72, 0x08, 0xfa, 0xc9, 0xb8, 0x13, 0x85, - 0xb8, 0x13, 0x4d, 0xc6, 0xee, 0xd2, 0x51, 0x62, 0x77, 0x79, 0x92, 0xd8, 0xad, 0xae, 0x41, 0x11, - 0x6f, 0x0a, 0x75, 0xec, 0x65, 0xc8, 0xa1, 0x77, 0xf5, 0x55, 0x6c, 0x2e, 0xaa, 0x62, 0xc2, 0x2f, - 0x4b, 0x84, 0x91, 0x0a, 0xf6, 0x9d, 0x14, 0x54, 0x82, 0x6c, 0x0f, 0x17, 0x5d, 0x85, 0x92, 0x70, - 0xe1, 0x5c, 0x85, 0xfc, 0x95, 0x2f, 0x0c, 0xac, 0xec, 0xe3, 0x87, 0x23, 0x0d, 0x36, 0x83, 0xb4, - 0x71, 0xd4, 0x7e, 0xf5, 0x9f, 0x28, 0xf2, 0x00, 0x1c, 0xed, 0xf9, 0xd9, 0xf4, 0x2d, 0xdf, 0xa6, - 0x67, 0x00, 0xd6, 0x1f, 0x3f, 0x6c, 0x6a, 0x4b, 0xab, 0xf7, 0x5b, 0x6b, 0xd5, 0x17, 0x48, 0x11, - 0xb2, 0xe2, 0xa7, 0xc2, 0xcd, 0xfd, 0x7e, 0xf3, 0xfe, 0x72, 0x53, 0xab, 0xa6, 0x48, 0x15, 0xca, - 0xef, 0x3e, 0x68, 0xad, 0xb5, 0xb5, 0xe6, 0x7f, 0x3e, 0x6e, 0xae, 0x3f, 0xaa, 0xa6, 0xd5, 0xaf, - 0x29, 0x70, 0xba, 0xd5, 0xed, 0xd9, 0x4e, 0xf0, 0x26, 0x4b, 0x04, 0xcc, 0x43, 0xbe, 0xe7, 0x5e, - 0x85, 0xac, 0xc3, 0x5c, 0x59, 0x53, 0xde, 0x5f, 0x4f, 0x05, 0xa2, 0xfa, 0xef, 0x50, 0x7d, 0xd7, - 0x36, 0xad, 0x71, 0xe3, 0xec, 0x7f, 0xc0, 0x09, 0x8e, 0xfe, 0xc8, 0xee, 0xa3, 0x03, 0xb0, 0x3c, - 0x9f, 0xe6, 0x02, 0x54, 0xbc, 0x00, 0x18, 0x12, 0x96, 0x43, 0x60, 0xcb, 0x50, 0xef, 0xc3, 0x89, - 0xbb, 0xa6, 0xbe, 0x35, 0xad, 0x07, 0xc0, 0x5f, 0xd2, 0x30, 0x37, 0x10, 0xef, 0xc7, 0x0c, 0xf4, - 0x7c, 0x5d, 0x7b, 0xc7, 0x62, 0x11, 0xd7, 0x93, 0xc7, 0x71, 0xcb, 0x20, 0xd7, 0x13, 0x4f, 0x98, - 0xd2, 0xe2, 0xe9, 0x01, 0x41, 0xae, 0x7b, 0x8e, 0x69, 0x6d, 0x0a, 0x51, 0x86, 0x09, 0xf9, 0x71, - 0xc8, 0xba, 0xba, 0xed, 0x30, 0x74, 0x4c, 0x69, 0x4d, 0x0c, 0xb8, 0xdf, 0x71, 0xfb, 0x1b, 0x62, - 0x22, 0x8b, 0x13, 0xc1, 0x98, 0x7b, 0x02, 0xab, 0xdf, 0x6d, 0x8b, 0x49, 0x99, 0x4e, 0x59, 0xfd, - 0xee, 0xba, 0x4f, 0x18, 0x38, 0xac, 0x7c, 0xc2, 0x61, 0x25, 0xbc, 0x44, 0xe1, 0x28, 0x5e, 0xa2, - 0x38, 0x51, 0x86, 0x7f, 0x03, 0x4a, 0x6c, 0xb7, 0x67, 0x3a, 0xb2, 0x73, 0x00, 0x07, 0x13, 0x0b, - 0x74, 0x24, 0x26, 0x90, 0x71, 0xa8, 0xb5, 0x85, 0x5e, 0x2d, 0xad, 0xe1, 0x6f, 0xa2, 0x42, 0x85, - 0x7b, 0xc3, 0x50, 0x0e, 0xdc, 0x6b, 0x55, 0xb4, 0x52, 0x97, 0xee, 0xae, 0x49, 0x51, 0xa8, 0xbf, - 0x53, 0xe0, 0xc4, 0xc0, 0x5d, 0xa3, 0x4b, 0xb9, 0x06, 0x79, 0x07, 0x47, 0xbe, 0x3b, 0x89, 0x55, - 0x08, 0x06, 0xf3, 0x41, 0x1f, 0x9b, 0x2c, 0x43, 0x45, 0x68, 0x80, 0x4f, 0x9e, 0x1a, 0x87, 0xbc, - 0x8c, 0x34, 0x9a, 0x5c, 0x23, 0x91, 0xea, 0xa7, 0x0f, 0x4a, 0xf5, 0x33, 0x03, 0xa9, 0x7e, 0x03, - 0x75, 0x78, 0x7b, 0xec, 0x4c, 0xf7, 0xff, 0xe1, 0xd8, 0x3d, 0xd3, 0xda, 0x9a, 0x52, 0x01, 0x68, - 0xd2, 0x82, 0xcd, 0xaf, 0x14, 0xa8, 0x73, 0xa9, 0xc7, 0xdf, 0x3e, 0x81, 0x1d, 0x1f, 0xf0, 0x70, - 0x7e, 0x0d, 0xb2, 0x1d, 0xb3, 0x6b, 0x7a, 0x63, 0xf9, 0x5a, 0xc4, 0x24, 0xaf, 0x43, 0xfe, 0xa9, - 0xed, 0xec, 0x50, 0xc7, 0x18, 0x99, 0x36, 0x86, 0x3c, 0xfa, 0xa8, 0x91, 0x00, 0x91, 0x89, 0x05, - 0xa4, 0x0f, 0x15, 0x20, 0x9c, 0xfd, 0x84, 0xb7, 0x0d, 0xf8, 0x52, 0xc6, 0xe6, 0x6b, 0xf2, 0xb0, - 0x11, 0x61, 0x2a, 0x1d, 0x63, 0xca, 0x81, 0x39, 0xce, 0x13, 0x2a, 0x80, 0xbb, 0xdf, 0x53, 0x6f, - 0x44, 0xd8, 0x0b, 0xd9, 0x4f, 0x8f, 0xcb, 0xbe, 0xfa, 0x73, 0x6e, 0x4e, 0xfe, 0xa6, 0xe3, 0xba, - 0xe2, 0x43, 0x5c, 0x5f, 0x20, 0xa6, 0xf4, 0x21, 0xc4, 0x14, 0xbf, 0xbb, 0x4f, 0x15, 0xb8, 0xc4, - 0x59, 0x1e, 0x30, 0x49, 0x77, 0xc9, 0xb1, 0xfb, 0x96, 0xf1, 0x40, 0xd8, 0xe5, 0x24, 0xaf, 0x3d, - 0xb2, 0x18, 0x3f, 0xd1, 0xa0, 0x9b, 0x7f, 0x3c, 0x78, 0xa4, 0x68, 0xe0, 0x48, 0xc7, 0x03, 0xc7, - 0x15, 0xc8, 0x09, 0x57, 0x27, 0xed, 0x69, 0xe8, 0x71, 0xaf, 0xbe, 0x2e, 0x0b, 0x66, 0x02, 0x55, - 0xfd, 0xb3, 0x02, 0x0b, 0xc3, 0xcf, 0x35, 0xe1, 0x61, 0x4e, 0x41, 0xd1, 0x67, 0xcc, 0x0f, 0x95, - 0x05, 0xc9, 0x99, 0x7b, 0x08, 0x1d, 0x19, 0x75, 0x11, 0x91, 0x53, 0x66, 0xc7, 0x3f, 0xe5, 0x9f, - 0x52, 0xc2, 0xf2, 0xee, 0x53, 0x4f, 0x7f, 0xc6, 0x8e, 0x62, 0x79, 0xb7, 0xa0, 0x42, 0xfb, 0xde, - 0x33, 0xdb, 0x31, 0x3d, 0xea, 0x99, 0xdb, 0xe3, 0xd4, 0x26, 0xe3, 0x04, 0x78, 0xeb, 0x74, 0x83, - 0x75, 0xc6, 0x0a, 0xee, 0x02, 0x15, 0x6b, 0x41, 0xa6, 0xd5, 0x76, 0xcd, 0x0f, 0xd8, 0x7e, 0x97, - 0xeb, 0xf3, 0x9a, 0xef, 0x9a, 0xd6, 0xba, 0xf9, 0x01, 0x43, 0x3a, 0xba, 0x2b, 0xe8, 0xb2, 0xe3, - 0xd0, 0xd1, 0x5d, 0xa4, 0x5b, 0x84, 0xec, 0xfb, 0x7d, 0xe6, 0xec, 0xc9, 0xc6, 0xfc, 0x01, 0x3c, - 0x22, 0xaa, 0xba, 0x0b, 0x35, 0x2e, 0xe2, 0xa1, 0x95, 0x8b, 0x43, 0x08, 0xfa, 0x65, 0xa8, 0xea, - 0x54, 0x7f, 0xc6, 0xe8, 0x46, 0x87, 0xc5, 0x6b, 0x59, 0xb3, 0x01, 0x5c, 0x06, 0xb1, 0x1f, 0x2a, - 0x30, 0xcf, 0xb7, 0x1e, 0x5e, 0x9f, 0xf8, 0x17, 0xc8, 0xcb, 0x14, 0x4e, 0x2a, 0x6e, 0x4e, 0x64, - 0x70, 0x89, 0x1a, 0x49, 0x6a, 0xa0, 0x46, 0x32, 0x3d, 0xa5, 0x55, 0x7f, 0xa3, 0xc0, 0x45, 0xce, - 0x61, 0x34, 0x73, 0x1d, 0xe5, 0x3c, 0xc6, 0xc9, 0x65, 0xbf, 0x10, 0xae, 0xe3, 0x8f, 0x0a, 0x9c, - 0x1e, 0x7a, 0xa8, 0x89, 0x4e, 0xf2, 0x85, 0xf6, 0x1b, 0x7f, 0x48, 0xc1, 0xc9, 0xf8, 0x11, 0x83, - 0xc3, 0xad, 0xc0, 0x8c, 0x4e, 0x3d, 0xb6, 0x69, 0x3b, 0x7b, 0x6d, 0xd7, 0xa3, 0x8e, 0xaf, 0xdb, - 0xfb, 0x5f, 0x45, 0xc5, 0xa7, 0x59, 0xe7, 0x24, 0xe4, 0x1d, 0x28, 0x07, 0x8b, 0x30, 0xcb, 0x18, - 0xeb, 0x36, 0x4b, 0x3e, 0x45, 0xd3, 0x32, 0xc8, 0x0d, 0x00, 0xdc, 0x5c, 0x24, 0xc3, 0xe9, 0x31, - 0xc8, 0x8b, 0x88, 0x8f, 0xd9, 0xf0, 0x35, 0x28, 0x30, 0xcb, 0x10, 0xa4, 0x99, 0x31, 0x48, 0xf3, - 0xcc, 0x32, 0x90, 0x30, 0xb8, 0x96, 0xdc, 0x21, 0xae, 0xa5, 0x10, 0xb3, 0x8c, 0x9f, 0xc9, 0x54, - 0x80, 0x67, 0x01, 0xf1, 0x1c, 0x64, 0xa4, 0xdd, 0x7e, 0xbe, 0x89, 0xc0, 0x37, 0x15, 0xc8, 0x62, - 0x18, 0xe1, 0xf6, 0xd4, 0xe5, 0x3f, 0x22, 0xb9, 0x0a, 0x8e, 0x5b, 0x06, 0x79, 0x71, 0x58, 0x94, - 0x28, 0x4c, 0x23, 0x12, 0x10, 0xc8, 0x04, 0x51, 0x20, 0xab, 0xe1, 0x6f, 0xf5, 0x3a, 0x14, 0x91, - 0x23, 0x7c, 0x90, 0xbc, 0x02, 0x82, 0x0b, 0x36, 0xb4, 0x72, 0x82, 0x78, 0x9a, 0x8f, 0xc1, 0x4d, - 0xb8, 0x1c, 0x75, 0xd8, 0x03, 0x45, 0xb2, 0x1a, 0xe4, 0xdd, 0x3e, 0xfa, 0x53, 0xff, 0x99, 0x2a, - 0x87, 0xd1, 0xee, 0x4f, 0x3a, 0xde, 0xfd, 0x21, 0xb2, 0x03, 0x25, 0x59, 0x1c, 0x6c, 0x32, 0x65, - 0x13, 0x4d, 0xa6, 0xc4, 0x63, 0x32, 0x37, 0xd1, 0x63, 0xf2, 0x4c, 0xac, 0xe3, 0x93, 0x47, 0x39, - 0x47, 0x20, 0xea, 0x97, 0xa0, 0x1a, 0x3d, 0x21, 0xca, 0xe8, 0x26, 0x54, 0xac, 0x68, 0x98, 0x92, - 0x92, 0x8a, 0xf5, 0x24, 0xa3, 0x44, 0x5a, 0x1c, 0x7d, 0x92, 0xd8, 0xf4, 0x10, 0x6a, 0x0f, 0x1d, - 0xbb, 0x6b, 0xcb, 0x66, 0xc2, 0x14, 0xea, 0x0e, 0xef, 0xc1, 0x31, 0x8d, 0x51, 0xe3, 0xe8, 0x15, - 0xff, 0x88, 0x81, 0xa5, 0xa3, 0x06, 0xa6, 0xfe, 0x2f, 0xcc, 0x0f, 0xec, 0x10, 0x30, 0x7d, 0x73, - 0x48, 0xb9, 0xff, 0x6c, 0x54, 0x70, 0x43, 0x98, 0x8b, 0x16, 0xfb, 0xdf, 0x85, 0xb4, 0xd6, 0xd3, - 0x87, 0x29, 0x5a, 0x8f, 0xee, 0x75, 0x6c, 0x1a, 0xd4, 0x43, 0xe4, 0x90, 0x8b, 0xe2, 0x99, 0xe7, - 0xf5, 0xda, 0x9c, 0x7b, 0xa9, 0x69, 0x7c, 0x7c, 0x97, 0xed, 0xa9, 0x6f, 0x42, 0x7e, 0x9d, 0xb9, - 0x2e, 0x3f, 0x1e, 0x57, 0x47, 0x54, 0x0a, 0xb1, 0x68, 0x41, 0xf3, 0x87, 0xe1, 0xd7, 0x3b, 0xa9, - 0xc8, 0xd7, 0x3b, 0xea, 0xef, 0x53, 0x50, 0x89, 0x71, 0x39, 0x45, 0x01, 0x86, 0x45, 0xff, 0x4c, - 0xa4, 0xe8, 0x1f, 0xed, 0xb0, 0x64, 0x63, 0x1d, 0x16, 0x72, 0x11, 0x66, 0x7b, 0xcc, 0xe9, 0x9a, - 0x78, 0x94, 0xb6, 0xc3, 0xa8, 0x21, 0x8b, 0x31, 0x33, 0x21, 0x98, 0x8b, 0x95, 0x2b, 0x5e, 0x04, - 0x71, 0xc7, 0x31, 0x3d, 0xd1, 0x5d, 0xcd, 0x6a, 0x91, 0x05, 0xfe, 0x8b, 0x83, 0x3f, 0xbf, 0x0a, - 0x8d, 0xba, 0x03, 0xd5, 0x98, 0x64, 0x97, 0xf4, 0xad, 0x69, 0xf6, 0xa3, 0xa2, 0x62, 0xcf, 0xc4, - 0xf4, 0xb6, 0x09, 0x73, 0xc9, 0x8d, 0x5d, 0xf2, 0x2a, 0x64, 0xa8, 0xbe, 0xe5, 0x6b, 0xea, 0xe9, - 0xa8, 0xa6, 0x26, 0x91, 0x35, 0xc4, 0x54, 0x9b, 0x30, 0x13, 0x57, 0x7d, 0x72, 0x05, 0xf2, 0x42, - 0x81, 0xfd, 0x65, 0xe6, 0x47, 0x2e, 0xa3, 0xf9, 0x98, 0xea, 0x7b, 0x09, 0x6e, 0xd0, 0xf3, 0x1c, - 0x66, 0xa5, 0x91, 0x05, 0xee, 0x4f, 0x32, 0x00, 0x61, 0x66, 0x32, 0x60, 0x52, 0x5c, 0xf1, 0x4d, - 0xaf, 0x13, 0xb4, 0x9e, 0x70, 0x90, 0xec, 0x61, 0xa4, 0x07, 0x7b, 0x18, 0x75, 0x28, 0xf8, 0x29, - 0x06, 0x0a, 0xb8, 0xa2, 0x05, 0x63, 0xb2, 0x00, 0xe0, 0xda, 0x8e, 0xd7, 0xb6, 0x1d, 0x83, 0x39, - 0xa8, 0xc6, 0x15, 0xad, 0xc8, 0x21, 0x0f, 0x38, 0x20, 0x88, 0x4e, 0x39, 0x9c, 0xc0, 0xdf, 0x22, - 0x4c, 0xca, 0x37, 0x48, 0x1e, 0xe1, 0xc1, 0x33, 0x63, 0xa0, 0xf4, 0x56, 0x18, 0x28, 0xbd, 0xe1, - 0x67, 0xc4, 0xd4, 0x6a, 0xe3, 0xf7, 0x35, 0xa8, 0x88, 0x05, 0xce, 0x8e, 0xd5, 0xc4, 0x2f, 0x2f, - 0x17, 0x00, 0x78, 0x06, 0x43, 0x75, 0x0c, 0xb2, 0x20, 0xd8, 0x61, 0x96, 0xb1, 0x84, 0x00, 0x3e, - 0x8d, 0xf5, 0x31, 0x51, 0x95, 0x2e, 0x89, 0x69, 0x0e, 0xd1, 0x38, 0x20, 0x56, 0xe0, 0x2c, 0xef, - 0x5f, 0xe0, 0xac, 0x4c, 0x64, 0x3e, 0x6f, 0xc6, 0xb2, 0xb2, 0x99, 0x83, 0x1b, 0x8e, 0x61, 0x4e, - 0xf6, 0x46, 0x24, 0x27, 0x9b, 0x3d, 0x90, 0x30, 0xc8, 0xc8, 0xea, 0x50, 0x30, 0xfa, 0x0e, 0x86, - 0xa7, 0x5a, 0x55, 0xdc, 0x99, 0x3f, 0x26, 0xe7, 0xa1, 0x2c, 0xb8, 0x91, 0x62, 0x9a, 0x13, 0x42, - 0x46, 0x98, 0x10, 0x94, 0xba, 0x01, 0x33, 0xa1, 0x22, 0xa1, 0xa2, 0x5e, 0x87, 0x52, 0x98, 0xa6, - 0xfb, 0xca, 0x7a, 0x32, 0xaa, 0xac, 0x91, 0xb4, 0x3f, 0x8a, 0x3a, 0x52, 0x5b, 0x3f, 0x55, 0xe0, - 0x78, 0xf2, 0xa9, 0xf0, 0xcf, 0x50, 0x42, 0xfd, 0x7b, 0x0a, 0x8e, 0x3f, 0x46, 0xef, 0x27, 0xeb, - 0x9c, 0x7e, 0xa4, 0x8c, 0x16, 0xf2, 0x95, 0x89, 0x0a, 0xf9, 0xef, 0x40, 0xd9, 0x30, 0xdd, 0x5e, - 0x87, 0xee, 0x89, 0x8f, 0x51, 0x52, 0x63, 0x50, 0x97, 0x24, 0x05, 0x7e, 0xad, 0x72, 0x23, 0xd6, - 0x4f, 0x1c, 0x27, 0xbd, 0x8c, 0x74, 0x1b, 0xaf, 0x45, 0x7a, 0x98, 0x99, 0x31, 0x48, 0x83, 0x0e, - 0xe7, 0x75, 0x28, 0x74, 0x6c, 0x91, 0x23, 0xc9, 0x47, 0xd6, 0x01, 0x07, 0xf6, 0xb1, 0x39, 0x25, - 0xd7, 0xf8, 0x0f, 0x6c, 0x8b, 0x8d, 0x55, 0x72, 0x08, 0xb0, 0xd5, 0x4f, 0x52, 0x40, 0x84, 0xf4, - 0xc7, 0x2c, 0x61, 0xf3, 0x80, 0x30, 0xb6, 0x50, 0x45, 0xe5, 0xf3, 0xe6, 0xa0, 0xcb, 0x3c, 0xf8, - 0x36, 0x22, 0x0e, 0xf5, 0xd0, 0x02, 0x8d, 0x5f, 0x63, 0x76, 0xb2, 0x6b, 0xf4, 0x9b, 0xc6, 0xb9, - 0xf1, 0x9a, 0xc6, 0xea, 0x87, 0x19, 0xc8, 0x60, 0xe7, 0x32, 0x19, 0x47, 0xa2, 0xdf, 0x80, 0xa5, - 0x12, 0xdf, 0x80, 0x9d, 0x4f, 0x68, 0xaa, 0x1f, 0x4e, 0x22, 0xba, 0x78, 0xc0, 0x57, 0x3e, 0xfb, - 0x77, 0xcc, 0x03, 0x7d, 0x92, 0x1d, 0xf3, 0x40, 0x63, 0xea, 0x11, 0x8d, 0x91, 0xcd, 0x29, 0x7f, - 0x1c, 0xf3, 0xeb, 0x85, 0x84, 0x5f, 0x3f, 0x0b, 0xa5, 0xc8, 0x27, 0x03, 0x18, 0x50, 0x8a, 0x1a, - 0x84, 0x5f, 0x0c, 0xf0, 0x78, 0x23, 0x24, 0xc5, 0xa7, 0xe5, 0x57, 0x60, 0x02, 0xd0, 0x32, 0xc8, - 0x05, 0xa8, 0x6c, 0xd2, 0x2e, 0xd3, 0x31, 0x1a, 0x85, 0x9f, 0x82, 0x95, 0x43, 0xa0, 0xc8, 0xdd, - 0x5d, 0x8f, 0x51, 0xfc, 0xbf, 0x97, 0xb2, 0x7c, 0x34, 0xf1, 0x71, 0x0b, 0x3b, 0x03, 0xb6, 0xd5, - 0x31, 0x2d, 0x11, 0x50, 0x0a, 0x9a, 0x1c, 0x25, 0x1a, 0xf6, 0x33, 0xc9, 0x86, 0x7d, 0x22, 0x18, - 0xcd, 0x1e, 0x25, 0x97, 0xab, 0x4e, 0x94, 0xcb, 0x7d, 0x2f, 0x05, 0x95, 0xe0, 0x69, 0xee, 0xf7, - 0xd0, 0x31, 0xfb, 0x8a, 0x75, 0xe7, 0x2f, 0x24, 0xdb, 0xdb, 0x01, 0x7e, 0x38, 0xd2, 0xa0, 0x1f, - 0xbc, 0xf1, 0x47, 0xf6, 0xd0, 0x3f, 0x56, 0xa0, 0x18, 0x50, 0x90, 0x8b, 0x90, 0xc5, 0x6d, 0xa4, - 0xfb, 0x1c, 0xf2, 0x0d, 0x80, 0x98, 0xff, 0x7c, 0xda, 0xe8, 0x97, 0x21, 0x2b, 0x3e, 0x08, 0xf8, - 0x57, 0xc8, 0x46, 0x3f, 0x28, 0x18, 0xec, 0xf5, 0x8b, 0x69, 0xf5, 0xeb, 0x29, 0x58, 0xc0, 0xe4, - 0xfc, 0x88, 0x9f, 0x89, 0x91, 0xff, 0x86, 0x9c, 0x08, 0x79, 0xf2, 0xbc, 0xb7, 0xa2, 0x3b, 0xee, - 0xbb, 0xc3, 0x60, 0x3c, 0x44, 0x74, 0x4d, 0xae, 0x57, 0x7f, 0x0a, 0x27, 0x87, 0x63, 0x84, 0xcd, - 0x65, 0x65, 0x54, 0x73, 0x39, 0x95, 0x68, 0x2e, 0x47, 0xcd, 0x30, 0x1d, 0x37, 0x43, 0xf5, 0xab, - 0x29, 0x20, 0xb8, 0xee, 0x51, 0xdf, 0x60, 0xc1, 0x53, 0x2b, 0x3d, 0xe2, 0xa9, 0x95, 0x89, 0x3f, - 0x1e, 0x56, 0x07, 0x9f, 0x5a, 0x63, 0x14, 0xc6, 0x93, 0xef, 0xb0, 0xdb, 0x43, 0xde, 0x61, 0x63, - 0xd4, 0xc2, 0x92, 0x8f, 0x34, 0xf5, 0x09, 0xd4, 0x07, 0xa5, 0xe0, 0x86, 0x09, 0x44, 0xe2, 0xb1, - 0x70, 0x66, 0xe0, 0x9e, 0x47, 0xbc, 0x3d, 0xbe, 0x92, 0x82, 0xd3, 0x38, 0x9f, 0x4c, 0xb8, 0x26, - 0x2a, 0xcd, 0x3e, 0x49, 0xa8, 0xd9, 0xcd, 0x81, 0xed, 0x47, 0x2c, 0xdf, 0x48, 0xc2, 0xe3, 0x4a, - 0xc6, 0xe0, 0xc4, 0x50, 0x84, 0xe9, 0xea, 0xd8, 0xf2, 0xdb, 0x30, 0xaf, 0xdb, 0xdd, 0xc6, 0x33, - 0xe6, 0xd8, 0xa6, 0xde, 0xa1, 0x1b, 0x6e, 0x84, 0xfd, 0xe5, 0xe2, 0x1a, 0xfe, 0x5e, 0xea, 0x99, - 0x0f, 0x95, 0xff, 0x49, 0xd3, 0x9e, 0xf9, 0xe3, 0x54, 0x66, 0xed, 0xee, 0xc3, 0xe5, 0x9f, 0xa6, - 0x72, 0x62, 0x66, 0x23, 0x87, 0x37, 0x78, 0xe5, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x69, 0x3b, - 0xc1, 0xc8, 0xb9, 0x39, 0x00, 0x00, + 0xb1, 0x1e, 0xfe, 0x59, 0x5c, 0xee, 0x72, 0x5b, 0x9f, 0xc7, 0xa5, 0xb4, 0xfa, 0x8c, 0x6c, 0x4b, + 0x86, 0xfd, 0x28, 0x7b, 0x65, 0x4b, 0xb2, 0xf5, 0x2c, 0x6b, 0x3f, 0x94, 0x40, 0x4b, 0x5a, 0xe9, + 0xcd, 0x4a, 0x7a, 0x0f, 0xef, 0x1d, 0xe8, 0xde, 0x99, 0xde, 0xd5, 0xbc, 0x25, 0x67, 0xe8, 0x99, + 0xe1, 0x7e, 0x8c, 0xf7, 0x80, 0x87, 0x20, 0x40, 0x72, 0x0a, 0x92, 0x00, 0x49, 0x10, 0x04, 0x48, + 0x82, 0x1c, 0x02, 0x3b, 0x87, 0x20, 0x39, 0xe4, 0x12, 0xe4, 0xee, 0x04, 0xb9, 0x05, 0x71, 0x90, + 0x5b, 0x12, 0xe4, 0x14, 0x20, 0xb7, 0x1c, 0x73, 0x09, 0xba, 0xba, 0xe7, 0x4b, 0x72, 0x97, 0xdc, + 0xa5, 0x6c, 0x23, 0x97, 0x05, 0xbb, 0xba, 0xaa, 0xa7, 0xaa, 0xba, 0xba, 0xaa, 0xba, 0xaa, 0x17, + 0xca, 0xb4, 0x6b, 0x5e, 0xa6, 0x5d, 0xb3, 0xde, 0x75, 0x6c, 0xcf, 0x26, 0x60, 0xd1, 0x2d, 0xda, + 0xa1, 0x75, 0xda, 0x35, 0x6b, 0x67, 0x37, 0x6d, 0x7b, 0xb3, 0xcd, 0x2e, 0xe3, 0xcc, 0x7a, 0x6f, + 0xe3, 0xb2, 0x67, 0x76, 0x98, 0xeb, 0xd1, 0x4e, 0x57, 0x20, 0xd7, 0xce, 0x24, 0x11, 0x76, 0x1c, + 0xda, 0xed, 0x32, 0xc7, 0x15, 0xf3, 0xea, 0x5f, 0x15, 0xc8, 0x2f, 0xea, 0xba, 0xdd, 0xb3, 0x3c, + 0xf2, 0x3c, 0x64, 0x7a, 0x2e, 0x73, 0xaa, 0xca, 0x39, 0xe5, 0x52, 0x69, 0xa1, 0x52, 0x0f, 0xbf, + 0x53, 0x7f, 0xec, 0x32, 0x47, 0xc3, 0x59, 0x72, 0x12, 0x72, 0x3b, 0xb4, 0xdd, 0x66, 0x5e, 0x35, + 0x75, 0x4e, 0xb9, 0x54, 0xd4, 0xe4, 0x88, 0x1c, 0x87, 0x2c, 0xeb, 0x50, 0xb3, 0x5d, 0x4d, 0x23, + 0x58, 0x0c, 0xc8, 0x15, 0xc8, 0x1b, 0x6c, 0xdb, 0xd4, 0x99, 0x5b, 0xcd, 0x9c, 0x4b, 0x5f, 0x2a, + 0x2d, 0xcc, 0x45, 0x97, 0x95, 0x5f, 0x5e, 0x41, 0x0c, 0xcd, 0xc7, 0x24, 0xa7, 0xa0, 0xa8, 0xf7, + 0x5c, 0xcf, 0xee, 0xb4, 0x4c, 0xa3, 0x9a, 0xc5, 0xe5, 0x0a, 0x02, 0xd0, 0x34, 0xc8, 0x0d, 0x28, + 0x6d, 0x33, 0xc7, 0xdc, 0xd8, 0x6b, 0x71, 0x59, 0xab, 0x39, 0x64, 0xb6, 0x56, 0x17, 0x72, 0xd6, + 0x7d, 0x39, 0xeb, 0x8f, 0x7c, 0x45, 0x68, 0x20, 0xd0, 0x39, 0x40, 0xfd, 0x9a, 0x02, 0x65, 0xf9, + 0xd1, 0x65, 0x5c, 0x90, 0x4c, 0x43, 0xca, 0x34, 0x50, 0xe4, 0xa2, 0x96, 0x32, 0x0d, 0x72, 0x0d, + 0x32, 0xdb, 0xd4, 0x71, 0xab, 0x29, 0xe4, 0xf6, 0xc2, 0x00, 0x6e, 0x05, 0x61, 0xfd, 0x09, 0x75, + 0xdc, 0x86, 0xe5, 0x39, 0x7b, 0x1a, 0x12, 0xd4, 0xae, 0x41, 0x31, 0x00, 0x91, 0x0a, 0xa4, 0xb7, + 0xd8, 0x9e, 0x5c, 0x96, 0xff, 0xe4, 0xea, 0xd9, 0xa6, 0xed, 0x1e, 0x93, 0x5a, 0x13, 0x83, 0xb7, + 0x52, 0xd7, 0x95, 0x28, 0x4f, 0x42, 0x11, 0x87, 0xe0, 0x49, 0x10, 0x4e, 0x8e, 0xa7, 0x9f, 0x2a, + 0x30, 0x25, 0x97, 0x6e, 0xe0, 0x3e, 0x06, 0xbb, 0xab, 0x44, 0x77, 0xb7, 0x06, 0x85, 0x2e, 0x75, + 0xdd, 0x1d, 0xdb, 0x31, 0xe4, 0x1a, 0xc1, 0x98, 0x5c, 0x95, 0x4c, 0xa7, 0x91, 0x69, 0x75, 0x00, + 0xd3, 0xb8, 0xf2, 0xe4, 0x78, 0xfe, 0x8e, 0x02, 0x33, 0x72, 0xe5, 0xdb, 0x54, 0x67, 0xeb, 0xb6, + 0xbd, 0xc5, 0xb1, 0x3d, 0x7b, 0x8b, 0x59, 0x3e, 0xdb, 0x38, 0x20, 0x6f, 0xc6, 0xf4, 0xf9, 0xc2, + 0x00, 0xd6, 0xfc, 0x05, 0x26, 0xc7, 0xdd, 0xaf, 0x14, 0xa8, 0x25, 0x16, 0x6f, 0x5a, 0xae, 0x47, + 0x2d, 0xef, 0x0e, 0xed, 0x30, 0xf2, 0x0a, 0x10, 0xd7, 0xdc, 0xb4, 0x98, 0xd1, 0xea, 0xb6, 0xe9, + 0x1e, 0x73, 0x5a, 0xa6, 0xb5, 0x61, 0xcb, 0x95, 0x2b, 0x62, 0xe6, 0x21, 0x4e, 0x34, 0xad, 0x0d, + 0x9b, 0xac, 0xc4, 0x04, 0x78, 0x75, 0x1f, 0x01, 0x22, 0xdf, 0x98, 0x9c, 0x2c, 0xbf, 0x4c, 0xc1, + 0xac, 0xfc, 0x0e, 0x5f, 0x78, 0x99, 0x59, 0x1e, 0x73, 0xf8, 0xa9, 0xf5, 0x79, 0xf7, 0x8d, 0xb7, + 0x20, 0x00, 0x4d, 0x83, 0x4f, 0xae, 0xf7, 0x2c, 0xa3, 0xcd, 0xf8, 0xa4, 0x34, 0x15, 0x01, 0x68, + 0x1a, 0xe4, 0x65, 0x98, 0x0d, 0xfc, 0x56, 0xcb, 0x65, 0xba, 0x6d, 0x19, 0x2e, 0xba, 0x91, 0xb4, + 0x56, 0x09, 0x26, 0xd6, 0x04, 0x9c, 0x10, 0xc8, 0xb8, 0xb4, 0xed, 0x55, 0x33, 0xb8, 0x08, 0xfe, + 0x26, 0xa7, 0xa1, 0xc8, 0x75, 0x44, 0xbd, 0x9e, 0xc3, 0xa4, 0xc3, 0x08, 0x01, 0xe4, 0x79, 0x98, + 0xee, 0xf6, 0xd6, 0xdb, 0xa6, 0xde, 0xda, 0x62, 0x7b, 0xad, 0x9e, 0xd3, 0x46, 0xa7, 0x51, 0xd4, + 0xa6, 0x04, 0xf4, 0x2e, 0xdb, 0x7b, 0xec, 0xb4, 0xc9, 0x0d, 0xa9, 0xd3, 0x3c, 0xea, 0xf4, 0xe2, + 0x00, 0x9d, 0x86, 0xb2, 0x4e, 0x4e, 0x95, 0xdf, 0x0a, 0x0f, 0xff, 0x1d, 0xf4, 0x60, 0x43, 0x4c, + 0xf6, 0x60, 0x17, 0x20, 0xc8, 0x27, 0xc7, 0xd9, 0x37, 0x42, 0x17, 0xb0, 0xe6, 0x31, 0xda, 0x19, + 0xc2, 0xd8, 0xd5, 0x18, 0x63, 0x83, 0x8e, 0x39, 0x52, 0x4f, 0x8e, 0xaf, 0x65, 0x98, 0x5d, 0x34, + 0x8c, 0xdb, 0x8e, 0xc9, 0x2c, 0xc3, 0xd5, 0xd8, 0xfb, 0x3d, 0xe6, 0x7a, 0x7c, 0x01, 0xd3, 0x70, + 0xab, 0xca, 0xb9, 0x34, 0x5f, 0xc0, 0x34, 0x5c, 0x6e, 0x12, 0x3c, 0x5c, 0x59, 0xb4, 0xc3, 0x04, + 0x73, 0x45, 0x2d, 0x04, 0xa8, 0xf7, 0xe0, 0xf8, 0xa2, 0x61, 0xdc, 0x71, 0xec, 0x5e, 0x97, 0x87, + 0xb6, 0x60, 0x9d, 0x39, 0x28, 0x6c, 0x72, 0x60, 0x68, 0xc2, 0x79, 0x1c, 0x37, 0x0d, 0x3e, 0xc5, + 0xe9, 0x5b, 0xfc, 0x3b, 0x62, 0xbd, 0x3c, 0x1f, 0x37, 0x0d, 0x57, 0xfd, 0xbe, 0x02, 0x73, 0x8b, + 0x3d, 0xef, 0x29, 0xb3, 0x3c, 0x53, 0xa7, 0x1e, 0x13, 0x11, 0xc2, 0x5f, 0xf3, 0x0a, 0xe4, 0xa9, + 0xd0, 0x84, 0x8c, 0xac, 0x73, 0x43, 0x83, 0x8a, 0xe6, 0x63, 0x92, 0x05, 0xc8, 0xe9, 0x0e, 0xa3, + 0x9e, 0x50, 0xc0, 0xa0, 0x00, 0xb7, 0x64, 0xdb, 0xed, 0x27, 0x5c, 0x2b, 0x9a, 0xc4, 0xe4, 0xde, + 0xd8, 0x97, 0x50, 0x06, 0xe1, 0x60, 0xdc, 0xc7, 0xa2, 0x0c, 0xb9, 0xe3, 0xb0, 0xe8, 0x47, 0xe9, + 0x67, 0xc5, 0xe2, 0x77, 0x15, 0xa8, 0x46, 0x59, 0xc4, 0xf0, 0xe0, 0x73, 0xb8, 0x90, 0xe4, 0xb0, + 0x3a, 0x2c, 0xa0, 0x3c, 0x3b, 0x06, 0x7f, 0xab, 0xc0, 0xa9, 0x28, 0x83, 0xbe, 0x8f, 0xf5, 0x79, + 0x7c, 0x23, 0xc9, 0xe3, 0xa9, 0x7d, 0x1c, 0xf3, 0x33, 0x63, 0x93, 0xd4, 0x21, 0xe3, 0xee, 0x59, + 0x3a, 0x3a, 0xc8, 0xfd, 0x57, 0x43, 0x3c, 0xf5, 0xe7, 0x0a, 0xbc, 0x38, 0x48, 0xac, 0x48, 0xe8, + 0xf0, 0x25, 0xbc, 0x95, 0x94, 0xf0, 0xc5, 0xd1, 0x42, 0xcf, 0xb3, 0xdb, 0x93, 0x0f, 0x15, 0x98, + 0x8f, 0x32, 0x1f, 0xfa, 0x68, 0x9f, 0xe7, 0x6b, 0x49, 0x9e, 0xe7, 0xf7, 0x75, 0xed, 0x9f, 0xde, + 0x11, 0x14, 0x0e, 0x7b, 0xac, 0x23, 0x28, 0x49, 0x3e, 0xb5, 0x23, 0x88, 0xae, 0x7b, 0xac, 0x23, + 0x28, 0x28, 0x9e, 0x19, 0x83, 0xf7, 0xe0, 0xf8, 0x12, 0xb5, 0x26, 0xe5, 0xb7, 0x1b, 0x70, 0x6c, + 0xa9, 0x6d, 0xeb, 0x5b, 0x47, 0x0c, 0x26, 0xff, 0x9f, 0x81, 0xe9, 0xe5, 0xa7, 0xd4, 0xb2, 0x58, + 0xfb, 0x3e, 0x73, 0x5d, 0xba, 0xc9, 0xc8, 0x3c, 0x80, 0x2e, 0x20, 0x21, 0x47, 0x45, 0x09, 0x69, + 0x1a, 0x7c, 0xba, 0x23, 0x30, 0xc3, 0x74, 0xa8, 0x28, 0x21, 0x4d, 0x83, 0x5c, 0x86, 0x8c, 0x6e, + 0x1b, 0x42, 0x7a, 0xee, 0x45, 0x92, 0x3a, 0x6b, 0x5a, 0xde, 0x95, 0x05, 0x79, 0x84, 0x39, 0x22, + 0xcf, 0xae, 0x5c, 0x66, 0x19, 0x22, 0xf5, 0x12, 0x89, 0x51, 0x41, 0x00, 0x9a, 0x46, 0x4c, 0x9f, + 0xd9, 0x84, 0xaf, 0xa8, 0x42, 0x5e, 0xb7, 0x2d, 0x8f, 0x59, 0x9e, 0xcc, 0x89, 0xfc, 0x21, 0xbf, + 0x66, 0x89, 0xfd, 0x10, 0xd7, 0xac, 0xfc, 0xc1, 0xd7, 0x2c, 0x81, 0xce, 0x01, 0x9c, 0xb8, 0xd7, + 0x35, 0x02, 0xe2, 0xc2, 0xc1, 0xc4, 0x02, 0x1d, 0x89, 0xdf, 0x02, 0xe0, 0x17, 0x54, 0xd3, 0x45, + 0xb6, 0x8a, 0x07, 0xda, 0x4d, 0x04, 0x9b, 0x2b, 0xc2, 0xb1, 0xed, 0x4e, 0x0b, 0x85, 0x05, 0x21, + 0x2c, 0x07, 0xac, 0x72, 0x61, 0xa3, 0x46, 0x52, 0x8a, 0x1b, 0xc9, 0x19, 0x28, 0x49, 0x23, 0x69, + 0xd9, 0x16, 0xab, 0x4e, 0x89, 0x1d, 0x11, 0x76, 0xf2, 0xc0, 0x62, 0xd1, 0x79, 0x6f, 0xc7, 0xae, + 0x96, 0xa3, 0xf3, 0x8f, 0x76, 0x6c, 0xf5, 0x2b, 0x0a, 0x90, 0xb8, 0x09, 0xdc, 0x33, 0x5d, 0x8f, + 0x5c, 0x85, 0x82, 0xdc, 0x55, 0x61, 0x4e, 0x5c, 0x90, 0xc8, 0x99, 0x89, 0x53, 0x68, 0x01, 0x2e, + 0x39, 0x0b, 0x25, 0x8b, 0xed, 0x7a, 0x2d, 0xbd, 0xe7, 0xb8, 0xb6, 0x23, 0x0d, 0x04, 0x38, 0x68, + 0x19, 0x21, 0x1c, 0xa1, 0xeb, 0xb0, 0x6d, 0x1f, 0x41, 0x1c, 0x13, 0xe0, 0x20, 0x81, 0xa0, 0xfe, + 0x8c, 0x33, 0x84, 0x1b, 0x82, 0x87, 0xc5, 0x37, 0x6d, 0x02, 0x19, 0x54, 0x8d, 0xb0, 0x48, 0xfc, + 0x4d, 0xce, 0x41, 0xc9, 0x60, 0xae, 0xee, 0x98, 0x5d, 0xcf, 0xb4, 0x2d, 0xf9, 0xb1, 0x28, 0x88, + 0x2b, 0xae, 0x4d, 0xad, 0xcd, 0x96, 0x47, 0x37, 0xe5, 0xa7, 0xf2, 0x7c, 0xfc, 0x88, 0x6e, 0x72, + 0x4b, 0xa6, 0xdb, 0xd4, 0xa3, 0x0e, 0xe6, 0xd5, 0xc2, 0xf4, 0x8a, 0x02, 0xc2, 0x93, 0x6a, 0x02, + 0x19, 0xbb, 0xcb, 0x2c, 0xb4, 0xbb, 0x82, 0x86, 0xbf, 0xf9, 0x1e, 0x75, 0xe8, 0x6e, 0x4b, 0x78, + 0x12, 0x6e, 0x75, 0x59, 0xad, 0xd0, 0xa1, 0xbb, 0xcb, 0x7c, 0xac, 0xde, 0x86, 0xe3, 0x2b, 0xac, + 0xcd, 0x3c, 0x76, 0xc4, 0x33, 0x79, 0x19, 0x88, 0x58, 0x27, 0x26, 0xfe, 0x70, 0x37, 0xa1, 0xde, + 0x81, 0x33, 0x82, 0xe0, 0x1e, 0xa3, 0x06, 0x73, 0xd6, 0x6d, 0xea, 0x18, 0x1a, 0xd3, 0x6d, 0xfe, + 0x57, 0x10, 0xbf, 0x00, 0xd3, 0xed, 0x70, 0x2e, 0x5c, 0xa2, 0x1c, 0x81, 0x36, 0x0d, 0xb5, 0x0e, + 0x35, 0xb1, 0xd0, 0xaa, 0xed, 0x99, 0x1b, 0xdc, 0x8d, 0x9a, 0xb6, 0x35, 0x5c, 0x0e, 0x55, 0x87, + 0x13, 0x02, 0x7f, 0xcd, 0xb3, 0x1d, 0xba, 0xc9, 0x1e, 0xac, 0xff, 0x0f, 0xd3, 0x3d, 0xb4, 0x49, + 0xd0, 0xed, 0x76, 0x9b, 0xe9, 0xb8, 0x2d, 0xe2, 0x5b, 0x11, 0x88, 0x9f, 0x34, 0xa7, 0xc2, 0xa4, + 0xb9, 0x0a, 0xf9, 0x6d, 0x7e, 0x16, 0x6c, 0xcb, 0xdf, 0x26, 0x39, 0x54, 0x5b, 0x70, 0x6a, 0xc0, + 0x47, 0xdc, 0x30, 0xae, 0x83, 0x8d, 0x90, 0x96, 0xcf, 0x5c, 0x69, 0xe1, 0x7c, 0xd4, 0x52, 0x07, + 0x72, 0xa8, 0x15, 0x6d, 0xf9, 0xcb, 0x55, 0xff, 0xa6, 0x40, 0xb6, 0xb1, 0xcd, 0x8f, 0xe0, 0x20, + 0x13, 0x5b, 0x04, 0xe8, 0x3a, 0x76, 0x97, 0x39, 0x9e, 0xc9, 0xfc, 0xab, 0x42, 0x6c, 0x7d, 0x24, + 0xad, 0x3f, 0x0c, 0x70, 0xc4, 0x4d, 0x21, 0x42, 0x44, 0xae, 0x43, 0x31, 0xb8, 0x0a, 0x4a, 0xc7, + 0xb8, 0x9f, 0x43, 0x09, 0x91, 0xb9, 0xff, 0x63, 0xbb, 0x1e, 0x37, 0x0c, 0x61, 0xa0, 0x05, 0x2d, + 0x18, 0xd7, 0xde, 0x86, 0x99, 0xc4, 0x47, 0xc7, 0xba, 0x8b, 0x7c, 0xa4, 0x40, 0x4e, 0x18, 0xea, + 0x88, 0xc5, 0xb3, 0xd7, 0x20, 0xeb, 0x7a, 0x61, 0x38, 0xdc, 0xd7, 0xb5, 0x0b, 0x4c, 0xf5, 0x36, + 0x64, 0xd7, 0xf8, 0x0f, 0x02, 0x90, 0xbb, 0xad, 0x35, 0x1b, 0xab, 0x2b, 0x95, 0xe7, 0xc8, 0x0c, + 0x94, 0x9a, 0xab, 0x4f, 0x9a, 0x8f, 0x1a, 0xad, 0xb5, 0xc6, 0xea, 0xa3, 0x8a, 0x42, 0x8e, 0xc1, + 0x8c, 0x04, 0x68, 0x8d, 0xe5, 0x46, 0xf3, 0x49, 0x63, 0xa5, 0x92, 0x22, 0x25, 0xc8, 0x2f, 0xdd, + 0x7b, 0xb0, 0x7c, 0xb7, 0xb1, 0x52, 0x49, 0xab, 0x1a, 0x80, 0x60, 0x15, 0x3d, 0xd3, 0x2b, 0x90, + 0xdf, 0x10, 0x27, 0x4c, 0x6e, 0x37, 0x89, 0x72, 0x2c, 0x10, 0x35, 0x1f, 0x85, 0x9c, 0x84, 0x5c, + 0xcc, 0x15, 0xc9, 0x91, 0x6a, 0xc0, 0xcc, 0x1d, 0xe6, 0xc5, 0x22, 0xf1, 0x98, 0x07, 0x95, 0x9c, + 0x87, 0xa9, 0x0d, 0x99, 0x30, 0xa2, 0xf1, 0xa5, 0x11, 0xa1, 0xe4, 0xc3, 0xb8, 0x6d, 0x7d, 0x98, + 0x86, 0x2c, 0x1e, 0xe3, 0xbe, 0xc2, 0x18, 0x0f, 0xb3, 0xdc, 0xc9, 0xd9, 0x4e, 0x24, 0x8e, 0x4a, + 0x48, 0xd3, 0x08, 0x4c, 0x31, 0x3d, 0xdc, 0xdb, 0x65, 0xf6, 0xf7, 0x76, 0xd9, 0xb8, 0xb7, 0xab, + 0x71, 0x7f, 0xee, 0x51, 0x83, 0x7a, 0x54, 0xc6, 0xcb, 0x60, 0x9c, 0xf0, 0x84, 0xf9, 0xa4, 0x27, + 0xac, 0x4b, 0x4f, 0x58, 0x38, 0x38, 0x2b, 0x47, 0x2f, 0x39, 0x0f, 0xc0, 0x8c, 0x4d, 0x26, 0xdd, + 0x64, 0x11, 0xdd, 0x64, 0x91, 0x43, 0xd0, 0x4f, 0xc6, 0x9d, 0x28, 0xc4, 0x9d, 0x68, 0x32, 0x76, + 0x97, 0x8e, 0x12, 0xbb, 0xa7, 0xc6, 0x89, 0xdd, 0xea, 0x2a, 0x14, 0x71, 0xa7, 0xd0, 0xc6, 0x5e, + 0x82, 0x1c, 0x7a, 0x57, 0xdf, 0xc4, 0x66, 0xa3, 0x26, 0x26, 0xfc, 0xb2, 0x44, 0x18, 0x6a, 0x60, + 0xdf, 0x4c, 0x41, 0x39, 0xc8, 0xf6, 0x70, 0xd1, 0x15, 0x28, 0x09, 0x17, 0xce, 0x4d, 0xc8, 0x5f, + 0xf9, 0x42, 0xdf, 0xca, 0x3e, 0x7e, 0x38, 0xd2, 0x60, 0x33, 0x48, 0x1b, 0x87, 0x7d, 0xaf, 0xf6, + 0x43, 0x45, 0x0a, 0xc0, 0xd1, 0x9e, 0xdd, 0x99, 0xbe, 0xe5, 0x9f, 0xe9, 0x69, 0x80, 0xb5, 0xc7, + 0x0f, 0x1b, 0xda, 0xe2, 0xca, 0xfd, 0xe6, 0x6a, 0xe5, 0x39, 0x52, 0x84, 0xac, 0xf8, 0xa9, 0xf0, + 0xe3, 0x7e, 0xbf, 0x71, 0x7f, 0xa9, 0xa1, 0x55, 0x52, 0xa4, 0x02, 0x53, 0xef, 0x3e, 0x68, 0xae, + 0xb6, 0xb4, 0xc6, 0xbf, 0x3f, 0x6e, 0xac, 0x3d, 0xaa, 0xa4, 0xd5, 0x2f, 0x29, 0x70, 0xba, 0xd9, + 0xe9, 0xda, 0x4e, 0x70, 0xdd, 0x4a, 0x04, 0xcc, 0x43, 0x5e, 0x46, 0x5f, 0x85, 0xac, 0xc3, 0x5c, + 0x59, 0xdc, 0xdf, 0xdf, 0x4e, 0x05, 0xa2, 0xfa, 0xaf, 0x50, 0x79, 0xd7, 0x36, 0xad, 0x51, 0xe3, + 0xec, 0xbf, 0xc1, 0x09, 0x8e, 0xfe, 0xc8, 0xee, 0xa1, 0x03, 0xb0, 0x3c, 0x9f, 0xe6, 0x02, 0x94, + 0xbd, 0x00, 0x18, 0x12, 0x4e, 0x85, 0xc0, 0xa6, 0xa1, 0xde, 0x87, 0x13, 0x77, 0x4d, 0x7d, 0x6b, + 0x52, 0x17, 0x80, 0xbf, 0xa4, 0x61, 0xb6, 0x2f, 0xde, 0x8f, 0x18, 0xe8, 0xf9, 0xba, 0xf6, 0x8e, + 0xc5, 0x22, 0xae, 0x27, 0x8f, 0xe3, 0xa6, 0x41, 0xae, 0x27, 0xae, 0x30, 0xa5, 0x85, 0xd3, 0x7d, + 0x8a, 0x5c, 0xf3, 0x1c, 0xd3, 0xda, 0x14, 0xaa, 0x0c, 0x13, 0xf2, 0xe3, 0x90, 0x75, 0x75, 0xdb, + 0x61, 0xe8, 0x98, 0xd2, 0x9a, 0x18, 0x70, 0xbf, 0xe3, 0xf6, 0xd6, 0xc5, 0x44, 0x16, 0x27, 0x82, + 0x31, 0xf7, 0x04, 0x56, 0xaf, 0xd3, 0x12, 0x93, 0x32, 0x9d, 0xb2, 0x7a, 0x9d, 0x35, 0x9f, 0x30, + 0x70, 0x58, 0xf9, 0x84, 0xc3, 0x4a, 0x78, 0x89, 0xc2, 0x51, 0xbc, 0x44, 0x71, 0xac, 0x0c, 0xff, + 0x06, 0x94, 0xd8, 0x6e, 0xd7, 0x74, 0x64, 0x0b, 0x07, 0x0e, 0x26, 0x16, 0xe8, 0x48, 0x4c, 0x20, + 0xe3, 0x50, 0x6b, 0x0b, 0xbd, 0x5a, 0x5a, 0xc3, 0xdf, 0x44, 0x85, 0x32, 0xf7, 0x86, 0xa1, 0x1e, + 0xb8, 0xd7, 0x2a, 0x6b, 0xa5, 0x0e, 0xdd, 0x5d, 0x95, 0xaa, 0x50, 0x7f, 0xa7, 0xc0, 0x89, 0xbe, + 0xbd, 0x46, 0x97, 0x72, 0x0d, 0xf2, 0x0e, 0x8e, 0x7c, 0x77, 0x12, 0xab, 0x10, 0xf4, 0xe7, 0x83, + 0x3e, 0x36, 0x59, 0x82, 0xb2, 0xb0, 0x00, 0x9f, 0x3c, 0x35, 0x0a, 0xf9, 0x14, 0xd2, 0x68, 0x72, + 0x8d, 0x44, 0xaa, 0x9f, 0x3e, 0x28, 0xd5, 0xcf, 0xf4, 0xa5, 0xfa, 0x75, 0xb4, 0xe1, 0xed, 0x91, + 0x33, 0xdd, 0xff, 0x85, 0x63, 0xf7, 0x4c, 0x6b, 0x6b, 0x42, 0xd5, 0xab, 0x71, 0xab, 0x4d, 0xbf, + 0x50, 0xa0, 0xc6, 0xb5, 0x1e, 0xbf, 0xfb, 0x04, 0xe7, 0xf8, 0x80, 0x8b, 0xf3, 0x6b, 0x90, 0x6d, + 0x9b, 0x1d, 0xd3, 0x1b, 0xc9, 0xd7, 0x22, 0x26, 0x79, 0x1d, 0xf2, 0x1b, 0xb6, 0xb3, 0x43, 0x1d, + 0x63, 0x68, 0xda, 0x18, 0xf2, 0xe8, 0xa3, 0x46, 0x02, 0x44, 0x26, 0x16, 0x90, 0xbe, 0xae, 0x00, + 0xe1, 0xec, 0x27, 0xbc, 0x6d, 0xc0, 0x97, 0x32, 0x32, 0x5f, 0xe3, 0x87, 0x8d, 0x08, 0x53, 0xe9, + 0x18, 0x53, 0x0e, 0xcc, 0x72, 0x9e, 0xd0, 0x00, 0xdc, 0xfd, 0xae, 0x7a, 0x43, 0xc2, 0x5e, 0xc8, + 0x7e, 0x7a, 0x54, 0xf6, 0xd5, 0x9f, 0xf0, 0xe3, 0xe4, 0x7f, 0x74, 0x54, 0x57, 0x7c, 0x88, 0xed, + 0x0b, 0xd4, 0x94, 0x3e, 0x84, 0x9a, 0xe2, 0x7b, 0xf7, 0x89, 0x02, 0x97, 0x38, 0xcb, 0x7d, 0x47, + 0xd2, 0x5d, 0x74, 0xec, 0x9e, 0x65, 0x3c, 0x10, 0xe7, 0x72, 0x9c, 0xdb, 0x1e, 0x59, 0x88, 0x4b, + 0xd4, 0xef, 0xe6, 0x1f, 0xf7, 0x8b, 0x14, 0x0d, 0x1c, 0xe9, 0x78, 0xe0, 0xb8, 0x02, 0x39, 0xe1, + 0xea, 0xe4, 0x79, 0x1a, 0x28, 0xee, 0xd5, 0xd7, 0x65, 0xc1, 0x4c, 0xa0, 0xaa, 0x7f, 0x56, 0x60, + 0x7e, 0xb0, 0x5c, 0x63, 0x0a, 0x73, 0x0a, 0x8a, 0x3e, 0x63, 0x7e, 0xa8, 0x2c, 0x48, 0xce, 0xdc, + 0x43, 0xd8, 0xc8, 0xb0, 0x8d, 0x88, 0x48, 0x99, 0x1d, 0x5d, 0xca, 0x3f, 0xa5, 0xc4, 0xc9, 0xbb, + 0x4f, 0x3d, 0xfd, 0x29, 0x3b, 0xca, 0xc9, 0xbb, 0x05, 0x65, 0xda, 0xf3, 0x9e, 0xda, 0x8e, 0xe9, + 0x51, 0xcf, 0xdc, 0x1e, 0xa5, 0x36, 0x19, 0x27, 0xc0, 0x5d, 0xa7, 0xeb, 0xac, 0x3d, 0x52, 0x70, + 0x17, 0xa8, 0x58, 0x0b, 0x32, 0xad, 0x96, 0x6b, 0x7e, 0xc0, 0xf6, 0xdb, 0x5c, 0x9f, 0xd7, 0x7c, + 0xc7, 0xb4, 0xd6, 0xcc, 0x0f, 0x18, 0xd2, 0xd1, 0x5d, 0x41, 0x97, 0x1d, 0x85, 0x8e, 0xee, 0x22, + 0xdd, 0x02, 0x64, 0xdf, 0xef, 0x31, 0x67, 0x4f, 0xbe, 0x90, 0x38, 0x80, 0x47, 0x44, 0x55, 0x77, + 0xa1, 0xca, 0x55, 0x3c, 0xb0, 0x72, 0x71, 0x08, 0x45, 0xbf, 0x04, 0x15, 0x9d, 0xea, 0x4f, 0x19, + 0x5d, 0x6f, 0xb3, 0x78, 0x2d, 0x6b, 0x26, 0x80, 0xcb, 0x20, 0xf6, 0x3d, 0x05, 0xe6, 0xf8, 0xa7, + 0x07, 0xd7, 0x27, 0xfe, 0x05, 0xf2, 0x32, 0x85, 0x93, 0x86, 0x9b, 0x13, 0x19, 0x5c, 0xa2, 0x46, + 0x92, 0xea, 0xab, 0x91, 0x4c, 0xce, 0x68, 0xd5, 0xdf, 0x28, 0x70, 0x91, 0x73, 0x18, 0xcd, 0x5c, + 0x87, 0x39, 0x8f, 0x51, 0x72, 0xd9, 0xcf, 0x85, 0xeb, 0xf8, 0xa3, 0x02, 0xa7, 0x07, 0x0a, 0x35, + 0x96, 0x24, 0x9f, 0x6b, 0xbf, 0xf1, 0x87, 0x14, 0x9c, 0x8c, 0x8b, 0x18, 0x08, 0xb7, 0x0c, 0xd3, + 0x3a, 0xf5, 0xd8, 0xa6, 0xed, 0xec, 0xb5, 0x5c, 0x8f, 0x3a, 0xbe, 0x6d, 0xef, 0xbf, 0x15, 0x65, + 0x9f, 0x66, 0x8d, 0x93, 0x90, 0x77, 0x60, 0x2a, 0x58, 0x84, 0x59, 0xc6, 0x48, 0xbb, 0x59, 0xf2, + 0x29, 0x1a, 0x96, 0x41, 0x6e, 0x00, 0xe0, 0xc7, 0x45, 0x32, 0x9c, 0x1e, 0x81, 0xbc, 0x88, 0xf8, + 0x98, 0x0d, 0x5f, 0x83, 0x02, 0xb3, 0x0c, 0x41, 0x9a, 0x19, 0x81, 0x34, 0xcf, 0x2c, 0x03, 0x09, + 0x83, 0x6d, 0xc9, 0x1d, 0x62, 0x5b, 0x0a, 0xb1, 0x93, 0xf1, 0x63, 0x99, 0x0a, 0xf0, 0x2c, 0x20, + 0x9e, 0x83, 0x0c, 0x3d, 0xb7, 0x9f, 0x6d, 0x22, 0xf0, 0x55, 0x05, 0xb2, 0x18, 0x46, 0xf8, 0x79, + 0xea, 0xf0, 0x1f, 0x91, 0x5c, 0x05, 0xc7, 0x4d, 0x83, 0x3c, 0x3f, 0x28, 0x4a, 0x14, 0x26, 0x11, + 0x09, 0x08, 0x64, 0x82, 0x28, 0x90, 0xd5, 0xf0, 0xb7, 0x7a, 0x1d, 0x8a, 0xc8, 0x11, 0x5e, 0x48, + 0x5e, 0x06, 0xc1, 0x05, 0x1b, 0x58, 0x39, 0x41, 0x3c, 0xcd, 0xc7, 0xe0, 0x47, 0x78, 0x2a, 0xea, + 0xb0, 0xfb, 0x8a, 0x64, 0x55, 0xc8, 0xbb, 0x3d, 0xf4, 0xa7, 0xfe, 0x35, 0x55, 0x0e, 0xa3, 0xdd, + 0x9f, 0x74, 0xbc, 0xfb, 0x43, 0x64, 0x07, 0x4a, 0xb2, 0xd8, 0xdf, 0x64, 0xca, 0x26, 0x9a, 0x4c, + 0x89, 0xcb, 0x64, 0x6e, 0xac, 0xcb, 0xe4, 0x99, 0x58, 0xc7, 0x27, 0x8f, 0x7a, 0x8e, 0x40, 0xd4, + 0xff, 0x83, 0x4a, 0x54, 0x42, 0xd4, 0xd1, 0x4d, 0x28, 0x5b, 0xd1, 0x30, 0x25, 0x35, 0x15, 0xeb, + 0x49, 0x46, 0x89, 0xb4, 0x38, 0xfa, 0x38, 0xb1, 0xe9, 0x21, 0x54, 0x1f, 0x3a, 0x76, 0xc7, 0x96, + 0xcd, 0x84, 0x09, 0xd4, 0x1d, 0xde, 0x83, 0x63, 0x1a, 0xa3, 0xc6, 0xd1, 0x2b, 0xfe, 0x91, 0x03, + 0x96, 0x8e, 0x1e, 0x30, 0xf5, 0xbf, 0x61, 0xae, 0xef, 0x0b, 0x01, 0xd3, 0x37, 0x07, 0x94, 0xfb, + 0xcf, 0x46, 0x15, 0x37, 0x80, 0xb9, 0x68, 0xb1, 0xff, 0x5d, 0x48, 0x6b, 0x5d, 0x7d, 0x90, 0xa1, + 0x75, 0xe9, 0x5e, 0xdb, 0xa6, 0x41, 0x3d, 0x44, 0x0e, 0xb9, 0x2a, 0x9e, 0x7a, 0x5e, 0xb7, 0xc5, + 0xb9, 0x97, 0x96, 0xc6, 0xc7, 0x77, 0xd9, 0x9e, 0xfa, 0x26, 0xe4, 0xd7, 0x98, 0xeb, 0x72, 0xf1, + 0xb8, 0x39, 0xa2, 0x51, 0x88, 0x45, 0x0b, 0x9a, 0x3f, 0x0c, 0x9f, 0x1e, 0xa5, 0x22, 0x4f, 0x8f, + 0xd4, 0xdf, 0xa7, 0xa0, 0x1c, 0xe3, 0x72, 0x82, 0x0a, 0x0c, 0x8b, 0xfe, 0x99, 0x48, 0xd1, 0x3f, + 0xda, 0x61, 0xc9, 0xc6, 0x3a, 0x2c, 0xe4, 0x22, 0xcc, 0x74, 0x99, 0xd3, 0x31, 0x51, 0x94, 0x96, + 0xc3, 0xa8, 0x21, 0x8b, 0x31, 0xd3, 0x21, 0x98, 0xab, 0x95, 0x1b, 0x5e, 0x04, 0x71, 0xc7, 0x31, + 0x3d, 0xd1, 0x5d, 0xcd, 0x6a, 0x91, 0x05, 0xfe, 0x83, 0x83, 0x3f, 0xbb, 0x0a, 0x8d, 0xba, 0x03, + 0x95, 0x98, 0x66, 0x17, 0xf5, 0xad, 0x49, 0xf6, 0xa3, 0xa2, 0x6a, 0xcf, 0xc4, 0xec, 0xb6, 0x01, + 0xb3, 0xc9, 0x0f, 0xbb, 0xe4, 0x55, 0xc8, 0x50, 0x7d, 0xcb, 0xb7, 0xd4, 0xd3, 0x51, 0x4b, 0x4d, + 0x22, 0x6b, 0x88, 0xa9, 0x36, 0x60, 0x3a, 0x6e, 0xfa, 0xe4, 0x0a, 0xe4, 0x85, 0x01, 0xfb, 0xcb, + 0xcc, 0x0d, 0x5d, 0x46, 0xf3, 0x31, 0xd5, 0xf7, 0x12, 0xdc, 0xa0, 0xe7, 0x39, 0xcc, 0x4a, 0x43, + 0x0b, 0xdc, 0x1f, 0x67, 0x00, 0xc2, 0xcc, 0xa4, 0xef, 0x48, 0x71, 0xc3, 0x37, 0xbd, 0x76, 0xd0, + 0x7a, 0xc2, 0x41, 0xb2, 0x87, 0x91, 0xee, 0xef, 0x61, 0xd4, 0xa0, 0xe0, 0xa7, 0x18, 0xa8, 0xe0, + 0xb2, 0x16, 0x8c, 0xc9, 0x3c, 0x80, 0x6b, 0x3b, 0x5e, 0xcb, 0x76, 0x0c, 0xe6, 0xa0, 0x19, 0x97, + 0xb5, 0x22, 0x87, 0x3c, 0xe0, 0x80, 0x20, 0x3a, 0xe5, 0x70, 0x02, 0x7f, 0x8b, 0x30, 0x29, 0xef, + 0x20, 0x79, 0x84, 0x07, 0xd7, 0x8c, 0xbe, 0xd2, 0x5b, 0xa1, 0xaf, 0xf4, 0x86, 0xef, 0xb9, 0xa9, + 0xd5, 0xc2, 0xf7, 0x35, 0x68, 0x88, 0x05, 0xce, 0x8e, 0xd5, 0xc0, 0x67, 0xa3, 0xf3, 0x00, 0x3c, + 0x83, 0xa1, 0x3a, 0x06, 0x59, 0x10, 0xec, 0x30, 0xcb, 0x58, 0x44, 0x00, 0x9f, 0xc6, 0xfa, 0x98, + 0xa8, 0x4a, 0x97, 0xc4, 0x34, 0x87, 0x68, 0x1c, 0x10, 0x2b, 0x70, 0x4e, 0xed, 0x5f, 0xe0, 0x2c, + 0x8f, 0x75, 0x7c, 0xde, 0x8c, 0x65, 0x65, 0xd3, 0x07, 0x37, 0x1c, 0xc3, 0x9c, 0xec, 0x8d, 0x48, + 0x4e, 0x36, 0x73, 0x20, 0x61, 0x90, 0x91, 0xd5, 0xa0, 0x60, 0xf4, 0x1c, 0x0c, 0x4f, 0xd5, 0x8a, + 0xd8, 0x33, 0x7f, 0x4c, 0xce, 0xc3, 0x94, 0xe0, 0x46, 0xaa, 0x69, 0x56, 0x28, 0x19, 0x61, 0x42, + 0x51, 0xea, 0x3a, 0x4c, 0x87, 0x86, 0x84, 0x86, 0x7a, 0x1d, 0x4a, 0x61, 0x9a, 0xee, 0x1b, 0xeb, + 0xc9, 0xa8, 0xb1, 0x46, 0xd2, 0xfe, 0x28, 0xea, 0x50, 0x6b, 0xfd, 0x44, 0x81, 0xe3, 0xc9, 0xab, + 0xc2, 0x3f, 0x43, 0x09, 0xf5, 0xef, 0x29, 0x38, 0xfe, 0x18, 0xbd, 0x9f, 0xac, 0x73, 0xfa, 0x91, + 0x32, 0x5a, 0xc8, 0x57, 0xc6, 0x2a, 0xe4, 0xbf, 0x03, 0x53, 0x86, 0xe9, 0x76, 0xdb, 0x74, 0x4f, + 0x3c, 0x46, 0x49, 0x8d, 0x40, 0x5d, 0x92, 0x14, 0xf8, 0x5a, 0xe5, 0x46, 0xac, 0x9f, 0x38, 0x4a, + 0x7a, 0x19, 0xe9, 0x36, 0x5e, 0x8b, 0xf4, 0x30, 0x33, 0x23, 0x90, 0x06, 0x1d, 0xce, 0xeb, 0x50, + 0x68, 0xdb, 0x22, 0x47, 0x92, 0x97, 0xac, 0x03, 0x04, 0xf6, 0xb1, 0x39, 0x25, 0xb7, 0xf8, 0x0f, + 0x6c, 0x8b, 0x8d, 0x54, 0x72, 0x08, 0xb0, 0xd5, 0x8f, 0x53, 0x40, 0x84, 0xf6, 0x47, 0x2c, 0x61, + 0xf3, 0x80, 0x30, 0xb2, 0x52, 0x45, 0xe5, 0xf3, 0x66, 0xbf, 0xcb, 0x3c, 0x78, 0x37, 0x22, 0x0e, + 0xf5, 0xd0, 0x0a, 0x8d, 0x6f, 0x63, 0x76, 0xbc, 0x6d, 0xf4, 0x9b, 0xc6, 0xb9, 0xd1, 0x9a, 0xc6, + 0xea, 0xaf, 0x33, 0x90, 0xc1, 0xce, 0x65, 0x32, 0x8e, 0x44, 0xdf, 0x80, 0xa5, 0x12, 0x6f, 0xc0, + 0xce, 0x27, 0x2c, 0xd5, 0x0f, 0x27, 0x11, 0x5b, 0x3c, 0xe0, 0x95, 0xcf, 0xfe, 0x1d, 0xf3, 0xc0, + 0x9e, 0x64, 0xc7, 0x3c, 0xb0, 0x98, 0x5a, 0xc4, 0x62, 0x64, 0x73, 0xca, 0x1f, 0xc7, 0xfc, 0x7a, + 0x21, 0xe1, 0xd7, 0xcf, 0x42, 0x29, 0xf2, 0x64, 0x00, 0x03, 0x4a, 0x51, 0x83, 0xf0, 0xc5, 0x00, + 0x8f, 0x37, 0x42, 0x53, 0x7c, 0x5a, 0xbe, 0x02, 0x13, 0x80, 0xa6, 0x41, 0x2e, 0x40, 0x79, 0x93, + 0x76, 0x98, 0x8e, 0xd1, 0x28, 0x7c, 0x0a, 0x36, 0x15, 0x02, 0x45, 0xee, 0xee, 0x7a, 0x8c, 0xe2, + 0x3f, 0x20, 0x4d, 0xc9, 0x4b, 0x13, 0x1f, 0x37, 0xb1, 0x33, 0x60, 0x5b, 0x6d, 0xd3, 0x12, 0x01, + 0xa5, 0xa0, 0xc9, 0x51, 0xa2, 0x61, 0x3f, 0x9d, 0x6c, 0xd8, 0x27, 0x82, 0xd1, 0xcc, 0x51, 0x72, + 0xb9, 0xca, 0x58, 0xdd, 0xb6, 0x6b, 0x50, 0x0d, 0xd5, 0x25, 0xde, 0xe4, 0xb6, 0xb8, 0xb0, 0x5c, + 0xb6, 0x59, 0x94, 0xed, 0xc4, 0x46, 0xff, 0x93, 0xdd, 0xa6, 0xa1, 0x7e, 0x3b, 0x05, 0xe5, 0xe0, + 0x4e, 0xef, 0x37, 0xdf, 0x31, 0x6d, 0x8b, 0xb5, 0xf5, 0x2f, 0x24, 0xfb, 0xe2, 0x01, 0x7e, 0x38, + 0xd2, 0xa0, 0x17, 0x14, 0x07, 0x86, 0x36, 0xdf, 0x3f, 0x52, 0xa0, 0x18, 0x50, 0x90, 0x8b, 0x90, + 0xc5, 0xcf, 0x48, 0xbf, 0x3b, 0xe0, 0xf1, 0x80, 0x98, 0xff, 0x6c, 0xfa, 0xef, 0x97, 0x21, 0x2b, + 0x5e, 0x12, 0xbc, 0x08, 0xd9, 0xe8, 0x4b, 0x84, 0xfe, 0x47, 0x02, 0x62, 0x5a, 0xfd, 0x72, 0x0a, + 0xe6, 0x31, 0xab, 0x3f, 0xe2, 0xfb, 0x32, 0xf2, 0x9f, 0x90, 0x13, 0xb1, 0x52, 0xca, 0x7b, 0x2b, + 0xfa, 0xc5, 0x7d, 0xbf, 0xd0, 0x1f, 0x48, 0x11, 0x5d, 0x93, 0xeb, 0xd5, 0x36, 0xe0, 0xe4, 0x60, + 0x8c, 0xb0, 0x2b, 0xad, 0x0c, 0xeb, 0x4a, 0xa7, 0x12, 0x5d, 0xe9, 0xe8, 0xf9, 0x4d, 0xc7, 0xcf, + 0xaf, 0xfa, 0xc5, 0x14, 0x10, 0x5c, 0xf7, 0xa8, 0x97, 0xb7, 0xe0, 0x8e, 0x96, 0x1e, 0x72, 0x47, + 0xcb, 0xc4, 0x6f, 0x1d, 0x2b, 0xfd, 0x77, 0xb4, 0x11, 0x2a, 0xea, 0xc9, 0x0b, 0xdc, 0xed, 0x01, + 0x17, 0xb8, 0x11, 0x8a, 0x68, 0xc9, 0xdb, 0x9d, 0xfa, 0x04, 0x6a, 0xfd, 0x5a, 0x70, 0xc3, 0xcc, + 0x23, 0x71, 0xcb, 0x38, 0xd3, 0xb7, 0xcf, 0x43, 0x2e, 0x2d, 0x5f, 0x48, 0xc1, 0x69, 0x9c, 0x4f, + 0x66, 0x6a, 0x63, 0xd5, 0x74, 0x9f, 0x24, 0xcc, 0xec, 0x66, 0xdf, 0xe7, 0x87, 0x2c, 0x5f, 0x4f, + 0xc2, 0xe3, 0x46, 0xc6, 0xe0, 0xc4, 0x40, 0x84, 0xc9, 0xda, 0xd8, 0xd2, 0xdb, 0x30, 0xa7, 0xdb, + 0x9d, 0xfa, 0x53, 0xe6, 0xd8, 0xa6, 0xde, 0xa6, 0xeb, 0x6e, 0x84, 0xfd, 0xa5, 0xe2, 0x2a, 0xfe, + 0x5e, 0xec, 0x9a, 0x0f, 0x95, 0xff, 0x4a, 0xd3, 0xae, 0xf9, 0x83, 0x54, 0x66, 0xf5, 0xee, 0xc3, + 0xa5, 0x1f, 0xa5, 0x72, 0x62, 0x66, 0x3d, 0x87, 0x3b, 0x78, 0xe5, 0x1f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x7f, 0x43, 0xaa, 0xd0, 0x7b, 0x3b, 0x00, 0x00, } diff --git a/vendor/github.com/heroiclabs/nakama-common/api/api.proto b/vendor/github.com/heroiclabs/nakama-common/api/api.proto index 4b3f7d8e6..60aba63d4 100644 --- a/vendor/github.com/heroiclabs/nakama-common/api/api.proto +++ b/vendor/github.com/heroiclabs/nakama-common/api/api.proto @@ -82,6 +82,14 @@ message AccountFacebook { map vars = 2; } +// Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink. +message AccountFacebookInstantGame { + // The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration) + string signed_player_info = 1; + // Extra information that will be bundled in the session token. + map vars = 2; +} + // Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. message AccountGameCenter { // https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign @@ -176,6 +184,16 @@ message AuthenticateFacebookRequest { google.protobuf.BoolValue sync = 4; } +// Authenticate against the server with Facebook Instant Game token. +message AuthenticateFacebookInstantGameRequest { + // The Facebook Instant Game account details. + AccountFacebookInstantGame account = 1; + // Register the account if the user does not already exist. + google.protobuf.BoolValue create = 2; + // Set the username on the account at register. Must be unique. + string username = 3; +} + // Authenticate against the server with Apple's Game Center. message AuthenticateGameCenterRequest { // The Game Center account details. @@ -940,6 +958,8 @@ message User { google.protobuf.Timestamp create_time = 15; // The UNIX time when the user was last updated. google.protobuf.Timestamp update_time = 16; + // The Facebook Instant Game id in the user's account. + string facebook_instant_game_id = 17; } // A list of groups belonging to a user, along with the user's role in each group. diff --git a/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go b/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go index 2ea7c462d..0c90e6751 100644 --- a/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go +++ b/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go @@ -2732,7 +2732,9 @@ func init() { proto.RegisterType((*UserPresence)(nil), "nakama.realtime.UserPresence") } -func init() { proto.RegisterFile("rtapi/realtime.proto", fileDescriptor_0163624496220f8c) } +func init() { + proto.RegisterFile("rtapi/realtime.proto", fileDescriptor_0163624496220f8c) +} var fileDescriptor_0163624496220f8c = []byte{ // 2320 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go b/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go index 46fb2642c..fa0ca153d 100644 --- a/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go +++ b/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go @@ -19,7 +19,7 @@ The game server includes support to develop native code in Go with the plugin pa It's used to enable compiled shared objects to be loaded by the game server at startup. The Go runtime support can be used to develop authoritative multiplayer match handlers, -RPC functions, hook into messages processed by the server, and extend the server withany other custom logic. +RPC functions, hook into messages processed by the server, and extend the server with any other custom logic. It offers the same capabilities as the Lua runtime support but has the advantage that any package from the Go ecosystem can be used. Here's the smallest example of a Go module written with the server runtime. @@ -345,6 +345,12 @@ type Initializer interface { // RegisterAfterAuthenticateFacebook can be used to perform after successful authentication checks. RegisterAfterAuthenticateFacebook(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, out *api.Session, in *api.AuthenticateFacebookRequest) error) error + // RegisterBeforeAuthenticateFacebookInstantGame can be used to perform pre-authentication checks. + RegisterBeforeAuthenticateFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AuthenticateFacebookInstantGameRequest) (*api.AuthenticateFacebookInstantGameRequest, error)) error + + // RegisterAfterAuthenticateFacebookInstantGame can be used to perform after successful authentication checks. + RegisterAfterAuthenticateFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, out *api.Session, in *api.AuthenticateFacebookInstantGameRequest) error) error + // RegisterBeforeAuthenticateGameCenter can be used to perform pre-authentication checks. RegisterBeforeAuthenticateGameCenter(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AuthenticateGameCenterRequest) (*api.AuthenticateGameCenterRequest, error)) error @@ -519,6 +525,12 @@ type Initializer interface { // RegisterAfterLinkFacebook can be used to perform additional logic after linking Facebook to an account. RegisterAfterLinkFacebook(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.LinkFacebookRequest) error) error + // RegisterBeforeLinkFacebookInstantGame can be used to perform additional logic before linking Facebook Instant Game profile to an account. + RegisterBeforeLinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) (*api.AccountFacebookInstantGame, error)) error + + // RegisterAfterLinkFacebookInstantGame can be used to perform additional logic after linking Facebook Instant Game profile to an account. + RegisterAfterLinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) error) error + // RegisterBeforeLinkGameCenter can be used to perform additional logic before linking GameCenter to an account. RegisterBeforeLinkGameCenter(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountGameCenter) (*api.AccountGameCenter, error)) error @@ -633,6 +645,12 @@ type Initializer interface { // RegisterAfterUnlinkFacebook can be used to perform additional logic after Facebook is unlinked from an account. RegisterAfterUnlinkFacebook(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebook) error) error + // RegisterBeforeUnlinkFacebookInstantGame can be used to perform additional logic before Facebook Instant Game profile is unlinked from an account. + RegisterBeforeUnlinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) (*api.AccountFacebookInstantGame, error)) error + + // RegisterAfterUnlinkFacebookInstantGame can be used to perform additional logic after Facebook Instant Game profile is unlinked from an account. + RegisterAfterUnlinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) error) error + // RegisterBeforeUnlinkGameCenter can be used to perform additional logic before GameCenter is unlinked from an account. RegisterBeforeUnlinkGameCenter(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountGameCenter) (*api.AccountGameCenter, error)) error @@ -773,6 +791,7 @@ type NakamaModule interface { AuthenticateDevice(ctx context.Context, id, username string, create bool) (string, string, bool, error) AuthenticateEmail(ctx context.Context, email, password, username string, create bool) (string, string, bool, error) AuthenticateFacebook(ctx context.Context, token string, importFriends bool, username string, create bool) (string, string, bool, error) + AuthenticateFacebookInstantGame(ctx context.Context, appSecret string, signedPlayerInfo string, username string, create bool) (string, string, bool, error) AuthenticateGameCenter(ctx context.Context, playerID, bundleID string, timestamp int64, salt, signature, publicKeyUrl, username string, create bool) (string, string, bool, error) AuthenticateGoogle(ctx context.Context, token, username string, create bool) (string, string, bool, error) AuthenticateSteam(ctx context.Context, token, username string, create bool) (string, string, bool, error) diff --git a/vendor/modules.txt b/vendor/modules.txt index ba14c9dc7..d5681970b 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -119,7 +119,7 @@ github.com/gobuffalo/packr github.com/gofrs/uuid # github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 github.com/golang/groupcache/lru -# github.com/golang/protobuf v1.3.3 +# github.com/golang/protobuf v1.3.4 github.com/golang/protobuf/descriptor github.com/golang/protobuf/jsonpb github.com/golang/protobuf/proto @@ -153,7 +153,7 @@ github.com/grpc-ecosystem/grpc-gateway/internal github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options github.com/grpc-ecosystem/grpc-gateway/runtime github.com/grpc-ecosystem/grpc-gateway/utilities -# github.com/heroiclabs/nakama-common v1.3.0 +# github.com/heroiclabs/nakama-common v1.3.1 github.com/heroiclabs/nakama-common/api github.com/heroiclabs/nakama-common/rtapi github.com/heroiclabs/nakama-common/runtime @@ -251,7 +251,7 @@ go.uber.org/zap/zapcore golang.org/x/crypto/bcrypt golang.org/x/crypto/blowfish golang.org/x/crypto/pbkdf2 -# golang.org/x/net v0.0.0-20200226051749-491c5fce7268 +# golang.org/x/net v0.0.0-20200226121028-0de0cce0169b golang.org/x/net/context golang.org/x/net/context/ctxhttp golang.org/x/net/http/httpguts @@ -308,7 +308,7 @@ google.golang.org/appengine/internal/socket google.golang.org/appengine/internal/urlfetch google.golang.org/appengine/socket google.golang.org/appengine/urlfetch -# google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688 +# google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations google.golang.org/genproto/googleapis/api/distribution -- GitLab