diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d48c759 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +.vscode \ No newline at end of file diff --git a/conf/k8stest/dubbogo.yaml b/conf/k8stest/dubbogo.yaml index 51ea782..96e9142 100644 --- a/conf/k8stest/dubbogo.yaml +++ b/conf/k8stest/dubbogo.yaml @@ -24,7 +24,7 @@ dubbo: tps.limit.strategy: fixedWindow tps.limit.rejected.handler: DefaultValueHandler tps.limit.interval: 1000 # 间隔时间 - tps.limit.rate: 30 # 间隔时间内次数 + tps.limit.rate: 300 # 间隔时间内次数 warmup: 100 #预热时间 logger: zap-config: diff --git a/conf/prod/dubbogo.yaml b/conf/prod/dubbogo.yaml index a1e73c7..7c63b1e 100644 --- a/conf/prod/dubbogo.yaml +++ b/conf/prod/dubbogo.yaml @@ -24,7 +24,7 @@ dubbo: tps.limit.strategy: fixedWindow tps.limit.rejected.handler: DefaultValueHandler tps.limit.interval: 1000 # 间隔时间 - tps.limit.rate: 30 # 间隔时间内次数 + tps.limit.rate: 300 # 间隔时间内次数 warmup: 100 #预热时间 logger: zap-config: diff --git a/go.mod b/go.mod index a73829f..c4c9760 100644 --- a/go.mod +++ b/go.mod @@ -4,13 +4,13 @@ go 1.20 require ( dubbo.apache.org/dubbo-go/v3 v3.0.5 - github.com/alibabacloud-go/tea v1.2.1 - github.com/antchain-openapi-sdk-go/bccr v1.17.65 + github.com/antchain-openapi-sdk-go/bccr v1.19.22 github.com/bwmarrin/snowflake v0.3.0 github.com/dubbogo/grpc-go v1.42.10 github.com/dubbogo/triple v1.2.2-rc2 github.com/gin-gonic/gin v1.9.1 github.com/go-redis/redis v6.15.9+incompatible + github.com/gocolly/colly/v2 v2.1.0 github.com/golang/protobuf v1.5.3 github.com/google/wire v0.5.0 github.com/jinzhu/copier v0.3.5 @@ -21,6 +21,7 @@ require ( github.com/streadway/amqp v1.1.0 github.com/uber/jaeger-client-go v2.30.0+incompatible go.uber.org/zap v1.26.0 + google.golang.org/grpc v1.58.2 google.golang.org/protobuf v1.31.0 gorm.io/driver/mysql v1.5.2 gorm.io/gorm v1.25.5 @@ -37,11 +38,12 @@ require ( github.com/Workiva/go-datastructures v1.0.52 // indirect github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 // indirect github.com/alibaba/sentinel-golang v1.0.4 // indirect - github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 // indirect + github.com/alibabacloud-go/debug v1.0.0 // indirect + github.com/alibabacloud-go/tea v1.2.2 // indirect github.com/alibabacloud-go/tea-oss-utils v1.1.0 // indirect github.com/alibabacloud-go/tea-rpc-utils v1.1.2 // indirect github.com/alibabacloud-go/tea-utils v1.3.8 // indirect - github.com/alibabacloud-go/tea-utils/v2 v2.0.4 // indirect + github.com/alibabacloud-go/tea-utils/v2 v2.0.6 // indirect github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 // indirect github.com/andybalholm/cascadia v1.2.0 // indirect github.com/antchain-openapi-sdk-go/antchain-util v0.0.7 // indirect @@ -86,7 +88,6 @@ require ( github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/goccy/go-json v0.10.2 // indirect - github.com/gocolly/colly/v2 v2.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect @@ -160,19 +161,18 @@ require ( go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect - golang.org/x/net v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/oauth2 v0.12.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/grpc v1.58.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index aa8d348..651ebc4 100644 --- a/go.sum +++ b/go.sum @@ -75,21 +75,22 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alibaba/sentinel-golang v1.0.4 h1:i0wtMvNVdy7vM4DdzYrlC4r/Mpk1OKUUBurKKkWhEo8= github.com/alibaba/sentinel-golang v1.0.4/go.mod h1:Lag5rIYyJiPOylK8Kku2P+a23gdKMMqzQS7wTnjWEpk= -github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 h1:NqugFkGxx1TXSh/pBcU00Y6bljgDPaFdh5MUSeJ7e50= github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY= +github.com/alibabacloud-go/debug v1.0.0 h1:3eIEQWfay1fB24PQIEzXAswlVJtdQok8f3EVN5VrBnA= +github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc= github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= github.com/alibabacloud-go/tea v1.1.13/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= -github.com/alibabacloud-go/tea v1.2.1 h1:rFF1LnrAdhaiPmKwH5xwYOKlMh66CqRwPUTzIK74ask= -github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2wSyEUo4OEmnA= +github.com/alibabacloud-go/tea v1.2.2 h1:aTsR6Rl3ANWPfqeQugPglfurloyBJY85eFy7Gc1+8oU= +github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZLAQdpmpXMgwk= github.com/alibabacloud-go/tea-oss-utils v1.1.0 h1:y65crjjcZ2Pbb6UZtC2deuIZHDVTS3IaDWE7M9nVLRc= github.com/alibabacloud-go/tea-oss-utils v1.1.0/go.mod h1:PFCF12e9yEKyBUIn7X1IrF/pNjvxgkHy0CgxX4+xRuY= github.com/alibabacloud-go/tea-rpc-utils v1.1.2 h1:ZTfFREnP2q9D49T2J/1jYYOndepGdrUOgm/JR8/bIQ0= github.com/alibabacloud-go/tea-rpc-utils v1.1.2/go.mod h1:V5HdNi6Xdn0JMpgVhQ19vsFAS51tydr7BqcJtuXH1Yw= github.com/alibabacloud-go/tea-utils v1.3.8 h1:L+10Gwm25Ma2dEf8DiPODPSj887ZIiLlNNSGak6TKJM= github.com/alibabacloud-go/tea-utils v1.3.8/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE= -github.com/alibabacloud-go/tea-utils/v2 v2.0.4 h1:SoFgjJuO7pze88j9RBJNbKb7AgTS52O+J5ITxc00lCs= -github.com/alibabacloud-go/tea-utils/v2 v2.0.4/go.mod h1:sj1PbjPodAVTqGTA3olprfeeqqmwD0A5OQz94o9EuXQ= +github.com/alibabacloud-go/tea-utils/v2 v2.0.6 h1:ZkmUlhlQbaDC+Eba/GARMPy6hKdCLiSke5RsN5LcyQ0= +github.com/alibabacloud-go/tea-utils/v2 v2.0.6/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I= github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 h1:PpfENOj/vPfhhy9N2OFRjpue0hjM5XqAp2thFmkXXIk= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU= @@ -98,8 +99,9 @@ github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5 github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= github.com/antchain-openapi-sdk-go/antchain-util v0.0.7 h1:aa6GLaNNE3HryG71Kxjza4Tu9EZQcZv0G/v+q3By4gw= github.com/antchain-openapi-sdk-go/antchain-util v0.0.7/go.mod h1:pi99Uu97pcsfyUNaaMcABSQS3HjuY+066s/3iDgVJSk= -github.com/antchain-openapi-sdk-go/bccr v1.17.65 h1:fHhZKkdc+VXIL1zLiOJUwj+H0CFC0W5yxTWZa/XYUhE= -github.com/antchain-openapi-sdk-go/bccr v1.17.65/go.mod h1:DDiROzBPAnhmbVfV1aXyxftMutYeLpdZKAfCZfv/P/I= +github.com/antchain-openapi-sdk-go/bccr v1.19.2 h1:38TM2NSpvPPXcJM0j3vvNb14i2fpGqfyslAdmsPHM8k= +github.com/antchain-openapi-sdk-go/bccr v1.19.2/go.mod h1:ALgEJuJDenNJdGrcBMJ1zoyla8KvimZVmtofHAf2ouY= +github.com/antchain-openapi-sdk-go/bccr v1.19.22/go.mod h1:ALgEJuJDenNJdGrcBMJ1zoyla8KvimZVmtofHAf2ouY= github.com/antchfx/htmlquery v1.2.3 h1:sP3NFDneHx2stfNXCKbhHFo8XgNjCACnU/4AO5gWz6M= github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0= github.com/antchfx/xmlquery v1.2.4 h1:T/SH1bYdzdjTMoz2RgsfVKbM5uWh3gjDYYepFqQmFv4= @@ -344,7 +346,6 @@ github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/gocolly/colly v1.2.0 h1:qRz9YAn8FIH0qzgNUw+HT9UN7wm1oF9OBAilwEWpyrI= github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA= github.com/gocolly/colly/v2 v2.1.0 h1:k0DuZkDoCsx51bKpRJNEmcxcp+W5N8ziuwGaSDuFoGs= github.com/gocolly/colly/v2 v2.1.0/go.mod h1:I2MuhsLjQ+Ex+IzK3afNS8/1qP3AedHOusRPcRdC5o0= @@ -1025,9 +1026,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1130,11 +1130,9 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1253,14 +1251,13 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1274,9 +1271,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/internal/controller/dci.go b/internal/controller/dci.go index fc2463e..a1574ff 100644 --- a/internal/controller/dci.go +++ b/internal/controller/dci.go @@ -104,3 +104,15 @@ func (d *DciProvider) CloseDciRegistration(_ context.Context, req *dci.CloseDciR res, err = d.dciReg.CloseDciRegistration(req) return } + +func (d *DciProvider) SubmitDciFeedback(_ context.Context, req *dci.SubmitDciFeedbackRequest) (res *dci.SubmitDciFeedbackResponse, err error) { + res = new(dci.SubmitDciFeedbackResponse) + res, err = d.dciWork.SubmitDciFeedback(req) + return +} + +func (d *DciProvider) QueryDciFeedback(_ context.Context, req *dci.QueryDciFeedbackRequest) (res *dci.QueryDciFeedbackResponse, err error) { + res = new(dci.QueryDciFeedbackResponse) + res, err = d.dciWork.QueryDciFeedback(req) + return +} diff --git a/internal/logic/dci_work.go b/internal/logic/dci_work.go index 8f6ddea..9861079 100644 --- a/internal/logic/dci_work.go +++ b/internal/logic/dci_work.go @@ -13,6 +13,7 @@ import ( type IDciWork interface { CreateDciPreregistration(req *dci.CreateDciPreregistrationRequest) (res *dci.CreateDciPreregistrationResponse, err error) QueryDciPreregistration(req *dci.QueryDciPreregistrationRequest) (res *dci.QueryDciPreregistrationResponse, err error) + SubmitDciFeedback(req *dci.SubmitDciFeedbackRequest) (res *dci.SubmitDciFeedbackResponse, err error) } type DciWork struct { @@ -65,3 +66,51 @@ func (w *DciWork) QueryDciPreregistration(req *dci.QueryDciPreregistrationReques return } + +// SubmitDciFeedback 作品 DCI 申诉 +func (w *DciWork) SubmitDciFeedback(req *dci.SubmitDciFeedbackRequest) (res *dci.SubmitDciFeedbackResponse, err error) { + errCommon.NoReturnInfo(req, "作品 DCI 申诉 参数信息: ") + + res = new(dci.SubmitDciFeedbackResponse) + + submitDciFeedbackRequest := new(bccrClient.SubmitDciFeedbackRequest) + _ = copier.CopyWithOption(&submitDciFeedbackRequest, req, copier.Option{DeepCopy: false}) + + clientToken, err := createToken(time.Now().UnixMilli(), req.ServiceId, req.ContactPhoneNumber, req.ContactName, req.FeedbackType, req.Message, app.ModuleClients.SfNode.Generate().Base64()) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建clientToken 失败: ") + } + submitDciFeedbackRequest.SetClientToken(clientToken) + + submitDciFeedbackResponse, err := app.ModuleClients.BccrClient.SubmitDciFeedback(submitDciFeedbackRequest) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrSubmitDciFeedback, "作品 DCI 申诉 失败: ") + } + + errCommon.NoReturnInfo(submitDciFeedbackResponse, "作品 DCI 申诉 成功: ") + + _ = copier.CopyWithOption(&res, submitDciFeedbackResponse, copier.Option{DeepCopy: false}) + + return +} + +// QueryDciFeedback 作品 DCI 申诉 查询 +func (w *DciWork) QueryDciFeedback(req *dci.QueryDciFeedbackRequest) (res *dci.QueryDciFeedbackResponse, err error) { + errCommon.NoReturnInfo(req, "作品 DCI 申诉 参数信息: ") + + res = new(dci.QueryDciFeedbackResponse) + + submitDciFeedbackRequest := new(bccrClient.QueryDciFeedbackRequest) + _ = copier.CopyWithOption(&submitDciFeedbackRequest, req, copier.Option{DeepCopy: false}) + + queryDciFeedbackResponseResponse, err := app.ModuleClients.BccrClient.QueryDciFeedback(submitDciFeedbackRequest) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrSubmitDciFeedback, "作品 DCI 申诉 查询 失败: ") + } + + errCommon.NoReturnInfo(queryDciFeedbackResponseResponse, "作品 DCI 申诉 查询 成功: ") + + _ = copier.CopyWithOption(&res, queryDciFeedbackResponseResponse, copier.Option{DeepCopy: false}) + + return +} diff --git a/pb/dci.proto b/pb/dci.proto index d32ee32..ddb96b6 100644 --- a/pb/dci.proto +++ b/pb/dci.proto @@ -18,6 +18,8 @@ service Dci { // dci work rpc CreateDciPreregistration(CreateDciPreregistrationRequest) returns (CreateDciPreregistrationResponse); rpc QueryDciPreregistration(QueryDciPreregistrationRequest) returns (QueryDciPreregistrationResponse); + rpc SubmitDciFeedback(SubmitDciFeedbackRequest) returns (SubmitDciFeedbackResponse); + rpc QueryDciFeedback(QueryDciFeedbackRequest) returns (QueryDciFeedbackResponse); // rpc RetryDciPreregistration(RetryDciPreregistrationRequest) returns (); // 数登 @@ -147,6 +149,7 @@ message CreateDciPreregistrationResponse { string resultCode = 2 [json_name = "resultCode"]; string resultMsg = 3 [json_name = "resultMsg"]; string reqMsgId = 4 [json_name = "reqMsgId"]; + string errorMsg = 5 [json_name = "errorMsg"]; } // Dci work 查询申领信息 @@ -223,6 +226,7 @@ message CreateDciRegistrationResponse { string resultCode = 2 [json_name = "resultCode"]; string resultMsg = 3 [json_name = "resultMsg"]; string reqMsgId = 4 [json_name = "reqMsgId"]; + string errorMsg = 5 [json_name = "errorMsg"]; } // 数登 查询申请 @@ -261,6 +265,7 @@ message GetDciPayUrlResponse { string resultCode = 14 [json_name = "resultCode"]; string resultMsg = 15 [json_name = "resultMsg"]; string reqMsgId = 16 [json_name = "reqMsgId"]; + string errorMsg = 17 [json_name = "errorMsg"]; } // 数登 数登支付查询 @@ -304,6 +309,7 @@ message RetryDciRegistrationResponse { string resultCode = 1 [json_name = "resultCode"]; string resultMsg = 2 [json_name = "resultMsg"]; string reqMsgId = 3 [json_name = "reqMsgId"]; + string errorMsg = 4 [json_name = "errorMsg"]; } // 数登 停止申请 @@ -319,4 +325,34 @@ message CloseDciRegistrationResponse { string resultCode = 1 [json_name = "resultCode"]; string resultMsg = 2 [json_name = "resultMsg"]; string reqMsgId = 3 [json_name = "reqMsgId"]; +} + +message SubmitDciFeedbackRequest { + string serviceId = 1 [json_name = "serviceId",(validator.field) = {string_not_empty: true,human_error:"业务ID"}]; + string contactName = 2 [json_name = "contactName",(validator.field) = {string_not_empty: true,human_error:"联系人"}]; + string contactPhoneNumber = 3 [json_name = "contactPhoneNumber",(validator.field) = {string_not_empty: true,human_error:"联系电话"}]; + string message = 4 [json_name = "message",(validator.field) = {string_not_empty: true,human_error:"申诉原因"}]; + string clientToken = 5 [json_name = "clientToken"]; + string feedbackType = 6 [json_name = "feedbackType",(validator.field) = {string_not_empty: true,human_error:"反馈类型"}]; +} + +message SubmitDciFeedbackResponse { + string resultCode = 1 [json_name = "resultCode"]; + string resultMsg = 2 [json_name = "resultMsg"]; + string reqMsgId = 3 [json_name = "reqMsgId"]; + string id = 4 [json_name = "id"]; +} + +message QueryDciFeedbackRequest { + string id = 1 [json_name = "id",(validator.field) = {string_not_empty: true,human_error:"申诉ID"}]; +} + +message QueryDciFeedbackResponse { + string resultCode = 1 [json_name = "resultCode"]; + string resultMsg = 2 [json_name = "resultMsg"]; + string reqMsgId = 3 [json_name = "reqMsgId"]; + string id = 4 [json_name = "id"]; + string feedbackStatus = 5 [json_name = "feedbackStatus"]; + string DciContentId = 6 [json_name = "DciContentId"]; + string msg = 7 [json_name = "msg"]; } \ No newline at end of file diff --git a/pb/dci/dci.pb.go b/pb/dci/dci.pb.go index 7f809c2..47702e2 100644 --- a/pb/dci/dci.pb.go +++ b/pb/dci/dci.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.21.4 +// protoc v5.29.0--rc3 // source: pb/dci.proto package dci @@ -1072,6 +1072,7 @@ type CreateDciPreregistrationResponse struct { ResultCode string `protobuf:"bytes,2,opt,name=resultCode,proto3" json:"resultCode"` ResultMsg string `protobuf:"bytes,3,opt,name=resultMsg,proto3" json:"resultMsg"` ReqMsgId string `protobuf:"bytes,4,opt,name=reqMsgId,proto3" json:"reqMsgId"` + ErrorMsg string `protobuf:"bytes,5,opt,name=errorMsg,proto3" json:"errorMsg"` } func (x *CreateDciPreregistrationResponse) Reset() { @@ -1134,6 +1135,13 @@ func (x *CreateDciPreregistrationResponse) GetReqMsgId() string { return "" } +func (x *CreateDciPreregistrationResponse) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg + } + return "" +} + // Dci work 查询申领信息 type QueryDciPreregistrationRequest struct { state protoimpl.MessageState @@ -1747,6 +1755,7 @@ type CreateDciRegistrationResponse struct { ResultCode string `protobuf:"bytes,2,opt,name=resultCode,proto3" json:"resultCode"` ResultMsg string `protobuf:"bytes,3,opt,name=resultMsg,proto3" json:"resultMsg"` ReqMsgId string `protobuf:"bytes,4,opt,name=reqMsgId,proto3" json:"reqMsgId"` + ErrorMsg string `protobuf:"bytes,5,opt,name=errorMsg,proto3" json:"errorMsg"` } func (x *CreateDciRegistrationResponse) Reset() { @@ -1809,6 +1818,13 @@ func (x *CreateDciRegistrationResponse) GetReqMsgId() string { return "" } +func (x *CreateDciRegistrationResponse) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg + } + return "" +} + // 数登 查询申请 type QueryDciRegistrationRequest struct { state protoimpl.MessageState @@ -2090,6 +2106,7 @@ type GetDciPayUrlResponse struct { ResultCode string `protobuf:"bytes,14,opt,name=resultCode,proto3" json:"resultCode"` ResultMsg string `protobuf:"bytes,15,opt,name=resultMsg,proto3" json:"resultMsg"` ReqMsgId string `protobuf:"bytes,16,opt,name=reqMsgId,proto3" json:"reqMsgId"` + ErrorMsg string `protobuf:"bytes,17,opt,name=errorMsg,proto3" json:"errorMsg"` } func (x *GetDciPayUrlResponse) Reset() { @@ -2159,6 +2176,13 @@ func (x *GetDciPayUrlResponse) GetReqMsgId() string { return "" } +func (x *GetDciPayUrlResponse) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg + } + return "" +} + // 数登 数登支付查询 type QueryDciPayRequest struct { state protoimpl.MessageState @@ -2517,6 +2541,7 @@ type RetryDciRegistrationResponse struct { ResultCode string `protobuf:"bytes,1,opt,name=resultCode,proto3" json:"resultCode"` ResultMsg string `protobuf:"bytes,2,opt,name=resultMsg,proto3" json:"resultMsg"` ReqMsgId string `protobuf:"bytes,3,opt,name=reqMsgId,proto3" json:"reqMsgId"` + ErrorMsg string `protobuf:"bytes,4,opt,name=errorMsg,proto3" json:"errorMsg"` } func (x *RetryDciRegistrationResponse) Reset() { @@ -2572,6 +2597,13 @@ func (x *RetryDciRegistrationResponse) GetReqMsgId() string { return "" } +func (x *RetryDciRegistrationResponse) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg + } + return "" +} + // 数登 停止申请 type CloseDciRegistrationRequest struct { state protoimpl.MessageState @@ -2707,6 +2739,306 @@ func (x *CloseDciRegistrationResponse) GetReqMsgId() string { return "" } +type SubmitDciFeedbackRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServiceId string `protobuf:"bytes,1,opt,name=serviceId,proto3" json:"serviceId"` + ContactName string `protobuf:"bytes,2,opt,name=contactName,proto3" json:"contactName"` + ContactPhoneNumber string `protobuf:"bytes,3,opt,name=contactPhoneNumber,proto3" json:"contactPhoneNumber"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` + ClientToken string `protobuf:"bytes,5,opt,name=clientToken,proto3" json:"clientToken"` + FeedbackType string `protobuf:"bytes,6,opt,name=feedbackType,proto3" json:"feedbackType"` +} + +func (x *SubmitDciFeedbackRequest) Reset() { + *x = SubmitDciFeedbackRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_dci_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitDciFeedbackRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitDciFeedbackRequest) ProtoMessage() {} + +func (x *SubmitDciFeedbackRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_dci_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubmitDciFeedbackRequest.ProtoReflect.Descriptor instead. +func (*SubmitDciFeedbackRequest) Descriptor() ([]byte, []int) { + return file_pb_dci_proto_rawDescGZIP(), []int{32} +} + +func (x *SubmitDciFeedbackRequest) GetServiceId() string { + if x != nil { + return x.ServiceId + } + return "" +} + +func (x *SubmitDciFeedbackRequest) GetContactName() string { + if x != nil { + return x.ContactName + } + return "" +} + +func (x *SubmitDciFeedbackRequest) GetContactPhoneNumber() string { + if x != nil { + return x.ContactPhoneNumber + } + return "" +} + +func (x *SubmitDciFeedbackRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *SubmitDciFeedbackRequest) GetClientToken() string { + if x != nil { + return x.ClientToken + } + return "" +} + +func (x *SubmitDciFeedbackRequest) GetFeedbackType() string { + if x != nil { + return x.FeedbackType + } + return "" +} + +type SubmitDciFeedbackResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode string `protobuf:"bytes,1,opt,name=resultCode,proto3" json:"resultCode"` + ResultMsg string `protobuf:"bytes,2,opt,name=resultMsg,proto3" json:"resultMsg"` + ReqMsgId string `protobuf:"bytes,3,opt,name=reqMsgId,proto3" json:"reqMsgId"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` +} + +func (x *SubmitDciFeedbackResponse) Reset() { + *x = SubmitDciFeedbackResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_dci_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitDciFeedbackResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitDciFeedbackResponse) ProtoMessage() {} + +func (x *SubmitDciFeedbackResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_dci_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubmitDciFeedbackResponse.ProtoReflect.Descriptor instead. +func (*SubmitDciFeedbackResponse) Descriptor() ([]byte, []int) { + return file_pb_dci_proto_rawDescGZIP(), []int{33} +} + +func (x *SubmitDciFeedbackResponse) GetResultCode() string { + if x != nil { + return x.ResultCode + } + return "" +} + +func (x *SubmitDciFeedbackResponse) GetResultMsg() string { + if x != nil { + return x.ResultMsg + } + return "" +} + +func (x *SubmitDciFeedbackResponse) GetReqMsgId() string { + if x != nil { + return x.ReqMsgId + } + return "" +} + +func (x *SubmitDciFeedbackResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type QueryDciFeedbackRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` +} + +func (x *QueryDciFeedbackRequest) Reset() { + *x = QueryDciFeedbackRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_dci_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryDciFeedbackRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryDciFeedbackRequest) ProtoMessage() {} + +func (x *QueryDciFeedbackRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_dci_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryDciFeedbackRequest.ProtoReflect.Descriptor instead. +func (*QueryDciFeedbackRequest) Descriptor() ([]byte, []int) { + return file_pb_dci_proto_rawDescGZIP(), []int{34} +} + +func (x *QueryDciFeedbackRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type QueryDciFeedbackResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode string `protobuf:"bytes,1,opt,name=resultCode,proto3" json:"resultCode"` + ResultMsg string `protobuf:"bytes,2,opt,name=resultMsg,proto3" json:"resultMsg"` + ReqMsgId string `protobuf:"bytes,3,opt,name=reqMsgId,proto3" json:"reqMsgId"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + FeedbackStatus string `protobuf:"bytes,5,opt,name=feedbackStatus,proto3" json:"feedbackStatus"` + DciContentId string `protobuf:"bytes,6,opt,name=DciContentId,proto3" json:"DciContentId"` + Msg string `protobuf:"bytes,7,opt,name=msg,proto3" json:"msg"` +} + +func (x *QueryDciFeedbackResponse) Reset() { + *x = QueryDciFeedbackResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_dci_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryDciFeedbackResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryDciFeedbackResponse) ProtoMessage() {} + +func (x *QueryDciFeedbackResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_dci_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryDciFeedbackResponse.ProtoReflect.Descriptor instead. +func (*QueryDciFeedbackResponse) Descriptor() ([]byte, []int) { + return file_pb_dci_proto_rawDescGZIP(), []int{35} +} + +func (x *QueryDciFeedbackResponse) GetResultCode() string { + if x != nil { + return x.ResultCode + } + return "" +} + +func (x *QueryDciFeedbackResponse) GetResultMsg() string { + if x != nil { + return x.ResultMsg + } + return "" +} + +func (x *QueryDciFeedbackResponse) GetReqMsgId() string { + if x != nil { + return x.ReqMsgId + } + return "" +} + +func (x *QueryDciFeedbackResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *QueryDciFeedbackResponse) GetFeedbackStatus() string { + if x != nil { + return x.FeedbackStatus + } + return "" +} + +func (x *QueryDciFeedbackResponse) GetDciContentId() string { + if x != nil { + return x.DciContentId + } + return "" +} + +func (x *QueryDciFeedbackResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + var File_pb_dci_proto protoreflect.FileDescriptor var file_pb_dci_proto_rawDesc = []byte{ @@ -2975,7 +3307,7 @@ var file_pb_dci_proto_rawDesc = []byte{ 0x1e, 0xe6, 0x9d, 0x83, 0xe5, 0x88, 0xa9, 0xe5, 0xbd, 0x92, 0xe5, 0xb1, 0x9e, 0xe6, 0x96, 0xb9, 0xe5, 0xbc, 0x8f, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x57, 0x61, 0x79, 0x22, - 0xa0, 0x01, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, + 0xbc, 0x01, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, @@ -2985,400 +3317,465 @@ var file_pb_dci_proto_rawDesc = []byte{ 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, - 0x49, 0x64, 0x22, 0x65, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, - 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, - 0x2a, 0x17, 0x44, 0x43, 0x49, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0x49, 0x44, 0xe4, 0xb8, 0x8d, - 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0c, 0x64, 0x63, 0x69, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xa5, 0x07, 0x0a, 0x1f, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x48, - 0x61, 0x73, 0x68, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x69, 0x6c, - 0x65, 0x48, 0x61, 0x73, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, - 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x63, - 0x69, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, - 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x63, - 0x69, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x12, 0x64, - 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x64, - 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x63, 0x69, - 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x64, 0x63, 0x69, 0x43, 0x6f, - 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x65, - 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, - 0x15, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, - 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x73, - 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, - 0x54, 0x73, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, - 0x6c, 0x65, 0x54, 0x73, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x63, 0x69, - 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x73, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, - 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, 0x73, 0x72, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, 0x73, - 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, - 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x55, - 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, - 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x4f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x4f, 0x62, 0x74, 0x61, - 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x63, - 0x69, 0x43, 0x6f, 0x64, 0x65, 0x4f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x43, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x4d, 0x73, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, - 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, - 0x64, 0x22, 0x8f, 0x03, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, 0x2a, 0x17, - 0x44, 0x43, 0x49, 0xe7, 0x94, 0xb3, 0xe9, 0xa2, 0x86, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, - 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x69, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x44, 0x63, 0x69, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x26, 0xe2, 0xdf, 0x1f, 0x22, 0x2a, - 0x1e, 0xe4, 0xbd, 0x9c, 0xe5, 0x93, 0x81, 0xe5, 0x88, 0x9b, 0xe4, 0xbd, 0x9c, 0xe8, 0xaf, 0xb4, - 0xe6, 0x98, 0x8e, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, - 0x01, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x54, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x49, 0x6e, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, - 0x18, 0xe5, 0x8f, 0x91, 0xe7, 0xa5, 0xa8, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0xe4, 0xb8, 0x8d, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x65, + 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x43, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, 0x2a, 0x17, 0x44, 0x43, + 0x49, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, + 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xa5, 0x07, 0x0a, 0x1f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, + 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x54, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, + 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x63, 0x69, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, + 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x63, 0x69, 0x43, 0x6f, + 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x63, 0x69, 0x43, 0x6f, + 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x54, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, + 0x10, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, + 0x65, 0x72, 0x74, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72, 0x65, + 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, + 0x43, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x73, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x73, 0x72, 0x12, + 0x26, 0x0a, 0x0e, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x73, + 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x54, 0x73, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x52, 0x65, + 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, 0x73, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x54, 0x73, 0x72, 0x12, 0x2e, 0x0a, + 0x12, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x52, 0x65, + 0x67, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, + 0x0d, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x52, 0x65, 0x67, 0x43, 0x65, 0x72, 0x74, + 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x62, 0x74, 0x61, + 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x4f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, + 0x11, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x4f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x64, + 0x65, 0x4f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6e, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x43, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0x8f, 0x03, + 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, + 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, 0x2a, 0x17, 0x44, 0x43, 0x49, 0xe7, + 0x94, 0xb3, 0xe9, 0xa2, 0x86, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, + 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x69, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, + 0x63, 0x69, 0x2e, 0x44, 0x63, 0x69, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x26, 0xe2, 0xdf, 0x1f, 0x22, 0x2a, 0x1e, 0xe4, 0xbd, 0x9c, + 0xe5, 0x93, 0x81, 0xe5, 0x88, 0x9b, 0xe4, 0xbd, 0x9c, 0xe8, 0xaf, 0xb4, 0xe6, 0x98, 0x8e, 0xe4, + 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0f, 0x65, + 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x54, + 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0x8f, 0x91, + 0xe7, 0xa5, 0xa8, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, + 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0xc2, 0x02, 0x0a, 0x12, 0x44, 0x63, 0x69, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x18, 0xe5, 0x88, 0x9b, 0xe4, 0xbd, 0x9c, 0xe7, 0x9b, 0xae, + 0xe7, 0x9a, 0x84, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x78, 0x33, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x72, + 0x70, 0x6f, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, + 0xdf, 0x1f, 0x1e, 0x2a, 0x18, 0xe5, 0x88, 0x9b, 0xe4, 0xbd, 0x9c, 0xe8, 0xbf, 0x87, 0xe7, 0xa8, + 0x8b, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x78, + 0x56, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe2, 0xdf, 0x1f, 0x22, 0x2a, 0x1b, 0xe7, + 0x8b, 0xac, 0xe5, 0x88, 0x9b, 0xe6, 0x80, 0xa7, 0xe8, 0xaf, 0xb4, 0xe6, 0x98, 0x8e, 0xe4, 0xb8, + 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x78, 0x8d, 0x01, 0x52, + 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x0d, + 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0xad, 0x97, 0xe4, 0xbd, + 0x93, 0xe5, 0xa3, 0xb0, 0xe6, 0x98, 0x8e, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, + 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0d, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x03, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, + 0x18, 0xe5, 0x8f, 0x91, 0xe7, 0xa5, 0xa8, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0b, 0x69, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0xc2, 0x02, 0x0a, 0x12, 0x44, 0x63, 0x69, 0x45, 0x78, 0x70, 0x6c, 0x61, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x18, 0xe5, 0x88, 0x9b, 0xe4, 0xbd, - 0x9c, 0xe7, 0x9b, 0xae, 0xe7, 0x9a, 0x84, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, - 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x78, 0x33, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x18, 0xe5, 0x88, 0x9b, 0xe4, 0xbd, 0x9c, 0xe8, - 0xbf, 0x87, 0xe7, 0xa8, 0x8b, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, - 0xba, 0x58, 0x01, 0x78, 0x56, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe2, 0xdf, 0x1f, - 0x22, 0x2a, 0x1b, 0xe7, 0x8b, 0xac, 0xe5, 0x88, 0x9b, 0xe6, 0x80, 0xa7, 0xe8, 0xaf, 0xb4, 0xe6, - 0x98, 0x8e, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, - 0x78, 0x8d, 0x01, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x46, 0x0a, 0x0d, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, - 0xad, 0x97, 0xe4, 0xbd, 0x93, 0xe5, 0xa3, 0xb0, 0xe6, 0x98, 0x8e, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, - 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0d, 0x66, 0x6f, 0x6e, 0x74, 0x43, - 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x03, 0x0a, 0x0b, 0x49, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, - 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0x8f, 0x91, 0xe7, 0xa5, 0xa8, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, - 0x8b, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, - 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0d, - 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0x8f, 0x91, 0xe7, 0xa5, - 0xa8, 0xe6, 0x8a, 0xac, 0xe5, 0xa4, 0xb4, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, - 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x78, 0x70, 0x61, 0x79, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, - 0x78, 0x70, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x65, 0x6c, - 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x6e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x14, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x2a, 0x0a, 0x10, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x65, - 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x70, - 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x28, 0x0a, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x46, - 0x69, 0x6c, 0x65, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x1d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x64, - 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, - 0x67, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, - 0x67, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, - 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x22, 0xf8, 0x04, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, - 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x64, - 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, - 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x69, 0x67, 0x69, 0x74, - 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, - 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, - 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, - 0x66, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, - 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6d, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x55, 0x72, - 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, - 0x72, 0x6d, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, - 0x73, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, - 0x89, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, + 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0x8f, 0x91, 0xe7, 0xa5, 0xa8, 0xe6, 0x8a, 0xac, + 0xe5, 0xa4, 0xb4, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x78, 0x70, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x78, 0x70, 0x61, 0x79, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, + 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, + 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x20, + 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x82, 0x02, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, + 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, + 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x6f, 0x72, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x41, 0x75, 0x74, + 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x57, 0x6f, 0x72, + 0x6b, 0x41, 0x75, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, 0xbb, - 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, - 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, - 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, - 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0x66, - 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, 0xbb, 0xe7, 0x94, 0xb3, - 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, - 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x44, 0x63, - 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, - 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, - 0xbb, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, - 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa0, 0x02, 0x0a, - 0x1e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x34, 0x0a, 0x15, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, - 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, - 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, - 0xc1, 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x6f, 0x0a, 0x1b, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xf8, 0x04, 0x0a, + 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x67, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x67, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x64, + 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, + 0x15, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x64, 0x69, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x44, 0x0a, 0x1d, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, + 0x65, 0x66, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x72, + 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, + 0x61, 0x69, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x6d, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x6d, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, + 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, + 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, 0xbb, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x44, 0x63, 0x69, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x61, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xbc, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, + 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, + 0x79, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, + 0x73, 0x67, 0x22, 0x66, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x61, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, + 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, + 0xbb, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, + 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x1d, 0x47, + 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, + 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, + 0x95, 0xb0, 0xe7, 0x99, 0xbb, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, + 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xa0, 0x02, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x15, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, 0x66, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x69, + 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x61, 0x69, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x22, 0xc1, 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x63, 0x69, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, + 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, 0xbb, 0xe7, 0x94, 0xb3, 0xe8, + 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, + 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x63, 0x69, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0f, 0x65, 0x78, 0x70, + 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x44, 0x63, 0x69, 0x45, 0x78, 0x70, 0x6c, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x70, + 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x12, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x78, 0x0a, 0x1c, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, - 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0x8d, 0x02, - 0x0a, 0x1b, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, - 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, - 0xe6, 0x95, 0xb0, 0xe7, 0x99, 0xbb, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, 0xb8, - 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, 0x69, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe2, - 0xdf, 0x1f, 0x21, 0x2a, 0x1b, 0xe9, 0x80, 0x80, 0xe8, 0xb4, 0xb9, 0xe4, 0xba, 0xba, 0xe5, 0x90, - 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, - 0x58, 0x01, 0x78, 0x29, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x6f, - 0x62, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe2, 0xdf, - 0x1f, 0x1f, 0x2a, 0x1b, 0xe8, 0x81, 0x94, 0xe7, 0xb3, 0xbb, 0xe6, 0x89, 0x8b, 0xe6, 0x9c, 0xba, - 0xe5, 0x8f, 0xb7, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, - 0x01, 0x52, 0x08, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x78, 0x0a, - 0x1c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x32, 0xc6, 0x08, 0x0a, 0x03, 0x44, 0x63, 0x69, 0x12, - 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, - 0x18, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, - 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x44, 0x63, 0x69, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x16, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x63, 0x69, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x64, 0x63, 0x69, - 0x2e, 0x41, 0x64, 0x64, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x64, 0x63, - 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x67, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x64, - 0x63, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x6f, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x74, 0x72, + 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x8d, + 0x02, 0x0a, 0x1b, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, + 0x0a, 0x11, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, + 0x1a, 0xe6, 0x95, 0xb0, 0xe7, 0x99, 0xbb, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0x49, 0x44, 0xe4, + 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x11, 0x64, + 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, + 0xe2, 0xdf, 0x1f, 0x21, 0x2a, 0x1b, 0xe9, 0x80, 0x80, 0xe8, 0xb4, 0xb9, 0xe4, 0xba, 0xba, 0xe5, + 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, + 0xba, 0x58, 0x01, 0x78, 0x29, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe2, + 0xdf, 0x1f, 0x1f, 0x2a, 0x1b, 0xe8, 0x81, 0x94, 0xe7, 0xb3, 0xbb, 0xe6, 0x89, 0x8b, 0xe6, 0x9c, + 0xba, 0xe5, 0x8f, 0xb7, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, + 0x58, 0x01, 0x52, 0x08, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x78, + 0x0a, 0x1c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x22, 0xd1, 0x02, 0x0a, 0x18, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x44, 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, 0x0c, 0x2a, 0x08, + 0xe4, 0xb8, 0x9a, 0xe5, 0x8a, 0xa1, 0x49, 0x44, 0x58, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0xe2, 0xdf, 0x1f, 0x0d, + 0x2a, 0x09, 0xe8, 0x81, 0x94, 0xe7, 0xb3, 0xbb, 0xe4, 0xba, 0xba, 0x58, 0x01, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x12, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xe2, 0xdf, 0x1f, 0x10, 0x2a, 0x0c, 0xe8, 0x81, + 0x94, 0xe7, 0xb3, 0xbb, 0xe7, 0x94, 0xb5, 0xe8, 0xaf, 0x9d, 0x58, 0x01, 0x52, 0x12, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2e, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x14, 0xe2, 0xdf, 0x1f, 0x10, 0x2a, 0x0c, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0x89, 0xe5, + 0x8e, 0x9f, 0xe5, 0x9b, 0xa0, 0x58, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x38, 0x0a, 0x0c, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xe2, 0xdf, 0x1f, 0x10, 0x2a, 0x0c, + 0xe5, 0x8f, 0x8d, 0xe9, 0xa6, 0x88, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0x58, 0x01, 0x52, 0x0c, + 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, + 0x19, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x44, 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x4d, + 0x73, 0x67, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4d, + 0x73, 0x67, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x3b, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, + 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xe2, 0xdf, 0x1f, + 0x0c, 0x2a, 0x08, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0x89, 0x49, 0x44, 0x58, 0x01, 0x52, 0x02, 0x69, + 0x64, 0x22, 0xe2, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x46, 0x65, + 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x65, 0x65, 0x64, + 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x44, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xeb, 0x09, 0x0a, 0x03, 0x44, 0x63, 0x69, 0x12, 0x43, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x18, + 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x16, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x63, 0x69, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, + 0x41, 0x64, 0x64, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x64, 0x63, 0x69, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x63, 0x69, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x67, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x64, 0x63, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, + 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x17, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x63, 0x69, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5e, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x64, 0x63, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5b, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x63, 0x69, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x2e, 0x64, - 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, - 0x12, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, - 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x64, 0x63, 0x69, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x12, 0x22, 0x2e, - 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, - 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, + 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x44, 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x44, 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x44, + 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x46, 0x65, + 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1c, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x44, 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x63, 0x69, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x64, + 0x63, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, + 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x64, 0x63, - 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x64, 0x63, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, + 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x64, 0x63, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, + 0x12, 0x18, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, + 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x64, 0x63, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, + 0x69, 0x50, 0x61, 0x79, 0x12, 0x17, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x64, 0x63, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x63, 0x69, 0x50, 0x61, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x63, + 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, + 0x74, 0x12, 0x22, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x63, 0x69, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x65, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x52, 0x65, + 0x74, 0x72, 0x79, 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x63, + 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, + 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x43, 0x6c, 0x6f, 0x73, 0x65, + 0x44, 0x63, 0x69, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x20, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x63, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x63, 0x69, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x64, 0x63, 0x69, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3393,7 +3790,7 @@ func file_pb_dci_proto_rawDescGZIP() []byte { return file_pb_dci_proto_rawDescData } -var file_pb_dci_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_pb_dci_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_pb_dci_proto_goTypes = []interface{}{ (*GetUploadUrlRequest)(nil), // 0: dci.GetUploadUrlRequest (*GetUploadUrlResponse)(nil), // 1: dci.GetUploadUrlResponse @@ -3427,6 +3824,10 @@ var file_pb_dci_proto_goTypes = []interface{}{ (*RetryDciRegistrationResponse)(nil), // 29: dci.RetryDciRegistrationResponse (*CloseDciRegistrationRequest)(nil), // 30: dci.CloseDciRegistrationRequest (*CloseDciRegistrationResponse)(nil), // 31: dci.CloseDciRegistrationResponse + (*SubmitDciFeedbackRequest)(nil), // 32: dci.SubmitDciFeedbackRequest + (*SubmitDciFeedbackResponse)(nil), // 33: dci.SubmitDciFeedbackResponse + (*QueryDciFeedbackRequest)(nil), // 34: dci.QueryDciFeedbackRequest + (*QueryDciFeedbackResponse)(nil), // 35: dci.QueryDciFeedbackResponse } var file_pb_dci_proto_depIdxs = []int32{ 9, // 0: dci.CreateDciPreregistrationRequest.creationInfo:type_name -> dci.DciCreationInfo @@ -3443,28 +3844,32 @@ var file_pb_dci_proto_depIdxs = []int32{ 6, // 11: dci.Dci.QueryDciUser:input_type -> dci.QueryDciUserRequest 8, // 12: dci.Dci.CreateDciPreregistration:input_type -> dci.CreateDciPreregistrationRequest 13, // 13: dci.Dci.QueryDciPreregistration:input_type -> dci.QueryDciPreregistrationRequest - 15, // 14: dci.Dci.CreateDciRegistration:input_type -> dci.CreateDciRegistrationRequest - 20, // 15: dci.Dci.QueryDciRegistration:input_type -> dci.QueryDciRegistrationRequest - 22, // 16: dci.Dci.GetDciPayUrl:input_type -> dci.GetDciPayUrlRequest - 24, // 17: dci.Dci.QueryDciPay:input_type -> dci.QueryDciPayRequest - 26, // 18: dci.Dci.GetDciRegistrationcert:input_type -> dci.GetDciRegistrationcertRequest - 28, // 19: dci.Dci.RetryDciRegistration:input_type -> dci.RetryDciRegistrationRequest - 30, // 20: dci.Dci.CloseDciRegistration:input_type -> dci.CloseDciRegistrationRequest - 1, // 21: dci.Dci.GetUploadUrl:output_type -> dci.GetUploadUrlResponse - 3, // 22: dci.Dci.AddDciUser:output_type -> dci.AddDciUserResponse - 5, // 23: dci.Dci.UpdateDciUser:output_type -> dci.UpdateDciUserResponse - 7, // 24: dci.Dci.QueryDciUser:output_type -> dci.QueryDciUserResponse - 12, // 25: dci.Dci.CreateDciPreregistration:output_type -> dci.CreateDciPreregistrationResponse - 14, // 26: dci.Dci.QueryDciPreregistration:output_type -> dci.QueryDciPreregistrationResponse - 19, // 27: dci.Dci.CreateDciRegistration:output_type -> dci.CreateDciRegistrationResponse - 21, // 28: dci.Dci.QueryDciRegistration:output_type -> dci.QueryDciRegistrationResponse - 23, // 29: dci.Dci.GetDciPayUrl:output_type -> dci.GetDciPayUrlResponse - 25, // 30: dci.Dci.QueryDciPay:output_type -> dci.QueryDciPayResponse - 27, // 31: dci.Dci.GetDciRegistrationcert:output_type -> dci.GetDciRegistrationcertResponse - 29, // 32: dci.Dci.RetryDciRegistration:output_type -> dci.RetryDciRegistrationResponse - 31, // 33: dci.Dci.CloseDciRegistration:output_type -> dci.CloseDciRegistrationResponse - 21, // [21:34] is the sub-list for method output_type - 8, // [8:21] is the sub-list for method input_type + 32, // 14: dci.Dci.SubmitDciFeedback:input_type -> dci.SubmitDciFeedbackRequest + 34, // 15: dci.Dci.QueryDciFeedback:input_type -> dci.QueryDciFeedbackRequest + 15, // 16: dci.Dci.CreateDciRegistration:input_type -> dci.CreateDciRegistrationRequest + 20, // 17: dci.Dci.QueryDciRegistration:input_type -> dci.QueryDciRegistrationRequest + 22, // 18: dci.Dci.GetDciPayUrl:input_type -> dci.GetDciPayUrlRequest + 24, // 19: dci.Dci.QueryDciPay:input_type -> dci.QueryDciPayRequest + 26, // 20: dci.Dci.GetDciRegistrationcert:input_type -> dci.GetDciRegistrationcertRequest + 28, // 21: dci.Dci.RetryDciRegistration:input_type -> dci.RetryDciRegistrationRequest + 30, // 22: dci.Dci.CloseDciRegistration:input_type -> dci.CloseDciRegistrationRequest + 1, // 23: dci.Dci.GetUploadUrl:output_type -> dci.GetUploadUrlResponse + 3, // 24: dci.Dci.AddDciUser:output_type -> dci.AddDciUserResponse + 5, // 25: dci.Dci.UpdateDciUser:output_type -> dci.UpdateDciUserResponse + 7, // 26: dci.Dci.QueryDciUser:output_type -> dci.QueryDciUserResponse + 12, // 27: dci.Dci.CreateDciPreregistration:output_type -> dci.CreateDciPreregistrationResponse + 14, // 28: dci.Dci.QueryDciPreregistration:output_type -> dci.QueryDciPreregistrationResponse + 33, // 29: dci.Dci.SubmitDciFeedback:output_type -> dci.SubmitDciFeedbackResponse + 35, // 30: dci.Dci.QueryDciFeedback:output_type -> dci.QueryDciFeedbackResponse + 19, // 31: dci.Dci.CreateDciRegistration:output_type -> dci.CreateDciRegistrationResponse + 21, // 32: dci.Dci.QueryDciRegistration:output_type -> dci.QueryDciRegistrationResponse + 23, // 33: dci.Dci.GetDciPayUrl:output_type -> dci.GetDciPayUrlResponse + 25, // 34: dci.Dci.QueryDciPay:output_type -> dci.QueryDciPayResponse + 27, // 35: dci.Dci.GetDciRegistrationcert:output_type -> dci.GetDciRegistrationcertResponse + 29, // 36: dci.Dci.RetryDciRegistration:output_type -> dci.RetryDciRegistrationResponse + 31, // 37: dci.Dci.CloseDciRegistration:output_type -> dci.CloseDciRegistrationResponse + 23, // [23:38] is the sub-list for method output_type + 8, // [8:23] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name 8, // [8:8] is the sub-list for extension extendee 0, // [0:8] is the sub-list for field type_name @@ -3860,6 +4265,54 @@ func file_pb_dci_proto_init() { return nil } } + file_pb_dci_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitDciFeedbackRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_dci_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitDciFeedbackResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_dci_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryDciFeedbackRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_dci_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryDciFeedbackResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3867,7 +4320,7 @@ func file_pb_dci_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_dci_proto_rawDesc, NumEnums: 0, - NumMessages: 32, + NumMessages: 36, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/dci/dci.validator.pb.go b/pb/dci/dci.validator.pb.go index e9ec00f..195aea2 100644 --- a/pb/dci/dci.validator.pb.go +++ b/pb/dci/dci.validator.pb.go @@ -305,3 +305,33 @@ func (this *CloseDciRegistrationRequest) Validate() error { func (this *CloseDciRegistrationResponse) Validate() error { return nil } +func (this *SubmitDciFeedbackRequest) Validate() error { + if this.ServiceId == "" { + return github_com_mwitkow_go_proto_validators.FieldError("ServiceId", fmt.Errorf(`业务ID`)) + } + if this.ContactName == "" { + return github_com_mwitkow_go_proto_validators.FieldError("ContactName", fmt.Errorf(`联系人`)) + } + if this.ContactPhoneNumber == "" { + return github_com_mwitkow_go_proto_validators.FieldError("ContactPhoneNumber", fmt.Errorf(`联系电话`)) + } + if this.Message == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Message", fmt.Errorf(`申诉原因`)) + } + if this.FeedbackType == "" { + return github_com_mwitkow_go_proto_validators.FieldError("FeedbackType", fmt.Errorf(`反馈类型`)) + } + return nil +} +func (this *SubmitDciFeedbackResponse) Validate() error { + return nil +} +func (this *QueryDciFeedbackRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`申诉ID`)) + } + return nil +} +func (this *QueryDciFeedbackResponse) Validate() error { + return nil +} diff --git a/pb/dci/dci_triple.pb.go b/pb/dci/dci_triple.pb.go index 00e6c6f..8379213 100644 --- a/pb/dci/dci_triple.pb.go +++ b/pb/dci/dci_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.5 -// - protoc v3.21.4 +// - protoc v5.29.0--rc3 // source: pb/dci.proto package dci @@ -37,6 +37,8 @@ type DciClient interface { // dci work CreateDciPreregistration(ctx context.Context, in *CreateDciPreregistrationRequest, opts ...grpc_go.CallOption) (*CreateDciPreregistrationResponse, common.ErrorWithAttachment) QueryDciPreregistration(ctx context.Context, in *QueryDciPreregistrationRequest, opts ...grpc_go.CallOption) (*QueryDciPreregistrationResponse, common.ErrorWithAttachment) + SubmitDciFeedback(ctx context.Context, in *SubmitDciFeedbackRequest, opts ...grpc_go.CallOption) (*SubmitDciFeedbackResponse, common.ErrorWithAttachment) + QueryDciFeedback(ctx context.Context, in *QueryDciFeedbackRequest, opts ...grpc_go.CallOption) (*QueryDciFeedbackResponse, common.ErrorWithAttachment) // 数登 CreateDciRegistration(ctx context.Context, in *CreateDciRegistrationRequest, opts ...grpc_go.CallOption) (*CreateDciRegistrationResponse, common.ErrorWithAttachment) QueryDciRegistration(ctx context.Context, in *QueryDciRegistrationRequest, opts ...grpc_go.CallOption) (*QueryDciRegistrationResponse, common.ErrorWithAttachment) @@ -58,6 +60,8 @@ type DciClientImpl struct { QueryDciUser func(ctx context.Context, in *QueryDciUserRequest) (*QueryDciUserResponse, error) CreateDciPreregistration func(ctx context.Context, in *CreateDciPreregistrationRequest) (*CreateDciPreregistrationResponse, error) QueryDciPreregistration func(ctx context.Context, in *QueryDciPreregistrationRequest) (*QueryDciPreregistrationResponse, error) + SubmitDciFeedback func(ctx context.Context, in *SubmitDciFeedbackRequest) (*SubmitDciFeedbackResponse, error) + QueryDciFeedback func(ctx context.Context, in *QueryDciFeedbackRequest) (*QueryDciFeedbackResponse, error) CreateDciRegistration func(ctx context.Context, in *CreateDciRegistrationRequest) (*CreateDciRegistrationResponse, error) QueryDciRegistration func(ctx context.Context, in *QueryDciRegistrationRequest) (*QueryDciRegistrationResponse, error) GetDciPayUrl func(ctx context.Context, in *GetDciPayUrlRequest) (*GetDciPayUrlResponse, error) @@ -115,6 +119,18 @@ func (c *dciClient) QueryDciPreregistration(ctx context.Context, in *QueryDciPre return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/QueryDciPreregistration", in, out) } +func (c *dciClient) SubmitDciFeedback(ctx context.Context, in *SubmitDciFeedbackRequest, opts ...grpc_go.CallOption) (*SubmitDciFeedbackResponse, common.ErrorWithAttachment) { + out := new(SubmitDciFeedbackResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SubmitDciFeedback", in, out) +} + +func (c *dciClient) QueryDciFeedback(ctx context.Context, in *QueryDciFeedbackRequest, opts ...grpc_go.CallOption) (*QueryDciFeedbackResponse, common.ErrorWithAttachment) { + out := new(QueryDciFeedbackResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/QueryDciFeedback", in, out) +} + func (c *dciClient) CreateDciRegistration(ctx context.Context, in *CreateDciRegistrationRequest, opts ...grpc_go.CallOption) (*CreateDciRegistrationResponse, common.ErrorWithAttachment) { out := new(CreateDciRegistrationResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -170,6 +186,8 @@ type DciServer interface { // dci work CreateDciPreregistration(context.Context, *CreateDciPreregistrationRequest) (*CreateDciPreregistrationResponse, error) QueryDciPreregistration(context.Context, *QueryDciPreregistrationRequest) (*QueryDciPreregistrationResponse, error) + SubmitDciFeedback(context.Context, *SubmitDciFeedbackRequest) (*SubmitDciFeedbackResponse, error) + QueryDciFeedback(context.Context, *QueryDciFeedbackRequest) (*QueryDciFeedbackResponse, error) // 数登 CreateDciRegistration(context.Context, *CreateDciRegistrationRequest) (*CreateDciRegistrationResponse, error) QueryDciRegistration(context.Context, *QueryDciRegistrationRequest) (*QueryDciRegistrationResponse, error) @@ -204,6 +222,12 @@ func (UnimplementedDciServer) CreateDciPreregistration(context.Context, *CreateD func (UnimplementedDciServer) QueryDciPreregistration(context.Context, *QueryDciPreregistrationRequest) (*QueryDciPreregistrationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method QueryDciPreregistration not implemented") } +func (UnimplementedDciServer) SubmitDciFeedback(context.Context, *SubmitDciFeedbackRequest) (*SubmitDciFeedbackResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubmitDciFeedback not implemented") +} +func (UnimplementedDciServer) QueryDciFeedback(context.Context, *QueryDciFeedbackRequest) (*QueryDciFeedbackResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QueryDciFeedback not implemented") +} func (UnimplementedDciServer) CreateDciRegistration(context.Context, *CreateDciRegistrationRequest) (*CreateDciRegistrationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateDciRegistration not implemented") } @@ -427,6 +451,64 @@ func _Dci_QueryDciPreregistration_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Dci_SubmitDciFeedback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(SubmitDciFeedbackRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("SubmitDciFeedback", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Dci_QueryDciFeedback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDciFeedbackRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("QueryDciFeedback", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Dci_CreateDciRegistration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(CreateDciRegistrationRequest) if err := dec(in); err != nil { @@ -661,6 +743,14 @@ var Dci_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "QueryDciPreregistration", Handler: _Dci_QueryDciPreregistration_Handler, }, + { + MethodName: "SubmitDciFeedback", + Handler: _Dci_SubmitDciFeedback_Handler, + }, + { + MethodName: "QueryDciFeedback", + Handler: _Dci_QueryDciFeedback_Handler, + }, { MethodName: "CreateDciRegistration", Handler: _Dci_CreateDciRegistration_Handler, diff --git a/pkg/msg/dci_msg.go b/pkg/msg/dci_msg.go index 4f8a067..69dac3b 100644 --- a/pkg/msg/dci_msg.go +++ b/pkg/msg/dci_msg.go @@ -15,4 +15,5 @@ const ( ErrGetDciRegistrationcert = "获取数登证书下载失败" ErrRetryDciRegistration = "补正申请失败" ErrCloseDciRegistration = "数登停止申请失败" + ErrSubmitDciFeedback = "作品DCI申诉失败" )