checkoutservice: remove PrepareOrder rpc

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
This commit is contained in:
Ahmet Alp Balkan 2018-06-28 00:48:46 -07:00 committed by Simon Zeltser
parent 8d1d967d93
commit ed942a91fe
5 changed files with 238 additions and 566 deletions

View file

@ -202,21 +202,9 @@ message SendOrderConfirmationRequest {
// -------------Checkout service----------------- // -------------Checkout service-----------------
service CheckoutService { service CheckoutService {
rpc CreateOrder(CreateOrderRequest) returns (CreateOrderResponse) {}
rpc PlaceOrder(PlaceOrderRequest) returns (PlaceOrderResponse) {} rpc PlaceOrder(PlaceOrderRequest) returns (PlaceOrderResponse) {}
} }
message CreateOrderRequest {
string user_id = 1;
string user_currency = 2;
Address address = 3;
}
message CreateOrderResponse {
repeated OrderItem items = 1;
Money shipping_cost = 2;
}
message PlaceOrderRequest { message PlaceOrderRequest {
string user_id = 1; string user_id = 1;
string user_currency = 2; string user_currency = 2;

View file

@ -35,7 +35,7 @@ func (m *CartItem) Reset() { *m = CartItem{} }
func (m *CartItem) String() string { return proto.CompactTextString(m) } func (m *CartItem) String() string { return proto.CompactTextString(m) }
func (*CartItem) ProtoMessage() {} func (*CartItem) ProtoMessage() {}
func (*CartItem) Descriptor() ([]byte, []int) { func (*CartItem) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{0} return fileDescriptor_demo_e1d03823e14b5fb0, []int{0}
} }
func (m *CartItem) XXX_Unmarshal(b []byte) error { func (m *CartItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CartItem.Unmarshal(m, b) return xxx_messageInfo_CartItem.Unmarshal(m, b)
@ -81,7 +81,7 @@ func (m *AddItemRequest) Reset() { *m = AddItemRequest{} }
func (m *AddItemRequest) String() string { return proto.CompactTextString(m) } func (m *AddItemRequest) String() string { return proto.CompactTextString(m) }
func (*AddItemRequest) ProtoMessage() {} func (*AddItemRequest) ProtoMessage() {}
func (*AddItemRequest) Descriptor() ([]byte, []int) { func (*AddItemRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{1} return fileDescriptor_demo_e1d03823e14b5fb0, []int{1}
} }
func (m *AddItemRequest) XXX_Unmarshal(b []byte) error { func (m *AddItemRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddItemRequest.Unmarshal(m, b) return xxx_messageInfo_AddItemRequest.Unmarshal(m, b)
@ -126,7 +126,7 @@ func (m *EmptyCartRequest) Reset() { *m = EmptyCartRequest{} }
func (m *EmptyCartRequest) String() string { return proto.CompactTextString(m) } func (m *EmptyCartRequest) String() string { return proto.CompactTextString(m) }
func (*EmptyCartRequest) ProtoMessage() {} func (*EmptyCartRequest) ProtoMessage() {}
func (*EmptyCartRequest) Descriptor() ([]byte, []int) { func (*EmptyCartRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{2} return fileDescriptor_demo_e1d03823e14b5fb0, []int{2}
} }
func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error { func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b) return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b)
@ -164,7 +164,7 @@ func (m *GetCartRequest) Reset() { *m = GetCartRequest{} }
func (m *GetCartRequest) String() string { return proto.CompactTextString(m) } func (m *GetCartRequest) String() string { return proto.CompactTextString(m) }
func (*GetCartRequest) ProtoMessage() {} func (*GetCartRequest) ProtoMessage() {}
func (*GetCartRequest) Descriptor() ([]byte, []int) { func (*GetCartRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{3} return fileDescriptor_demo_e1d03823e14b5fb0, []int{3}
} }
func (m *GetCartRequest) XXX_Unmarshal(b []byte) error { func (m *GetCartRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCartRequest.Unmarshal(m, b) return xxx_messageInfo_GetCartRequest.Unmarshal(m, b)
@ -203,7 +203,7 @@ func (m *Cart) Reset() { *m = Cart{} }
func (m *Cart) String() string { return proto.CompactTextString(m) } func (m *Cart) String() string { return proto.CompactTextString(m) }
func (*Cart) ProtoMessage() {} func (*Cart) ProtoMessage() {}
func (*Cart) Descriptor() ([]byte, []int) { func (*Cart) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{4} return fileDescriptor_demo_e1d03823e14b5fb0, []int{4}
} }
func (m *Cart) XXX_Unmarshal(b []byte) error { func (m *Cart) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Cart.Unmarshal(m, b) return xxx_messageInfo_Cart.Unmarshal(m, b)
@ -247,7 +247,7 @@ func (m *Empty) Reset() { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) } func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage() {} func (*Empty) ProtoMessage() {}
func (*Empty) Descriptor() ([]byte, []int) { func (*Empty) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{5} return fileDescriptor_demo_e1d03823e14b5fb0, []int{5}
} }
func (m *Empty) XXX_Unmarshal(b []byte) error { func (m *Empty) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Empty.Unmarshal(m, b) return xxx_messageInfo_Empty.Unmarshal(m, b)
@ -279,7 +279,7 @@ func (m *ListRecommendationsRequest) Reset() { *m = ListRecommendationsR
func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) } func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) }
func (*ListRecommendationsRequest) ProtoMessage() {} func (*ListRecommendationsRequest) ProtoMessage() {}
func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) { func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{6} return fileDescriptor_demo_e1d03823e14b5fb0, []int{6}
} }
func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error { func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b) return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b)
@ -324,7 +324,7 @@ func (m *ListRecommendationsResponse) Reset() { *m = ListRecommendations
func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) } func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) }
func (*ListRecommendationsResponse) ProtoMessage() {} func (*ListRecommendationsResponse) ProtoMessage() {}
func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) { func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{7} return fileDescriptor_demo_e1d03823e14b5fb0, []int{7}
} }
func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error { func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b) return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b)
@ -366,7 +366,7 @@ func (m *Product) Reset() { *m = Product{} }
func (m *Product) String() string { return proto.CompactTextString(m) } func (m *Product) String() string { return proto.CompactTextString(m) }
func (*Product) ProtoMessage() {} func (*Product) ProtoMessage() {}
func (*Product) Descriptor() ([]byte, []int) { func (*Product) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{8} return fileDescriptor_demo_e1d03823e14b5fb0, []int{8}
} }
func (m *Product) XXX_Unmarshal(b []byte) error { func (m *Product) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Product.Unmarshal(m, b) return xxx_messageInfo_Product.Unmarshal(m, b)
@ -432,7 +432,7 @@ func (m *ListProductsResponse) Reset() { *m = ListProductsResponse{} }
func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) } func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) }
func (*ListProductsResponse) ProtoMessage() {} func (*ListProductsResponse) ProtoMessage() {}
func (*ListProductsResponse) Descriptor() ([]byte, []int) { func (*ListProductsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{9} return fileDescriptor_demo_e1d03823e14b5fb0, []int{9}
} }
func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error { func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b) return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b)
@ -470,7 +470,7 @@ func (m *GetProductRequest) Reset() { *m = GetProductRequest{} }
func (m *GetProductRequest) String() string { return proto.CompactTextString(m) } func (m *GetProductRequest) String() string { return proto.CompactTextString(m) }
func (*GetProductRequest) ProtoMessage() {} func (*GetProductRequest) ProtoMessage() {}
func (*GetProductRequest) Descriptor() ([]byte, []int) { func (*GetProductRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{10} return fileDescriptor_demo_e1d03823e14b5fb0, []int{10}
} }
func (m *GetProductRequest) XXX_Unmarshal(b []byte) error { func (m *GetProductRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProductRequest.Unmarshal(m, b) return xxx_messageInfo_GetProductRequest.Unmarshal(m, b)
@ -508,7 +508,7 @@ func (m *SearchProductsRequest) Reset() { *m = SearchProductsRequest{} }
func (m *SearchProductsRequest) String() string { return proto.CompactTextString(m) } func (m *SearchProductsRequest) String() string { return proto.CompactTextString(m) }
func (*SearchProductsRequest) ProtoMessage() {} func (*SearchProductsRequest) ProtoMessage() {}
func (*SearchProductsRequest) Descriptor() ([]byte, []int) { func (*SearchProductsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{11} return fileDescriptor_demo_e1d03823e14b5fb0, []int{11}
} }
func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error { func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b) return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b)
@ -546,7 +546,7 @@ func (m *SearchProductsResponse) Reset() { *m = SearchProductsResponse{}
func (m *SearchProductsResponse) String() string { return proto.CompactTextString(m) } func (m *SearchProductsResponse) String() string { return proto.CompactTextString(m) }
func (*SearchProductsResponse) ProtoMessage() {} func (*SearchProductsResponse) ProtoMessage() {}
func (*SearchProductsResponse) Descriptor() ([]byte, []int) { func (*SearchProductsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{12} return fileDescriptor_demo_e1d03823e14b5fb0, []int{12}
} }
func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error { func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b) return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b)
@ -585,7 +585,7 @@ func (m *GetQuoteRequest) Reset() { *m = GetQuoteRequest{} }
func (m *GetQuoteRequest) String() string { return proto.CompactTextString(m) } func (m *GetQuoteRequest) String() string { return proto.CompactTextString(m) }
func (*GetQuoteRequest) ProtoMessage() {} func (*GetQuoteRequest) ProtoMessage() {}
func (*GetQuoteRequest) Descriptor() ([]byte, []int) { func (*GetQuoteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{13} return fileDescriptor_demo_e1d03823e14b5fb0, []int{13}
} }
func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error { func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b) return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b)
@ -630,7 +630,7 @@ func (m *GetQuoteResponse) Reset() { *m = GetQuoteResponse{} }
func (m *GetQuoteResponse) String() string { return proto.CompactTextString(m) } func (m *GetQuoteResponse) String() string { return proto.CompactTextString(m) }
func (*GetQuoteResponse) ProtoMessage() {} func (*GetQuoteResponse) ProtoMessage() {}
func (*GetQuoteResponse) Descriptor() ([]byte, []int) { func (*GetQuoteResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{14} return fileDescriptor_demo_e1d03823e14b5fb0, []int{14}
} }
func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error { func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b) return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b)
@ -669,7 +669,7 @@ func (m *ShipOrderRequest) Reset() { *m = ShipOrderRequest{} }
func (m *ShipOrderRequest) String() string { return proto.CompactTextString(m) } func (m *ShipOrderRequest) String() string { return proto.CompactTextString(m) }
func (*ShipOrderRequest) ProtoMessage() {} func (*ShipOrderRequest) ProtoMessage() {}
func (*ShipOrderRequest) Descriptor() ([]byte, []int) { func (*ShipOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{15} return fileDescriptor_demo_e1d03823e14b5fb0, []int{15}
} }
func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error { func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b) return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b)
@ -714,7 +714,7 @@ func (m *ShipOrderResponse) Reset() { *m = ShipOrderResponse{} }
func (m *ShipOrderResponse) String() string { return proto.CompactTextString(m) } func (m *ShipOrderResponse) String() string { return proto.CompactTextString(m) }
func (*ShipOrderResponse) ProtoMessage() {} func (*ShipOrderResponse) ProtoMessage() {}
func (*ShipOrderResponse) Descriptor() ([]byte, []int) { func (*ShipOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{16} return fileDescriptor_demo_e1d03823e14b5fb0, []int{16}
} }
func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error { func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b) return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b)
@ -756,7 +756,7 @@ func (m *Address) Reset() { *m = Address{} }
func (m *Address) String() string { return proto.CompactTextString(m) } func (m *Address) String() string { return proto.CompactTextString(m) }
func (*Address) ProtoMessage() {} func (*Address) ProtoMessage() {}
func (*Address) Descriptor() ([]byte, []int) { func (*Address) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{17} return fileDescriptor_demo_e1d03823e14b5fb0, []int{17}
} }
func (m *Address) XXX_Unmarshal(b []byte) error { func (m *Address) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address.Unmarshal(m, b) return xxx_messageInfo_Address.Unmarshal(m, b)
@ -834,7 +834,7 @@ func (m *Money) Reset() { *m = Money{} }
func (m *Money) String() string { return proto.CompactTextString(m) } func (m *Money) String() string { return proto.CompactTextString(m) }
func (*Money) ProtoMessage() {} func (*Money) ProtoMessage() {}
func (*Money) Descriptor() ([]byte, []int) { func (*Money) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{18} return fileDescriptor_demo_e1d03823e14b5fb0, []int{18}
} }
func (m *Money) XXX_Unmarshal(b []byte) error { func (m *Money) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Money.Unmarshal(m, b) return xxx_messageInfo_Money.Unmarshal(m, b)
@ -887,7 +887,7 @@ func (m *GetSupportedCurrenciesResponse) Reset() { *m = GetSupportedCurr
func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) } func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) }
func (*GetSupportedCurrenciesResponse) ProtoMessage() {} func (*GetSupportedCurrenciesResponse) ProtoMessage() {}
func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) { func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{19} return fileDescriptor_demo_e1d03823e14b5fb0, []int{19}
} }
func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error { func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b) return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b)
@ -927,7 +927,7 @@ func (m *CurrencyConversionRequest) Reset() { *m = CurrencyConversionReq
func (m *CurrencyConversionRequest) String() string { return proto.CompactTextString(m) } func (m *CurrencyConversionRequest) String() string { return proto.CompactTextString(m) }
func (*CurrencyConversionRequest) ProtoMessage() {} func (*CurrencyConversionRequest) ProtoMessage() {}
func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) { func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{20} return fileDescriptor_demo_e1d03823e14b5fb0, []int{20}
} }
func (m *CurrencyConversionRequest) XXX_Unmarshal(b []byte) error { func (m *CurrencyConversionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CurrencyConversionRequest.Unmarshal(m, b) return xxx_messageInfo_CurrencyConversionRequest.Unmarshal(m, b)
@ -975,7 +975,7 @@ func (m *CreditCardInfo) Reset() { *m = CreditCardInfo{} }
func (m *CreditCardInfo) String() string { return proto.CompactTextString(m) } func (m *CreditCardInfo) String() string { return proto.CompactTextString(m) }
func (*CreditCardInfo) ProtoMessage() {} func (*CreditCardInfo) ProtoMessage() {}
func (*CreditCardInfo) Descriptor() ([]byte, []int) { func (*CreditCardInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{21} return fileDescriptor_demo_e1d03823e14b5fb0, []int{21}
} }
func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error { func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b) return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b)
@ -1035,7 +1035,7 @@ func (m *ChargeRequest) Reset() { *m = ChargeRequest{} }
func (m *ChargeRequest) String() string { return proto.CompactTextString(m) } func (m *ChargeRequest) String() string { return proto.CompactTextString(m) }
func (*ChargeRequest) ProtoMessage() {} func (*ChargeRequest) ProtoMessage() {}
func (*ChargeRequest) Descriptor() ([]byte, []int) { func (*ChargeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{22} return fileDescriptor_demo_e1d03823e14b5fb0, []int{22}
} }
func (m *ChargeRequest) XXX_Unmarshal(b []byte) error { func (m *ChargeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChargeRequest.Unmarshal(m, b) return xxx_messageInfo_ChargeRequest.Unmarshal(m, b)
@ -1080,7 +1080,7 @@ func (m *ChargeResponse) Reset() { *m = ChargeResponse{} }
func (m *ChargeResponse) String() string { return proto.CompactTextString(m) } func (m *ChargeResponse) String() string { return proto.CompactTextString(m) }
func (*ChargeResponse) ProtoMessage() {} func (*ChargeResponse) ProtoMessage() {}
func (*ChargeResponse) Descriptor() ([]byte, []int) { func (*ChargeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{23} return fileDescriptor_demo_e1d03823e14b5fb0, []int{23}
} }
func (m *ChargeResponse) XXX_Unmarshal(b []byte) error { func (m *ChargeResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChargeResponse.Unmarshal(m, b) return xxx_messageInfo_ChargeResponse.Unmarshal(m, b)
@ -1119,7 +1119,7 @@ func (m *OrderItem) Reset() { *m = OrderItem{} }
func (m *OrderItem) String() string { return proto.CompactTextString(m) } func (m *OrderItem) String() string { return proto.CompactTextString(m) }
func (*OrderItem) ProtoMessage() {} func (*OrderItem) ProtoMessage() {}
func (*OrderItem) Descriptor() ([]byte, []int) { func (*OrderItem) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{24} return fileDescriptor_demo_e1d03823e14b5fb0, []int{24}
} }
func (m *OrderItem) XXX_Unmarshal(b []byte) error { func (m *OrderItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderItem.Unmarshal(m, b) return xxx_messageInfo_OrderItem.Unmarshal(m, b)
@ -1168,7 +1168,7 @@ func (m *OrderResult) Reset() { *m = OrderResult{} }
func (m *OrderResult) String() string { return proto.CompactTextString(m) } func (m *OrderResult) String() string { return proto.CompactTextString(m) }
func (*OrderResult) ProtoMessage() {} func (*OrderResult) ProtoMessage() {}
func (*OrderResult) Descriptor() ([]byte, []int) { func (*OrderResult) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{25} return fileDescriptor_demo_e1d03823e14b5fb0, []int{25}
} }
func (m *OrderResult) XXX_Unmarshal(b []byte) error { func (m *OrderResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderResult.Unmarshal(m, b) return xxx_messageInfo_OrderResult.Unmarshal(m, b)
@ -1235,7 +1235,7 @@ func (m *SendOrderConfirmationRequest) Reset() { *m = SendOrderConfirmat
func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) } func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) }
func (*SendOrderConfirmationRequest) ProtoMessage() {} func (*SendOrderConfirmationRequest) ProtoMessage() {}
func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) { func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{26} return fileDescriptor_demo_e1d03823e14b5fb0, []int{26}
} }
func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error { func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b) return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b)
@ -1269,106 +1269,6 @@ func (m *SendOrderConfirmationRequest) GetOrder() *OrderResult {
return nil return nil
} }
type CreateOrderRequest struct {
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency" json:"user_currency,omitempty"`
Address *Address `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CreateOrderRequest) Reset() { *m = CreateOrderRequest{} }
func (m *CreateOrderRequest) String() string { return proto.CompactTextString(m) }
func (*CreateOrderRequest) ProtoMessage() {}
func (*CreateOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{27}
}
func (m *CreateOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOrderRequest.Unmarshal(m, b)
}
func (m *CreateOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CreateOrderRequest.Marshal(b, m, deterministic)
}
func (dst *CreateOrderRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_CreateOrderRequest.Merge(dst, src)
}
func (m *CreateOrderRequest) XXX_Size() int {
return xxx_messageInfo_CreateOrderRequest.Size(m)
}
func (m *CreateOrderRequest) XXX_DiscardUnknown() {
xxx_messageInfo_CreateOrderRequest.DiscardUnknown(m)
}
var xxx_messageInfo_CreateOrderRequest proto.InternalMessageInfo
func (m *CreateOrderRequest) GetUserId() string {
if m != nil {
return m.UserId
}
return ""
}
func (m *CreateOrderRequest) GetUserCurrency() string {
if m != nil {
return m.UserCurrency
}
return ""
}
func (m *CreateOrderRequest) GetAddress() *Address {
if m != nil {
return m.Address
}
return nil
}
type CreateOrderResponse struct {
Items []*OrderItem `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
ShippingCost *Money `protobuf:"bytes,2,opt,name=shipping_cost,json=shippingCost" json:"shipping_cost,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CreateOrderResponse) Reset() { *m = CreateOrderResponse{} }
func (m *CreateOrderResponse) String() string { return proto.CompactTextString(m) }
func (*CreateOrderResponse) ProtoMessage() {}
func (*CreateOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{28}
}
func (m *CreateOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOrderResponse.Unmarshal(m, b)
}
func (m *CreateOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CreateOrderResponse.Marshal(b, m, deterministic)
}
func (dst *CreateOrderResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_CreateOrderResponse.Merge(dst, src)
}
func (m *CreateOrderResponse) XXX_Size() int {
return xxx_messageInfo_CreateOrderResponse.Size(m)
}
func (m *CreateOrderResponse) XXX_DiscardUnknown() {
xxx_messageInfo_CreateOrderResponse.DiscardUnknown(m)
}
var xxx_messageInfo_CreateOrderResponse proto.InternalMessageInfo
func (m *CreateOrderResponse) GetItems() []*OrderItem {
if m != nil {
return m.Items
}
return nil
}
func (m *CreateOrderResponse) GetShippingCost() *Money {
if m != nil {
return m.ShippingCost
}
return nil
}
type PlaceOrderRequest struct { type PlaceOrderRequest struct {
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"` UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency" json:"user_currency,omitempty"` UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency" json:"user_currency,omitempty"`
@ -1384,7 +1284,7 @@ func (m *PlaceOrderRequest) Reset() { *m = PlaceOrderRequest{} }
func (m *PlaceOrderRequest) String() string { return proto.CompactTextString(m) } func (m *PlaceOrderRequest) String() string { return proto.CompactTextString(m) }
func (*PlaceOrderRequest) ProtoMessage() {} func (*PlaceOrderRequest) ProtoMessage() {}
func (*PlaceOrderRequest) Descriptor() ([]byte, []int) { func (*PlaceOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{29} return fileDescriptor_demo_e1d03823e14b5fb0, []int{27}
} }
func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error { func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b) return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b)
@ -1450,7 +1350,7 @@ func (m *PlaceOrderResponse) Reset() { *m = PlaceOrderResponse{} }
func (m *PlaceOrderResponse) String() string { return proto.CompactTextString(m) } func (m *PlaceOrderResponse) String() string { return proto.CompactTextString(m) }
func (*PlaceOrderResponse) ProtoMessage() {} func (*PlaceOrderResponse) ProtoMessage() {}
func (*PlaceOrderResponse) Descriptor() ([]byte, []int) { func (*PlaceOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{30} return fileDescriptor_demo_e1d03823e14b5fb0, []int{28}
} }
func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error { func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b) return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b)
@ -1505,8 +1405,6 @@ func init() {
proto.RegisterType((*OrderItem)(nil), "hipstershop.OrderItem") proto.RegisterType((*OrderItem)(nil), "hipstershop.OrderItem")
proto.RegisterType((*OrderResult)(nil), "hipstershop.OrderResult") proto.RegisterType((*OrderResult)(nil), "hipstershop.OrderResult")
proto.RegisterType((*SendOrderConfirmationRequest)(nil), "hipstershop.SendOrderConfirmationRequest") proto.RegisterType((*SendOrderConfirmationRequest)(nil), "hipstershop.SendOrderConfirmationRequest")
proto.RegisterType((*CreateOrderRequest)(nil), "hipstershop.CreateOrderRequest")
proto.RegisterType((*CreateOrderResponse)(nil), "hipstershop.CreateOrderResponse")
proto.RegisterType((*PlaceOrderRequest)(nil), "hipstershop.PlaceOrderRequest") proto.RegisterType((*PlaceOrderRequest)(nil), "hipstershop.PlaceOrderRequest")
proto.RegisterType((*PlaceOrderResponse)(nil), "hipstershop.PlaceOrderResponse") proto.RegisterType((*PlaceOrderResponse)(nil), "hipstershop.PlaceOrderResponse")
} }
@ -2169,7 +2067,6 @@ var _EmailService_serviceDesc = grpc.ServiceDesc{
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type CheckoutServiceClient interface { type CheckoutServiceClient interface {
CreateOrder(ctx context.Context, in *CreateOrderRequest, opts ...grpc.CallOption) (*CreateOrderResponse, error)
PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error)
} }
@ -2181,15 +2078,6 @@ func NewCheckoutServiceClient(cc *grpc.ClientConn) CheckoutServiceClient {
return &checkoutServiceClient{cc} return &checkoutServiceClient{cc}
} }
func (c *checkoutServiceClient) CreateOrder(ctx context.Context, in *CreateOrderRequest, opts ...grpc.CallOption) (*CreateOrderResponse, error) {
out := new(CreateOrderResponse)
err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/CreateOrder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) { func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) {
out := new(PlaceOrderResponse) out := new(PlaceOrderResponse)
err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/PlaceOrder", in, out, opts...) err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/PlaceOrder", in, out, opts...)
@ -2201,7 +2089,6 @@ func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRe
// CheckoutServiceServer is the server API for CheckoutService service. // CheckoutServiceServer is the server API for CheckoutService service.
type CheckoutServiceServer interface { type CheckoutServiceServer interface {
CreateOrder(context.Context, *CreateOrderRequest) (*CreateOrderResponse, error)
PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error)
} }
@ -2209,24 +2096,6 @@ func RegisterCheckoutServiceServer(s *grpc.Server, srv CheckoutServiceServer) {
s.RegisterService(&_CheckoutService_serviceDesc, srv) s.RegisterService(&_CheckoutService_serviceDesc, srv)
} }
func _CheckoutService_CreateOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateOrderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(CheckoutServiceServer).CreateOrder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/hipstershop.CheckoutService/CreateOrder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(CheckoutServiceServer).CreateOrder(ctx, req.(*CreateOrderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PlaceOrderRequest) in := new(PlaceOrderRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@ -2249,10 +2118,6 @@ var _CheckoutService_serviceDesc = grpc.ServiceDesc{
ServiceName: "hipstershop.CheckoutService", ServiceName: "hipstershop.CheckoutService",
HandlerType: (*CheckoutServiceServer)(nil), HandlerType: (*CheckoutServiceServer)(nil),
Methods: []grpc.MethodDesc{ Methods: []grpc.MethodDesc{
{
MethodName: "CreateOrder",
Handler: _CheckoutService_CreateOrder_Handler,
},
{ {
MethodName: "PlaceOrder", MethodName: "PlaceOrder",
Handler: _CheckoutService_PlaceOrder_Handler, Handler: _CheckoutService_PlaceOrder_Handler,
@ -2262,98 +2127,95 @@ var _CheckoutService_serviceDesc = grpc.ServiceDesc{
Metadata: "demo.proto", Metadata: "demo.proto",
} }
func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_bbfc9458084e7e4b) } func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_e1d03823e14b5fb0) }
var fileDescriptor_demo_bbfc9458084e7e4b = []byte{ var fileDescriptor_demo_e1d03823e14b5fb0 = []byte{
// 1435 bytes of a gzipped FileDescriptorProto // 1389 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x72, 0xd3, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x72, 0xd3, 0xc6,
0x14, 0x8e, 0x1c, 0x3b, 0xb6, 0x8f, 0x63, 0x27, 0x59, 0x12, 0x6a, 0x14, 0x7e, 0xd2, 0xcd, 0x40, 0x17, 0x8f, 0x12, 0x3b, 0xb6, 0x8f, 0x63, 0x27, 0xd9, 0x7f, 0xc2, 0xdf, 0x28, 0x7c, 0xa4, 0x9b,
0xa1, 0x40, 0xca, 0xa4, 0x9d, 0xe1, 0xa2, 0xb4, 0x94, 0x31, 0x19, 0xe3, 0x19, 0x28, 0x54, 0x81, 0x81, 0x42, 0x81, 0x94, 0x49, 0x3b, 0xc3, 0x45, 0x69, 0x29, 0x63, 0x32, 0xc6, 0x33, 0x50, 0xa8,
0x0e, 0x1d, 0x3a, 0xf5, 0x08, 0x69, 0xc1, 0x2a, 0x91, 0x56, 0xd9, 0x5d, 0x65, 0x6a, 0xa6, 0x57, 0x02, 0x1d, 0x3a, 0x74, 0xea, 0x11, 0xda, 0x05, 0xab, 0x44, 0x5a, 0xb1, 0xbb, 0xca, 0xd4, 0x5c,
0xf4, 0x01, 0x7a, 0xdf, 0x47, 0xe8, 0x03, 0xb4, 0xef, 0xd0, 0xfb, 0xbe, 0x42, 0x9f, 0xa3, 0xb3, 0xb6, 0x0f, 0xd0, 0xfb, 0x3e, 0x42, 0x5f, 0xa0, 0xef, 0xd0, 0xfb, 0xbe, 0x42, 0x9f, 0xa3, 0xb3,
0x2b, 0xad, 0xfe, 0x6c, 0x25, 0xe1, 0xa6, 0xbd, 0xd3, 0xee, 0x7e, 0x7b, 0xce, 0xb7, 0xe7, 0xdf, 0x2b, 0xad, 0xbe, 0x62, 0x25, 0xe1, 0xa6, 0x77, 0xda, 0xb3, 0xbf, 0x3d, 0xe7, 0x77, 0xce, 0x9e,
0x06, 0x70, 0x89, 0x4f, 0x77, 0x42, 0x46, 0x05, 0x45, 0x9d, 0x89, 0x17, 0x72, 0x41, 0x18, 0x9f, 0x73, 0xf6, 0x08, 0x80, 0xd0, 0x80, 0xed, 0x46, 0x9c, 0x49, 0x86, 0xba, 0x53, 0x3f, 0x12, 0x92,
0xd0, 0x10, 0xef, 0x41, 0x6b, 0x60, 0x33, 0x31, 0x12, 0xc4, 0x47, 0x17, 0x00, 0x42, 0x46, 0xdd, 0x72, 0x31, 0x65, 0x11, 0xde, 0x87, 0xf6, 0xd0, 0xe5, 0x72, 0x2c, 0x69, 0x80, 0x2e, 0x02, 0x44,
0xc8, 0x11, 0x63, 0xcf, 0xed, 0x1b, 0x5b, 0xc6, 0xd5, 0xb6, 0xd5, 0x4e, 0x76, 0x46, 0x2e, 0x32, 0x9c, 0x91, 0xd8, 0x93, 0x13, 0x9f, 0x0c, 0xac, 0x6d, 0xeb, 0x5a, 0xc7, 0xe9, 0xa4, 0x92, 0x31,
0xa1, 0x75, 0x18, 0xd9, 0x81, 0xf0, 0xc4, 0xb4, 0x5f, 0xdb, 0x32, 0xae, 0x36, 0xac, 0x74, 0x8d, 0x41, 0x36, 0xb4, 0xdf, 0xc5, 0x6e, 0x28, 0x7d, 0x39, 0x1b, 0x2c, 0x6e, 0x5b, 0xd7, 0x9a, 0x4e,
0x9f, 0x42, 0xef, 0x9e, 0xeb, 0x4a, 0x29, 0x16, 0x39, 0x8c, 0x08, 0x17, 0xe8, 0x03, 0x68, 0x46, 0xb6, 0xc6, 0xcf, 0xa0, 0x7f, 0x9f, 0x10, 0xa5, 0xc5, 0xa1, 0xef, 0x62, 0x2a, 0x24, 0xfa, 0x3f,
0x9c, 0xb0, 0x4c, 0xd2, 0x92, 0x5c, 0x8e, 0x5c, 0x74, 0x0d, 0xea, 0x9e, 0x20, 0xbe, 0x12, 0xd1, 0xb4, 0x62, 0x41, 0x79, 0xae, 0x69, 0x59, 0x2d, 0xc7, 0x04, 0x5d, 0x87, 0x86, 0x2f, 0x69, 0xa0,
0xd9, 0xdd, 0xd8, 0xc9, 0xb1, 0xd9, 0xd1, 0x54, 0x2c, 0x05, 0xc1, 0xd7, 0x61, 0x75, 0xcf, 0x0f, 0x55, 0x74, 0xf7, 0x36, 0x77, 0x0b, 0x6c, 0x76, 0x0d, 0x15, 0x47, 0x43, 0xf0, 0x0d, 0x58, 0xdb,
0xc5, 0x54, 0x6e, 0x9f, 0x24, 0x17, 0x5f, 0x83, 0xde, 0x90, 0x88, 0x53, 0x41, 0x1f, 0x42, 0x5d, 0x0f, 0x22, 0x39, 0x53, 0xe2, 0xd3, 0xf4, 0xe2, 0xeb, 0xd0, 0x1f, 0x51, 0x79, 0x26, 0xe8, 0x23,
0xe2, 0xaa, 0x39, 0x5e, 0x87, 0x86, 0x24, 0xc0, 0xfb, 0xb5, 0xad, 0xc5, 0x6a, 0x92, 0x31, 0x06, 0x68, 0x28, 0x5c, 0x3d, 0xc7, 0x1b, 0xd0, 0x54, 0x04, 0xc4, 0x60, 0x71, 0x7b, 0xa9, 0x9e, 0x64,
0x37, 0xa1, 0xa1, 0x58, 0xe2, 0x6f, 0xc1, 0x7c, 0xe8, 0x71, 0x61, 0x11, 0x87, 0xfa, 0x3e, 0x09, 0x82, 0xc1, 0x2d, 0x68, 0x6a, 0x96, 0xf8, 0x3b, 0xb0, 0x1f, 0xf9, 0x42, 0x3a, 0xd4, 0x63, 0x41,
0x5c, 0x5b, 0x78, 0x34, 0xe0, 0x27, 0x1a, 0xe4, 0x12, 0x74, 0x32, 0xb3, 0xc7, 0x2a, 0xdb, 0x16, 0x40, 0x43, 0xe2, 0x4a, 0x9f, 0x85, 0xe2, 0xd4, 0x80, 0x5c, 0x86, 0x6e, 0x1e, 0xf6, 0xc4, 0x64,
0xa4, 0x76, 0xe7, 0xf8, 0x4b, 0xd8, 0x9c, 0x2b, 0x97, 0x87, 0x34, 0xe0, 0xa4, 0x7c, 0xdf, 0x98, 0xc7, 0x81, 0x2c, 0xee, 0x02, 0x7f, 0x05, 0x5b, 0x73, 0xf5, 0x8a, 0x88, 0x85, 0x82, 0x56, 0xcf,
0xb9, 0xff, 0x9b, 0x01, 0xcd, 0x27, 0xf1, 0x12, 0xf5, 0xa0, 0x96, 0x12, 0xa8, 0x79, 0x2e, 0x42, 0x5b, 0xc7, 0xce, 0xff, 0x6e, 0x41, 0xeb, 0x69, 0xb2, 0x44, 0x7d, 0x58, 0xcc, 0x08, 0x2c, 0xfa,
0x50, 0x0f, 0x6c, 0x9f, 0x28, 0x6f, 0xb4, 0x2d, 0xf5, 0x8d, 0xb6, 0xa0, 0xe3, 0x12, 0xee, 0x30, 0x04, 0x21, 0x68, 0x84, 0x6e, 0x40, 0xf5, 0x6d, 0x74, 0x1c, 0xfd, 0x8d, 0xb6, 0xa1, 0x4b, 0xa8,
0x2f, 0x94, 0x8a, 0xfa, 0x8b, 0xea, 0x28, 0xbf, 0x85, 0xfa, 0xd0, 0x0c, 0x3d, 0x47, 0x44, 0x8c, 0xf0, 0xb8, 0x1f, 0x29, 0x43, 0x83, 0x25, 0xbd, 0x55, 0x14, 0xa1, 0x01, 0xb4, 0x22, 0xdf, 0x93,
0xf4, 0xeb, 0xea, 0x54, 0x2f, 0xd1, 0x27, 0xd0, 0x0e, 0x99, 0xe7, 0x90, 0x71, 0xc4, 0xdd, 0x7e, 0x31, 0xa7, 0x83, 0x86, 0xde, 0x35, 0x4b, 0xf4, 0x29, 0x74, 0x22, 0xee, 0x7b, 0x74, 0x12, 0x0b,
0x43, 0xb9, 0x18, 0x15, 0xac, 0xf7, 0x88, 0x06, 0x64, 0x6a, 0xb5, 0x14, 0xe8, 0x19, 0x77, 0xf1, 0x32, 0x68, 0xea, 0x2b, 0x46, 0xa5, 0xe8, 0x3d, 0x66, 0x21, 0x9d, 0x39, 0x6d, 0x0d, 0x7a, 0x2e,
0x03, 0x58, 0x97, 0x8f, 0x4b, 0xf8, 0x65, 0xaf, 0xba, 0x05, 0xad, 0xe4, 0x09, 0xf1, 0x93, 0x3a, 0x08, 0x7e, 0x08, 0x1b, 0xca, 0xb9, 0x94, 0x5f, 0xee, 0xd5, 0x6d, 0x68, 0xa7, 0x2e, 0x24, 0x2e,
0xbb, 0xeb, 0x05, 0x39, 0xc9, 0x05, 0x2b, 0x45, 0xe1, 0x6d, 0x58, 0x1b, 0x12, 0x2d, 0x48, 0x5b, 0x75, 0xf7, 0x36, 0x4a, 0x7a, 0xd2, 0x03, 0x4e, 0x86, 0xc2, 0x3b, 0xb0, 0x3e, 0xa2, 0x46, 0x91,
0xbd, 0xf4, 0x5e, 0x7c, 0x13, 0x36, 0xf6, 0x89, 0xcd, 0x9c, 0x49, 0xa6, 0x30, 0x06, 0xae, 0x43, 0x89, 0x7a, 0xc5, 0x5f, 0x7c, 0x0b, 0x36, 0x0f, 0xa8, 0xcb, 0xbd, 0x69, 0x6e, 0x30, 0x01, 0x6e,
0xe3, 0x30, 0x22, 0x6c, 0x9a, 0x60, 0xe3, 0x05, 0x7e, 0x00, 0x67, 0xcb, 0xf0, 0x84, 0xdf, 0x0e, 0x40, 0xf3, 0x5d, 0x4c, 0xf9, 0x2c, 0xc5, 0x26, 0x0b, 0xfc, 0x10, 0xce, 0x55, 0xe1, 0x29, 0xbf,
0x34, 0x19, 0xe1, 0xd1, 0xc1, 0x09, 0xf4, 0x34, 0x08, 0x07, 0xb0, 0x32, 0x24, 0xe2, 0x9b, 0x88, 0x5d, 0x68, 0x71, 0x2a, 0xe2, 0xc3, 0x53, 0xe8, 0x19, 0x10, 0x0e, 0x61, 0x75, 0x44, 0xe5, 0xb7,
0x0a, 0xa2, 0x55, 0xee, 0x40, 0xd3, 0x76, 0x5d, 0x46, 0x38, 0x57, 0x4a, 0xcb, 0x22, 0xee, 0xc5, 0x31, 0x93, 0xd4, 0x98, 0xdc, 0x85, 0x96, 0x4b, 0x08, 0xa7, 0x42, 0x68, 0xa3, 0x55, 0x15, 0xf7,
0x67, 0x96, 0x06, 0xbd, 0x5f, 0x54, 0xde, 0x83, 0xd5, 0x4c, 0x5f, 0xc2, 0xf9, 0x26, 0xb4, 0x1c, 0x93, 0x3d, 0xc7, 0x80, 0x3e, 0x2c, 0x2b, 0xef, 0xc3, 0x5a, 0x6e, 0x2f, 0xe5, 0x7c, 0x0b, 0xda,
0xca, 0x85, 0xf2, 0x8d, 0x51, 0xe9, 0x9b, 0xa6, 0xc4, 0x48, 0xd7, 0x50, 0x58, 0xdd, 0x9f, 0x78, 0x1e, 0x13, 0x52, 0xdf, 0x8d, 0x55, 0x7b, 0x37, 0x2d, 0x85, 0x51, 0x57, 0xc3, 0x60, 0xed, 0x60,
0xe1, 0x63, 0xe6, 0x12, 0xf6, 0x9f, 0x70, 0xfe, 0x0c, 0xd6, 0x72, 0x0a, 0xb3, 0xf0, 0x16, 0xcc, 0xea, 0x47, 0x4f, 0x38, 0xa1, 0xfc, 0x3f, 0xe1, 0xfc, 0x39, 0xac, 0x17, 0x0c, 0xe6, 0xe9, 0x2d,
0x76, 0xde, 0x78, 0xc1, 0xeb, 0x2c, 0x77, 0x40, 0x6f, 0x8d, 0x5c, 0xfc, 0xab, 0x01, 0xcd, 0x44, 0xb9, 0xeb, 0xbd, 0xf5, 0xc3, 0x37, 0x79, 0xed, 0x80, 0x11, 0x8d, 0x09, 0xfe, 0xcd, 0x82, 0x56,
0x2f, 0xba, 0x0c, 0x3d, 0x2e, 0x18, 0x21, 0x62, 0x9c, 0x67, 0xd9, 0xb6, 0xba, 0xf1, 0xae, 0x86, 0x6a, 0x17, 0x5d, 0x81, 0xbe, 0x90, 0x9c, 0x52, 0x39, 0x29, 0xb2, 0xec, 0x38, 0xbd, 0x44, 0x6a,
0x21, 0xa8, 0x3b, 0xba, 0x8c, 0xb5, 0x2d, 0xf5, 0x2d, 0x03, 0x80, 0x0b, 0x5b, 0x90, 0x24, 0xde, 0x60, 0x08, 0x1a, 0x9e, 0x69, 0x63, 0x1d, 0x47, 0x7f, 0xab, 0x04, 0x10, 0xd2, 0x95, 0x34, 0xcd,
0xe3, 0x85, 0x8c, 0x74, 0x87, 0x46, 0x81, 0x60, 0x53, 0x1d, 0xe9, 0xc9, 0x12, 0x9d, 0x83, 0xd6, 0xf7, 0x64, 0xa1, 0x32, 0xdd, 0x63, 0x71, 0x28, 0xf9, 0xcc, 0x64, 0x7a, 0xba, 0x44, 0xe7, 0xa1,
0x5b, 0x2f, 0x1c, 0x3b, 0xd4, 0x25, 0x2a, 0xd0, 0x1b, 0x56, 0xf3, 0xad, 0x17, 0x0e, 0xa8, 0x4b, 0xfd, 0xde, 0x8f, 0x26, 0x1e, 0x23, 0x54, 0x27, 0x7a, 0xd3, 0x69, 0xbd, 0xf7, 0xa3, 0x21, 0x23,
0xf0, 0x73, 0x68, 0x28, 0x53, 0xa2, 0x6d, 0xe8, 0x3a, 0x11, 0x63, 0x24, 0x70, 0xa6, 0x31, 0x30, 0x14, 0xbf, 0x80, 0xa6, 0x0e, 0x25, 0xda, 0x81, 0x9e, 0x17, 0x73, 0x4e, 0x43, 0x6f, 0x96, 0x00,
0x66, 0xb3, 0xac, 0x37, 0x25, 0x5a, 0x2a, 0x8e, 0x02, 0x4f, 0x70, 0xc5, 0x66, 0xd1, 0x8a, 0x17, 0x13, 0x36, 0x2b, 0x46, 0xa8, 0xd0, 0xca, 0x70, 0x1c, 0xfa, 0x52, 0x68, 0x36, 0x4b, 0x4e, 0xb2,
0x72, 0x37, 0xb0, 0x03, 0xca, 0x15, 0x9d, 0x86, 0x15, 0x2f, 0xf0, 0x10, 0x2e, 0x0e, 0x89, 0xd8, 0x50, 0xd2, 0xd0, 0x0d, 0x99, 0xd0, 0x74, 0x9a, 0x4e, 0xb2, 0xc0, 0x23, 0xb8, 0x34, 0xa2, 0xf2,
0x8f, 0xc2, 0x90, 0x32, 0x41, 0xdc, 0x41, 0x2c, 0xc7, 0x23, 0x59, 0x5c, 0x5e, 0x86, 0x5e, 0x41, 0x20, 0x8e, 0x22, 0xc6, 0x25, 0x25, 0xc3, 0x44, 0x8f, 0x4f, 0xf3, 0xbc, 0xbc, 0x02, 0xfd, 0x92,
0xa5, 0x2e, 0x08, 0xdd, 0xbc, 0x4e, 0x8e, 0xbf, 0x87, 0x73, 0x83, 0x74, 0x23, 0x38, 0x22, 0x8c, 0x49, 0xd3, 0x10, 0x7a, 0x45, 0x9b, 0x02, 0xff, 0x00, 0xe7, 0x87, 0x99, 0x20, 0x3c, 0xa2, 0x5c,
0x7b, 0x34, 0xd0, 0x4e, 0xbe, 0x02, 0xf5, 0x57, 0x8c, 0xfa, 0xc7, 0xc4, 0x88, 0x3a, 0x97, 0x25, 0xf8, 0x2c, 0x34, 0x97, 0x7c, 0x15, 0x1a, 0xaf, 0x39, 0x0b, 0x4e, 0xc8, 0x11, 0xbd, 0xaf, 0x5a,
0x4d, 0xd0, 0xf8, 0x61, 0xb1, 0x25, 0x97, 0x04, 0x55, 0x06, 0xf8, 0xc7, 0x80, 0xde, 0x80, 0x11, 0x9a, 0x64, 0x89, 0x63, 0x49, 0x24, 0x97, 0x25, 0xd3, 0x01, 0xf8, 0xc7, 0x82, 0xfe, 0x90, 0x53,
0xd7, 0x93, 0xf5, 0xd8, 0x1d, 0x05, 0xaf, 0x28, 0xba, 0x01, 0xc8, 0x51, 0x3b, 0x63, 0xc7, 0x66, 0xe2, 0xab, 0x7e, 0x4c, 0xc6, 0xe1, 0x6b, 0x86, 0x6e, 0x02, 0xf2, 0xb4, 0x64, 0xe2, 0xb9, 0x9c,
0xee, 0x38, 0x88, 0xfc, 0x97, 0x84, 0x25, 0xf6, 0x58, 0x75, 0x52, 0xec, 0xd7, 0x6a, 0x1f, 0x5d, 0x4c, 0xc2, 0x38, 0x78, 0x45, 0x79, 0x1a, 0x8f, 0x35, 0x2f, 0xc3, 0x7e, 0xa3, 0xe5, 0xe8, 0x2a,
0x81, 0x95, 0x3c, 0xda, 0x39, 0x3a, 0x4a, 0x5a, 0x4e, 0x37, 0x83, 0x0e, 0x8e, 0x8e, 0xd0, 0x17, 0xac, 0x16, 0xd1, 0xde, 0xd1, 0x51, 0xfa, 0xe4, 0xf4, 0x72, 0xe8, 0xf0, 0xe8, 0x08, 0x7d, 0x09,
0xb0, 0x99, 0xc7, 0x91, 0x9f, 0x42, 0x8f, 0xa9, 0xf2, 0x38, 0x9e, 0x12, 0x9b, 0x25, 0xb6, 0xeb, 0x5b, 0x45, 0x1c, 0xfd, 0x39, 0xf2, 0xb9, 0x6e, 0x8f, 0x93, 0x19, 0x75, 0x79, 0x1a, 0xbb, 0x41,
0x67, 0x77, 0xf6, 0x52, 0xc0, 0x77, 0xc4, 0x66, 0xe8, 0x2e, 0x9c, 0xaf, 0xb8, 0xee, 0xd3, 0x40, 0x7e, 0x66, 0x3f, 0x03, 0x7c, 0x4f, 0x5d, 0x8e, 0xee, 0xc1, 0x85, 0x9a, 0xe3, 0x01, 0x0b, 0xe5,
0x4c, 0x94, 0xcb, 0x1b, 0xd6, 0xb9, 0x79, 0xf7, 0x1f, 0x49, 0x00, 0x9e, 0x42, 0x77, 0x30, 0xb1, 0x54, 0x5f, 0x79, 0xd3, 0x39, 0x3f, 0xef, 0xfc, 0x63, 0x05, 0xc0, 0x33, 0xe8, 0x0d, 0xa7, 0x2e,
0xd9, 0xeb, 0x34, 0xa7, 0x3f, 0x86, 0x25, 0xdb, 0x97, 0x11, 0x72, 0x8c, 0xf1, 0x12, 0x04, 0xba, 0x7f, 0x93, 0xd5, 0xf4, 0x27, 0xb0, 0xec, 0x06, 0x2a, 0x43, 0x4e, 0x08, 0x5e, 0x8a, 0x40, 0x77,
0x03, 0x9d, 0x9c, 0xf6, 0xa4, 0x21, 0x6e, 0x16, 0x33, 0xa4, 0x60, 0x44, 0x0b, 0x32, 0x26, 0xf8, 0xa1, 0x5b, 0xb0, 0x9e, 0x3e, 0x88, 0x5b, 0xe5, 0x0a, 0x29, 0x05, 0xd1, 0x81, 0x9c, 0x09, 0xbe,
0x36, 0xf4, 0xb4, 0xea, 0xcc, 0xf5, 0x82, 0xd9, 0x01, 0xb7, 0x1d, 0xf5, 0x84, 0x34, 0x59, 0xba, 0x03, 0x7d, 0x63, 0x3a, 0xbf, 0x7a, 0xc9, 0xdd, 0x50, 0xb8, 0x9e, 0x76, 0x21, 0x2b, 0x96, 0x5e,
0xb9, 0xdd, 0x91, 0x8b, 0x7f, 0x80, 0xb6, 0xca, 0x30, 0xd5, 0xf3, 0x75, 0x37, 0x36, 0x4e, 0xec, 0x41, 0x3a, 0x26, 0xf8, 0x47, 0xe8, 0xe8, 0x0a, 0xd3, 0x6f, 0xbe, 0x79, 0x8d, 0xad, 0x53, 0x5f,
0xc6, 0x32, 0x2a, 0x64, 0x65, 0x48, 0x78, 0xce, 0x8d, 0x0a, 0x79, 0x8e, 0xdf, 0xd5, 0xa0, 0xa3, 0x63, 0x95, 0x15, 0xaa, 0x33, 0xa4, 0x3c, 0xe7, 0x66, 0x85, 0xda, 0xc7, 0xbf, 0x2c, 0x42, 0xd7,
0x53, 0x38, 0x3a, 0x10, 0x32, 0x51, 0xa8, 0x5c, 0x66, 0x84, 0x9a, 0x6a, 0x3d, 0x72, 0xd1, 0x2d, 0x94, 0x70, 0x7c, 0x28, 0x55, 0xa1, 0x30, 0xb5, 0xcc, 0x09, 0xb5, 0xf4, 0x7a, 0x4c, 0xd0, 0x6d,
0x58, 0xe7, 0x13, 0x2f, 0x0c, 0x65, 0x6e, 0xe7, 0x93, 0x3c, 0x8e, 0x26, 0xa4, 0xcf, 0x9e, 0xa6, 0xd8, 0x10, 0x53, 0x3f, 0x8a, 0x54, 0x6d, 0x17, 0x8b, 0x3c, 0xc9, 0x26, 0x64, 0xf6, 0x9e, 0x65,
0xc9, 0x8e, 0x6e, 0x43, 0x37, 0xbd, 0xa1, 0xd8, 0x2c, 0x56, 0xb2, 0x59, 0xd6, 0xc0, 0x01, 0xe5, 0xc5, 0x8e, 0xee, 0x40, 0x2f, 0x3b, 0xa1, 0xd9, 0x2c, 0xd5, 0xb2, 0x59, 0x31, 0xc0, 0x21, 0x13,
0x02, 0xdd, 0x85, 0xd5, 0xf4, 0xa2, 0xae, 0x0d, 0xf5, 0x63, 0x2a, 0xd8, 0x8a, 0x46, 0xeb, 0x9a, 0x12, 0xdd, 0x83, 0xb5, 0xec, 0xa0, 0xe9, 0x0d, 0x8d, 0x13, 0x3a, 0xd8, 0xaa, 0x41, 0x9b, 0x9e,
0x71, 0x43, 0x57, 0xb2, 0x86, 0xaa, 0x64, 0x67, 0x0b, 0xb7, 0x52, 0x83, 0xea, 0x52, 0xe6, 0xc2, 0x71, 0xd3, 0x74, 0xb2, 0xa6, 0xee, 0x64, 0xe7, 0x4a, 0xa7, 0xb2, 0x80, 0x9a, 0x56, 0x46, 0xe0,
0xf9, 0x7d, 0x12, 0xb8, 0x6a, 0x7f, 0x40, 0x83, 0x57, 0x1e, 0xf3, 0x55, 0xd8, 0xe4, 0xda, 0x0d, 0xc2, 0x01, 0x0d, 0x89, 0x96, 0x0f, 0x59, 0xf8, 0xda, 0xe7, 0x81, 0x4e, 0x9b, 0xc2, 0x73, 0x43,
0xf1, 0x6d, 0xef, 0x40, 0xb7, 0x1b, 0xb5, 0x40, 0x3b, 0xd0, 0x50, 0xa6, 0x49, 0x6c, 0xdc, 0x9f, 0x03, 0xd7, 0x3f, 0x34, 0xcf, 0x8d, 0x5e, 0xa0, 0x5d, 0x68, 0xea, 0xd0, 0xa4, 0x31, 0x1e, 0x1c,
0xd5, 0x11, 0xdb, 0xd4, 0x8a, 0x61, 0xf8, 0x9d, 0x01, 0x68, 0xc0, 0x88, 0x2d, 0x48, 0xa1, 0x48, 0xb7, 0x91, 0xc4, 0xd4, 0x49, 0x60, 0xf8, 0x6f, 0x0b, 0xd6, 0x9f, 0x1e, 0xba, 0x1e, 0x2d, 0xf5,
0x57, 0x8e, 0x1a, 0xdb, 0xd0, 0x55, 0x07, 0xba, 0x16, 0x24, 0x86, 0x5e, 0x96, 0x9b, 0xba, 0x1c, 0xe8, 0xda, 0x49, 0x63, 0x07, 0x7a, 0x7a, 0xc3, 0xb4, 0x82, 0x34, 0xce, 0x2b, 0x4a, 0x68, 0xba,
0xe4, 0x4b, 0xfc, 0xe2, 0x29, 0x4a, 0x3c, 0xfe, 0x19, 0xce, 0x14, 0x38, 0x24, 0xd1, 0x98, 0xda, 0x41, 0xb1, 0xc3, 0x2f, 0x9d, 0xa5, 0xc3, 0x67, 0x9e, 0x34, 0x8b, 0x9e, 0x54, 0x72, 0x7b, 0xf9,
0xcb, 0x38, 0x85, 0xbd, 0x66, 0xfd, 0x5a, 0x3b, 0x9d, 0x5f, 0xf1, 0xdf, 0x06, 0xac, 0x3d, 0x39, 0xc3, 0x72, 0xfb, 0x01, 0xa0, 0xa2, 0x5b, 0xd9, 0x93, 0x9b, 0x46, 0xc7, 0x3a, 0x53, 0x74, 0xf6,
0xb0, 0x9d, 0xff, 0xd1, 0x02, 0x99, 0x33, 0x1b, 0x79, 0x67, 0x96, 0xd2, 0x7b, 0xe9, 0xfd, 0xd2, 0xfe, 0xb2, 0xa0, 0xab, 0x72, 0xf8, 0x80, 0xf2, 0x23, 0xdf, 0xa3, 0xe8, 0xae, 0x7e, 0x27, 0x74,
0xfb, 0x3e, 0xa0, 0xfc, 0xb3, 0xd2, 0xa9, 0x23, 0x09, 0x10, 0xe3, 0x54, 0x01, 0xb2, 0xfb, 0x97, 0xda, 0x6f, 0x55, 0x7d, 0x2a, 0x8c, 0xae, 0x76, 0x39, 0x99, 0x92, 0xd9, 0x6e, 0x01, 0x7d, 0x01,
0x01, 0x1d, 0x99, 0xc6, 0xfb, 0x84, 0x1d, 0x79, 0x0e, 0x41, 0x77, 0x54, 0xab, 0x54, 0x99, 0xbf, 0xad, 0x74, 0xbe, 0xac, 0x9c, 0x2e, 0x4f, 0x9d, 0xf6, 0xfa, 0xb1, 0x1a, 0xc2, 0x0b, 0xe8, 0x6b,
0x59, 0x7e, 0x53, 0x6e, 0x7a, 0x37, 0x8b, 0x76, 0x8f, 0xc7, 0xdb, 0x05, 0xf4, 0x39, 0x34, 0x93, 0xe8, 0x64, 0x93, 0x2c, 0xba, 0x78, 0x5c, 0x7f, 0x51, 0xc1, 0x5c, 0xf3, 0x7b, 0xbf, 0x5a, 0xb0,
0x11, 0xbb, 0x74, 0xbb, 0x38, 0x78, 0x9b, 0x6b, 0x33, 0x65, 0x04, 0x2f, 0xa0, 0xaf, 0xa0, 0x9d, 0x59, 0x9e, 0x00, 0x8d, 0x5b, 0x3f, 0xc1, 0xff, 0xe6, 0x8c, 0x87, 0xe8, 0xe3, 0x92, 0x9a, 0xfa,
0x0e, 0xf3, 0xe8, 0xc2, 0xac, 0xfc, 0xbc, 0x80, 0xb9, 0xea, 0x77, 0x7f, 0x31, 0x60, 0xa3, 0x38, 0xc1, 0xd4, 0xbe, 0x76, 0x3a, 0x30, 0xb9, 0x00, 0xc5, 0x62, 0x11, 0x36, 0xd3, 0xd1, 0x66, 0xe8,
0x04, 0xeb, 0x67, 0xfd, 0x08, 0x67, 0xe6, 0x4c, 0xc8, 0xe8, 0xa3, 0x82, 0x98, 0xea, 0xd9, 0xdc, 0x4a, 0xf7, 0x90, 0xbd, 0x31, 0x2c, 0x46, 0xb0, 0x52, 0x9c, 0xe3, 0xd0, 0x1c, 0x2f, 0xec, 0x8f,
0xbc, 0x7a, 0x32, 0x30, 0x76, 0x80, 0x64, 0x51, 0x83, 0x8d, 0x64, 0xba, 0x1b, 0xd8, 0xc2, 0x3e, 0x8e, 0x59, 0xaa, 0x8e, 0x55, 0x78, 0x01, 0x3d, 0x00, 0xc8, 0xc7, 0x38, 0x74, 0xa9, 0x1a, 0xea,
0xa0, 0xaf, 0x35, 0x8b, 0x21, 0x2c, 0xe7, 0x47, 0x59, 0x34, 0xe7, 0x15, 0xe6, 0x87, 0x33, 0x9a, 0xf2, 0x7c, 0x67, 0xcf, 0x9d, 0xba, 0xf0, 0x02, 0x7a, 0x09, 0xfd, 0xf2, 0xe0, 0x86, 0x70, 0x09,
0xca, 0x93, 0x25, 0x5e, 0x40, 0xf7, 0x01, 0xb2, 0x49, 0x16, 0x5d, 0x2c, 0x9b, 0xba, 0x38, 0xe2, 0x39, 0x77, 0x08, 0xb4, 0x77, 0x4e, 0xc4, 0x64, 0x51, 0xf8, 0xc3, 0x82, 0xd5, 0x83, 0xb4, 0x3d,
0x9a, 0x73, 0x07, 0x4f, 0xbc, 0x80, 0x5e, 0x40, 0xaf, 0x38, 0xbb, 0x22, 0x5c, 0x40, 0xce, 0x9d, 0x18, 0xff, 0xc7, 0xd0, 0x36, 0xf3, 0x16, 0xba, 0x50, 0x25, 0x5d, 0x1c, 0xfb, 0xec, 0x8b, 0x35,
0x83, 0xcd, 0xed, 0x63, 0x31, 0xa9, 0x15, 0x7e, 0x37, 0x60, 0x65, 0x3f, 0xc9, 0x43, 0xfd, 0xfe, 0xbb, 0x59, 0x04, 0x1e, 0x41, 0x27, 0x1b, 0x83, 0x2a, 0xc9, 0x52, 0x9d, 0xc7, 0xec, 0x4b, 0x75,
0x11, 0xb4, 0xf4, 0xc8, 0x89, 0xce, 0x97, 0x49, 0xe7, 0x27, 0x5f, 0xf3, 0x42, 0xc5, 0x69, 0x6a, 0xdb, 0x19, 0xd9, 0x3f, 0x2d, 0x58, 0x35, 0xc5, 0x6d, 0xc8, 0xbe, 0x84, 0x73, 0xf3, 0xc7, 0x88,
0x81, 0x87, 0xd0, 0x4e, 0x27, 0xc1, 0x52, 0xb0, 0x94, 0x47, 0x52, 0xf3, 0x62, 0xd5, 0x71, 0x4a, 0xb9, 0xd7, 0x76, 0xa3, 0x4a, 0xf8, 0x84, 0xf9, 0x03, 0x2f, 0xa0, 0x11, 0xb4, 0x92, 0x91, 0x42,
0xf6, 0x4f, 0x03, 0x56, 0x74, 0x72, 0x6b, 0xb2, 0x2f, 0xe0, 0xec, 0xfc, 0x49, 0x6a, 0xae, 0xdb, 0xa2, 0xab, 0xe5, 0x5a, 0xa8, 0x1b, 0x38, 0xec, 0x39, 0xed, 0x1b, 0x2f, 0xec, 0x3d, 0x87, 0xfe,
0xae, 0x97, 0x09, 0x1f, 0x33, 0x82, 0xe1, 0x05, 0x34, 0x84, 0x66, 0x3c, 0x55, 0x09, 0x74, 0xa5, 0x53, 0x77, 0x16, 0xd0, 0x30, 0xab, 0xe0, 0x21, 0x2c, 0x27, 0x6f, 0x1e, 0xb2, 0xcb, 0x9a, 0x8b,
0x98, 0x0b, 0x55, 0x33, 0x97, 0x39, 0xa7, 0xd2, 0xe1, 0x85, 0xdd, 0x67, 0xd0, 0x7b, 0x62, 0x4f, 0x6f, 0xb0, 0xbd, 0x35, 0x77, 0x2f, 0x0b, 0xc8, 0x14, 0x56, 0xf6, 0x55, 0x8f, 0x32, 0x4a, 0x5f,
0x7d, 0x12, 0xa4, 0x19, 0x3c, 0x80, 0xa5, 0xb8, 0xed, 0x23, 0xb3, 0x28, 0x39, 0x3f, 0x86, 0x98, 0xa8, 0x5f, 0x82, 0x39, 0xad, 0x1a, 0x5d, 0xaf, 0x64, 0x43, 0x7d, 0x3b, 0xaf, 0xa9, 0xd9, 0x57,
0x9b, 0x73, 0xcf, 0x52, 0x83, 0x4c, 0x60, 0x79, 0x4f, 0xd6, 0x28, 0x2d, 0xf4, 0xb9, 0xfc, 0x55, 0xb0, 0x3a, 0x9c, 0x52, 0xef, 0x2d, 0x8b, 0x33, 0x0f, 0x9e, 0x00, 0xe4, 0x9d, 0xad, 0x92, 0xdd,
0x34, 0xa7, 0x5b, 0xa1, 0x6b, 0xa5, 0x68, 0xa8, 0xee, 0x68, 0x15, 0x39, 0xfb, 0x87, 0x34, 0xfd, 0xc7, 0x3a, 0xb9, 0x7d, 0xb9, 0x76, 0xdf, 0x78, 0xf3, 0x6a, 0x59, 0xff, 0xd4, 0x7f, 0xf6, 0x6f,
0x84, 0x38, 0x6f, 0x68, 0x94, 0x3e, 0xc1, 0x82, 0x4e, 0xae, 0x61, 0xa0, 0x4b, 0xe5, 0x92, 0x58, 0x00, 0x00, 0x00, 0xff, 0xff, 0x59, 0xab, 0x01, 0x43, 0xe2, 0x0f, 0x00, 0x00,
0x6a, 0x67, 0xe6, 0x56, 0x35, 0x20, 0xb5, 0xf8, 0x63, 0x80, 0xac, 0x5c, 0x96, 0x52, 0x66, 0xa6,
0x3d, 0x98, 0x97, 0x2a, 0xcf, 0xb5, 0xc0, 0x97, 0x4b, 0xea, 0xcf, 0x92, 0x4f, 0xff, 0x0d, 0x00,
0x00, 0xff, 0xff, 0x1d, 0x9c, 0xae, 0xb8, 0x3a, 0x11, 0x00, 0x00,
} }

View file

@ -64,20 +64,6 @@ func mustMapEnv(target *string, envKey string) {
*target = v *target = v
} }
func (cs *checkoutService) CreateOrder(ctx context.Context, req *pb.CreateOrderRequest) (*pb.CreateOrderResponse, error) {
log.Printf("[CreateOrder] user_id=%q user_currency=%q", req.UserId, req.UserCurrency)
resp := new(pb.CreateOrderResponse)
prep, err := cs.prepareOrderItemsAndShippingQuoteFromCart(ctx, req.UserId, req.UserCurrency, req.Address)
if err != nil {
return nil, status.Errorf(codes.Internal, err.Error())
}
resp.Items = prep.orderItems
resp.ShippingCost = prep.shippingCostLocalized
return resp, nil
}
func (cs *checkoutService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderRequest) (*pb.PlaceOrderResponse, error) { func (cs *checkoutService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderRequest) (*pb.PlaceOrderResponse, error) {
log.Printf("[PlaceOrder] user_id=%q user_currency=%q", req.UserId, req.UserCurrency) log.Printf("[PlaceOrder] user_id=%q user_currency=%q", req.UserId, req.UserCurrency)

View file

@ -35,7 +35,7 @@ func (m *CartItem) Reset() { *m = CartItem{} }
func (m *CartItem) String() string { return proto.CompactTextString(m) } func (m *CartItem) String() string { return proto.CompactTextString(m) }
func (*CartItem) ProtoMessage() {} func (*CartItem) ProtoMessage() {}
func (*CartItem) Descriptor() ([]byte, []int) { func (*CartItem) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{0} return fileDescriptor_demo_e1d03823e14b5fb0, []int{0}
} }
func (m *CartItem) XXX_Unmarshal(b []byte) error { func (m *CartItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CartItem.Unmarshal(m, b) return xxx_messageInfo_CartItem.Unmarshal(m, b)
@ -81,7 +81,7 @@ func (m *AddItemRequest) Reset() { *m = AddItemRequest{} }
func (m *AddItemRequest) String() string { return proto.CompactTextString(m) } func (m *AddItemRequest) String() string { return proto.CompactTextString(m) }
func (*AddItemRequest) ProtoMessage() {} func (*AddItemRequest) ProtoMessage() {}
func (*AddItemRequest) Descriptor() ([]byte, []int) { func (*AddItemRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{1} return fileDescriptor_demo_e1d03823e14b5fb0, []int{1}
} }
func (m *AddItemRequest) XXX_Unmarshal(b []byte) error { func (m *AddItemRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddItemRequest.Unmarshal(m, b) return xxx_messageInfo_AddItemRequest.Unmarshal(m, b)
@ -126,7 +126,7 @@ func (m *EmptyCartRequest) Reset() { *m = EmptyCartRequest{} }
func (m *EmptyCartRequest) String() string { return proto.CompactTextString(m) } func (m *EmptyCartRequest) String() string { return proto.CompactTextString(m) }
func (*EmptyCartRequest) ProtoMessage() {} func (*EmptyCartRequest) ProtoMessage() {}
func (*EmptyCartRequest) Descriptor() ([]byte, []int) { func (*EmptyCartRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{2} return fileDescriptor_demo_e1d03823e14b5fb0, []int{2}
} }
func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error { func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b) return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b)
@ -164,7 +164,7 @@ func (m *GetCartRequest) Reset() { *m = GetCartRequest{} }
func (m *GetCartRequest) String() string { return proto.CompactTextString(m) } func (m *GetCartRequest) String() string { return proto.CompactTextString(m) }
func (*GetCartRequest) ProtoMessage() {} func (*GetCartRequest) ProtoMessage() {}
func (*GetCartRequest) Descriptor() ([]byte, []int) { func (*GetCartRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{3} return fileDescriptor_demo_e1d03823e14b5fb0, []int{3}
} }
func (m *GetCartRequest) XXX_Unmarshal(b []byte) error { func (m *GetCartRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCartRequest.Unmarshal(m, b) return xxx_messageInfo_GetCartRequest.Unmarshal(m, b)
@ -203,7 +203,7 @@ func (m *Cart) Reset() { *m = Cart{} }
func (m *Cart) String() string { return proto.CompactTextString(m) } func (m *Cart) String() string { return proto.CompactTextString(m) }
func (*Cart) ProtoMessage() {} func (*Cart) ProtoMessage() {}
func (*Cart) Descriptor() ([]byte, []int) { func (*Cart) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{4} return fileDescriptor_demo_e1d03823e14b5fb0, []int{4}
} }
func (m *Cart) XXX_Unmarshal(b []byte) error { func (m *Cart) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Cart.Unmarshal(m, b) return xxx_messageInfo_Cart.Unmarshal(m, b)
@ -247,7 +247,7 @@ func (m *Empty) Reset() { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) } func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage() {} func (*Empty) ProtoMessage() {}
func (*Empty) Descriptor() ([]byte, []int) { func (*Empty) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{5} return fileDescriptor_demo_e1d03823e14b5fb0, []int{5}
} }
func (m *Empty) XXX_Unmarshal(b []byte) error { func (m *Empty) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Empty.Unmarshal(m, b) return xxx_messageInfo_Empty.Unmarshal(m, b)
@ -279,7 +279,7 @@ func (m *ListRecommendationsRequest) Reset() { *m = ListRecommendationsR
func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) } func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) }
func (*ListRecommendationsRequest) ProtoMessage() {} func (*ListRecommendationsRequest) ProtoMessage() {}
func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) { func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{6} return fileDescriptor_demo_e1d03823e14b5fb0, []int{6}
} }
func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error { func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b) return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b)
@ -324,7 +324,7 @@ func (m *ListRecommendationsResponse) Reset() { *m = ListRecommendations
func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) } func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) }
func (*ListRecommendationsResponse) ProtoMessage() {} func (*ListRecommendationsResponse) ProtoMessage() {}
func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) { func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{7} return fileDescriptor_demo_e1d03823e14b5fb0, []int{7}
} }
func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error { func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b) return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b)
@ -366,7 +366,7 @@ func (m *Product) Reset() { *m = Product{} }
func (m *Product) String() string { return proto.CompactTextString(m) } func (m *Product) String() string { return proto.CompactTextString(m) }
func (*Product) ProtoMessage() {} func (*Product) ProtoMessage() {}
func (*Product) Descriptor() ([]byte, []int) { func (*Product) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{8} return fileDescriptor_demo_e1d03823e14b5fb0, []int{8}
} }
func (m *Product) XXX_Unmarshal(b []byte) error { func (m *Product) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Product.Unmarshal(m, b) return xxx_messageInfo_Product.Unmarshal(m, b)
@ -432,7 +432,7 @@ func (m *ListProductsResponse) Reset() { *m = ListProductsResponse{} }
func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) } func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) }
func (*ListProductsResponse) ProtoMessage() {} func (*ListProductsResponse) ProtoMessage() {}
func (*ListProductsResponse) Descriptor() ([]byte, []int) { func (*ListProductsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{9} return fileDescriptor_demo_e1d03823e14b5fb0, []int{9}
} }
func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error { func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b) return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b)
@ -470,7 +470,7 @@ func (m *GetProductRequest) Reset() { *m = GetProductRequest{} }
func (m *GetProductRequest) String() string { return proto.CompactTextString(m) } func (m *GetProductRequest) String() string { return proto.CompactTextString(m) }
func (*GetProductRequest) ProtoMessage() {} func (*GetProductRequest) ProtoMessage() {}
func (*GetProductRequest) Descriptor() ([]byte, []int) { func (*GetProductRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{10} return fileDescriptor_demo_e1d03823e14b5fb0, []int{10}
} }
func (m *GetProductRequest) XXX_Unmarshal(b []byte) error { func (m *GetProductRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProductRequest.Unmarshal(m, b) return xxx_messageInfo_GetProductRequest.Unmarshal(m, b)
@ -508,7 +508,7 @@ func (m *SearchProductsRequest) Reset() { *m = SearchProductsRequest{} }
func (m *SearchProductsRequest) String() string { return proto.CompactTextString(m) } func (m *SearchProductsRequest) String() string { return proto.CompactTextString(m) }
func (*SearchProductsRequest) ProtoMessage() {} func (*SearchProductsRequest) ProtoMessage() {}
func (*SearchProductsRequest) Descriptor() ([]byte, []int) { func (*SearchProductsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{11} return fileDescriptor_demo_e1d03823e14b5fb0, []int{11}
} }
func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error { func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b) return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b)
@ -546,7 +546,7 @@ func (m *SearchProductsResponse) Reset() { *m = SearchProductsResponse{}
func (m *SearchProductsResponse) String() string { return proto.CompactTextString(m) } func (m *SearchProductsResponse) String() string { return proto.CompactTextString(m) }
func (*SearchProductsResponse) ProtoMessage() {} func (*SearchProductsResponse) ProtoMessage() {}
func (*SearchProductsResponse) Descriptor() ([]byte, []int) { func (*SearchProductsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{12} return fileDescriptor_demo_e1d03823e14b5fb0, []int{12}
} }
func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error { func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b) return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b)
@ -585,7 +585,7 @@ func (m *GetQuoteRequest) Reset() { *m = GetQuoteRequest{} }
func (m *GetQuoteRequest) String() string { return proto.CompactTextString(m) } func (m *GetQuoteRequest) String() string { return proto.CompactTextString(m) }
func (*GetQuoteRequest) ProtoMessage() {} func (*GetQuoteRequest) ProtoMessage() {}
func (*GetQuoteRequest) Descriptor() ([]byte, []int) { func (*GetQuoteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{13} return fileDescriptor_demo_e1d03823e14b5fb0, []int{13}
} }
func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error { func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b) return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b)
@ -630,7 +630,7 @@ func (m *GetQuoteResponse) Reset() { *m = GetQuoteResponse{} }
func (m *GetQuoteResponse) String() string { return proto.CompactTextString(m) } func (m *GetQuoteResponse) String() string { return proto.CompactTextString(m) }
func (*GetQuoteResponse) ProtoMessage() {} func (*GetQuoteResponse) ProtoMessage() {}
func (*GetQuoteResponse) Descriptor() ([]byte, []int) { func (*GetQuoteResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{14} return fileDescriptor_demo_e1d03823e14b5fb0, []int{14}
} }
func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error { func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b) return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b)
@ -669,7 +669,7 @@ func (m *ShipOrderRequest) Reset() { *m = ShipOrderRequest{} }
func (m *ShipOrderRequest) String() string { return proto.CompactTextString(m) } func (m *ShipOrderRequest) String() string { return proto.CompactTextString(m) }
func (*ShipOrderRequest) ProtoMessage() {} func (*ShipOrderRequest) ProtoMessage() {}
func (*ShipOrderRequest) Descriptor() ([]byte, []int) { func (*ShipOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{15} return fileDescriptor_demo_e1d03823e14b5fb0, []int{15}
} }
func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error { func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b) return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b)
@ -714,7 +714,7 @@ func (m *ShipOrderResponse) Reset() { *m = ShipOrderResponse{} }
func (m *ShipOrderResponse) String() string { return proto.CompactTextString(m) } func (m *ShipOrderResponse) String() string { return proto.CompactTextString(m) }
func (*ShipOrderResponse) ProtoMessage() {} func (*ShipOrderResponse) ProtoMessage() {}
func (*ShipOrderResponse) Descriptor() ([]byte, []int) { func (*ShipOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{16} return fileDescriptor_demo_e1d03823e14b5fb0, []int{16}
} }
func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error { func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b) return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b)
@ -756,7 +756,7 @@ func (m *Address) Reset() { *m = Address{} }
func (m *Address) String() string { return proto.CompactTextString(m) } func (m *Address) String() string { return proto.CompactTextString(m) }
func (*Address) ProtoMessage() {} func (*Address) ProtoMessage() {}
func (*Address) Descriptor() ([]byte, []int) { func (*Address) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{17} return fileDescriptor_demo_e1d03823e14b5fb0, []int{17}
} }
func (m *Address) XXX_Unmarshal(b []byte) error { func (m *Address) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address.Unmarshal(m, b) return xxx_messageInfo_Address.Unmarshal(m, b)
@ -834,7 +834,7 @@ func (m *Money) Reset() { *m = Money{} }
func (m *Money) String() string { return proto.CompactTextString(m) } func (m *Money) String() string { return proto.CompactTextString(m) }
func (*Money) ProtoMessage() {} func (*Money) ProtoMessage() {}
func (*Money) Descriptor() ([]byte, []int) { func (*Money) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{18} return fileDescriptor_demo_e1d03823e14b5fb0, []int{18}
} }
func (m *Money) XXX_Unmarshal(b []byte) error { func (m *Money) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Money.Unmarshal(m, b) return xxx_messageInfo_Money.Unmarshal(m, b)
@ -887,7 +887,7 @@ func (m *GetSupportedCurrenciesResponse) Reset() { *m = GetSupportedCurr
func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) } func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) }
func (*GetSupportedCurrenciesResponse) ProtoMessage() {} func (*GetSupportedCurrenciesResponse) ProtoMessage() {}
func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) { func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{19} return fileDescriptor_demo_e1d03823e14b5fb0, []int{19}
} }
func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error { func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b) return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b)
@ -927,7 +927,7 @@ func (m *CurrencyConversionRequest) Reset() { *m = CurrencyConversionReq
func (m *CurrencyConversionRequest) String() string { return proto.CompactTextString(m) } func (m *CurrencyConversionRequest) String() string { return proto.CompactTextString(m) }
func (*CurrencyConversionRequest) ProtoMessage() {} func (*CurrencyConversionRequest) ProtoMessage() {}
func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) { func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{20} return fileDescriptor_demo_e1d03823e14b5fb0, []int{20}
} }
func (m *CurrencyConversionRequest) XXX_Unmarshal(b []byte) error { func (m *CurrencyConversionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CurrencyConversionRequest.Unmarshal(m, b) return xxx_messageInfo_CurrencyConversionRequest.Unmarshal(m, b)
@ -975,7 +975,7 @@ func (m *CreditCardInfo) Reset() { *m = CreditCardInfo{} }
func (m *CreditCardInfo) String() string { return proto.CompactTextString(m) } func (m *CreditCardInfo) String() string { return proto.CompactTextString(m) }
func (*CreditCardInfo) ProtoMessage() {} func (*CreditCardInfo) ProtoMessage() {}
func (*CreditCardInfo) Descriptor() ([]byte, []int) { func (*CreditCardInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{21} return fileDescriptor_demo_e1d03823e14b5fb0, []int{21}
} }
func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error { func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b) return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b)
@ -1035,7 +1035,7 @@ func (m *ChargeRequest) Reset() { *m = ChargeRequest{} }
func (m *ChargeRequest) String() string { return proto.CompactTextString(m) } func (m *ChargeRequest) String() string { return proto.CompactTextString(m) }
func (*ChargeRequest) ProtoMessage() {} func (*ChargeRequest) ProtoMessage() {}
func (*ChargeRequest) Descriptor() ([]byte, []int) { func (*ChargeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{22} return fileDescriptor_demo_e1d03823e14b5fb0, []int{22}
} }
func (m *ChargeRequest) XXX_Unmarshal(b []byte) error { func (m *ChargeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChargeRequest.Unmarshal(m, b) return xxx_messageInfo_ChargeRequest.Unmarshal(m, b)
@ -1080,7 +1080,7 @@ func (m *ChargeResponse) Reset() { *m = ChargeResponse{} }
func (m *ChargeResponse) String() string { return proto.CompactTextString(m) } func (m *ChargeResponse) String() string { return proto.CompactTextString(m) }
func (*ChargeResponse) ProtoMessage() {} func (*ChargeResponse) ProtoMessage() {}
func (*ChargeResponse) Descriptor() ([]byte, []int) { func (*ChargeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{23} return fileDescriptor_demo_e1d03823e14b5fb0, []int{23}
} }
func (m *ChargeResponse) XXX_Unmarshal(b []byte) error { func (m *ChargeResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChargeResponse.Unmarshal(m, b) return xxx_messageInfo_ChargeResponse.Unmarshal(m, b)
@ -1119,7 +1119,7 @@ func (m *OrderItem) Reset() { *m = OrderItem{} }
func (m *OrderItem) String() string { return proto.CompactTextString(m) } func (m *OrderItem) String() string { return proto.CompactTextString(m) }
func (*OrderItem) ProtoMessage() {} func (*OrderItem) ProtoMessage() {}
func (*OrderItem) Descriptor() ([]byte, []int) { func (*OrderItem) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{24} return fileDescriptor_demo_e1d03823e14b5fb0, []int{24}
} }
func (m *OrderItem) XXX_Unmarshal(b []byte) error { func (m *OrderItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderItem.Unmarshal(m, b) return xxx_messageInfo_OrderItem.Unmarshal(m, b)
@ -1168,7 +1168,7 @@ func (m *OrderResult) Reset() { *m = OrderResult{} }
func (m *OrderResult) String() string { return proto.CompactTextString(m) } func (m *OrderResult) String() string { return proto.CompactTextString(m) }
func (*OrderResult) ProtoMessage() {} func (*OrderResult) ProtoMessage() {}
func (*OrderResult) Descriptor() ([]byte, []int) { func (*OrderResult) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{25} return fileDescriptor_demo_e1d03823e14b5fb0, []int{25}
} }
func (m *OrderResult) XXX_Unmarshal(b []byte) error { func (m *OrderResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderResult.Unmarshal(m, b) return xxx_messageInfo_OrderResult.Unmarshal(m, b)
@ -1235,7 +1235,7 @@ func (m *SendOrderConfirmationRequest) Reset() { *m = SendOrderConfirmat
func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) } func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) }
func (*SendOrderConfirmationRequest) ProtoMessage() {} func (*SendOrderConfirmationRequest) ProtoMessage() {}
func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) { func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{26} return fileDescriptor_demo_e1d03823e14b5fb0, []int{26}
} }
func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error { func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b) return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b)
@ -1269,106 +1269,6 @@ func (m *SendOrderConfirmationRequest) GetOrder() *OrderResult {
return nil return nil
} }
type CreateOrderRequest struct {
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency" json:"user_currency,omitempty"`
Address *Address `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CreateOrderRequest) Reset() { *m = CreateOrderRequest{} }
func (m *CreateOrderRequest) String() string { return proto.CompactTextString(m) }
func (*CreateOrderRequest) ProtoMessage() {}
func (*CreateOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{27}
}
func (m *CreateOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOrderRequest.Unmarshal(m, b)
}
func (m *CreateOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CreateOrderRequest.Marshal(b, m, deterministic)
}
func (dst *CreateOrderRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_CreateOrderRequest.Merge(dst, src)
}
func (m *CreateOrderRequest) XXX_Size() int {
return xxx_messageInfo_CreateOrderRequest.Size(m)
}
func (m *CreateOrderRequest) XXX_DiscardUnknown() {
xxx_messageInfo_CreateOrderRequest.DiscardUnknown(m)
}
var xxx_messageInfo_CreateOrderRequest proto.InternalMessageInfo
func (m *CreateOrderRequest) GetUserId() string {
if m != nil {
return m.UserId
}
return ""
}
func (m *CreateOrderRequest) GetUserCurrency() string {
if m != nil {
return m.UserCurrency
}
return ""
}
func (m *CreateOrderRequest) GetAddress() *Address {
if m != nil {
return m.Address
}
return nil
}
type CreateOrderResponse struct {
Items []*OrderItem `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
ShippingCost *Money `protobuf:"bytes,2,opt,name=shipping_cost,json=shippingCost" json:"shipping_cost,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CreateOrderResponse) Reset() { *m = CreateOrderResponse{} }
func (m *CreateOrderResponse) String() string { return proto.CompactTextString(m) }
func (*CreateOrderResponse) ProtoMessage() {}
func (*CreateOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{28}
}
func (m *CreateOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOrderResponse.Unmarshal(m, b)
}
func (m *CreateOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CreateOrderResponse.Marshal(b, m, deterministic)
}
func (dst *CreateOrderResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_CreateOrderResponse.Merge(dst, src)
}
func (m *CreateOrderResponse) XXX_Size() int {
return xxx_messageInfo_CreateOrderResponse.Size(m)
}
func (m *CreateOrderResponse) XXX_DiscardUnknown() {
xxx_messageInfo_CreateOrderResponse.DiscardUnknown(m)
}
var xxx_messageInfo_CreateOrderResponse proto.InternalMessageInfo
func (m *CreateOrderResponse) GetItems() []*OrderItem {
if m != nil {
return m.Items
}
return nil
}
func (m *CreateOrderResponse) GetShippingCost() *Money {
if m != nil {
return m.ShippingCost
}
return nil
}
type PlaceOrderRequest struct { type PlaceOrderRequest struct {
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"` UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency" json:"user_currency,omitempty"` UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency" json:"user_currency,omitempty"`
@ -1384,7 +1284,7 @@ func (m *PlaceOrderRequest) Reset() { *m = PlaceOrderRequest{} }
func (m *PlaceOrderRequest) String() string { return proto.CompactTextString(m) } func (m *PlaceOrderRequest) String() string { return proto.CompactTextString(m) }
func (*PlaceOrderRequest) ProtoMessage() {} func (*PlaceOrderRequest) ProtoMessage() {}
func (*PlaceOrderRequest) Descriptor() ([]byte, []int) { func (*PlaceOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{29} return fileDescriptor_demo_e1d03823e14b5fb0, []int{27}
} }
func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error { func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b) return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b)
@ -1450,7 +1350,7 @@ func (m *PlaceOrderResponse) Reset() { *m = PlaceOrderResponse{} }
func (m *PlaceOrderResponse) String() string { return proto.CompactTextString(m) } func (m *PlaceOrderResponse) String() string { return proto.CompactTextString(m) }
func (*PlaceOrderResponse) ProtoMessage() {} func (*PlaceOrderResponse) ProtoMessage() {}
func (*PlaceOrderResponse) Descriptor() ([]byte, []int) { func (*PlaceOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_bbfc9458084e7e4b, []int{30} return fileDescriptor_demo_e1d03823e14b5fb0, []int{28}
} }
func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error { func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b) return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b)
@ -1505,8 +1405,6 @@ func init() {
proto.RegisterType((*OrderItem)(nil), "hipstershop.OrderItem") proto.RegisterType((*OrderItem)(nil), "hipstershop.OrderItem")
proto.RegisterType((*OrderResult)(nil), "hipstershop.OrderResult") proto.RegisterType((*OrderResult)(nil), "hipstershop.OrderResult")
proto.RegisterType((*SendOrderConfirmationRequest)(nil), "hipstershop.SendOrderConfirmationRequest") proto.RegisterType((*SendOrderConfirmationRequest)(nil), "hipstershop.SendOrderConfirmationRequest")
proto.RegisterType((*CreateOrderRequest)(nil), "hipstershop.CreateOrderRequest")
proto.RegisterType((*CreateOrderResponse)(nil), "hipstershop.CreateOrderResponse")
proto.RegisterType((*PlaceOrderRequest)(nil), "hipstershop.PlaceOrderRequest") proto.RegisterType((*PlaceOrderRequest)(nil), "hipstershop.PlaceOrderRequest")
proto.RegisterType((*PlaceOrderResponse)(nil), "hipstershop.PlaceOrderResponse") proto.RegisterType((*PlaceOrderResponse)(nil), "hipstershop.PlaceOrderResponse")
} }
@ -2169,7 +2067,6 @@ var _EmailService_serviceDesc = grpc.ServiceDesc{
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type CheckoutServiceClient interface { type CheckoutServiceClient interface {
CreateOrder(ctx context.Context, in *CreateOrderRequest, opts ...grpc.CallOption) (*CreateOrderResponse, error)
PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error)
} }
@ -2181,15 +2078,6 @@ func NewCheckoutServiceClient(cc *grpc.ClientConn) CheckoutServiceClient {
return &checkoutServiceClient{cc} return &checkoutServiceClient{cc}
} }
func (c *checkoutServiceClient) CreateOrder(ctx context.Context, in *CreateOrderRequest, opts ...grpc.CallOption) (*CreateOrderResponse, error) {
out := new(CreateOrderResponse)
err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/CreateOrder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) { func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) {
out := new(PlaceOrderResponse) out := new(PlaceOrderResponse)
err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/PlaceOrder", in, out, opts...) err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/PlaceOrder", in, out, opts...)
@ -2201,7 +2089,6 @@ func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRe
// CheckoutServiceServer is the server API for CheckoutService service. // CheckoutServiceServer is the server API for CheckoutService service.
type CheckoutServiceServer interface { type CheckoutServiceServer interface {
CreateOrder(context.Context, *CreateOrderRequest) (*CreateOrderResponse, error)
PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error)
} }
@ -2209,24 +2096,6 @@ func RegisterCheckoutServiceServer(s *grpc.Server, srv CheckoutServiceServer) {
s.RegisterService(&_CheckoutService_serviceDesc, srv) s.RegisterService(&_CheckoutService_serviceDesc, srv)
} }
func _CheckoutService_CreateOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateOrderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(CheckoutServiceServer).CreateOrder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/hipstershop.CheckoutService/CreateOrder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(CheckoutServiceServer).CreateOrder(ctx, req.(*CreateOrderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PlaceOrderRequest) in := new(PlaceOrderRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@ -2249,10 +2118,6 @@ var _CheckoutService_serviceDesc = grpc.ServiceDesc{
ServiceName: "hipstershop.CheckoutService", ServiceName: "hipstershop.CheckoutService",
HandlerType: (*CheckoutServiceServer)(nil), HandlerType: (*CheckoutServiceServer)(nil),
Methods: []grpc.MethodDesc{ Methods: []grpc.MethodDesc{
{
MethodName: "CreateOrder",
Handler: _CheckoutService_CreateOrder_Handler,
},
{ {
MethodName: "PlaceOrder", MethodName: "PlaceOrder",
Handler: _CheckoutService_PlaceOrder_Handler, Handler: _CheckoutService_PlaceOrder_Handler,
@ -2262,98 +2127,95 @@ var _CheckoutService_serviceDesc = grpc.ServiceDesc{
Metadata: "demo.proto", Metadata: "demo.proto",
} }
func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_bbfc9458084e7e4b) } func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_e1d03823e14b5fb0) }
var fileDescriptor_demo_bbfc9458084e7e4b = []byte{ var fileDescriptor_demo_e1d03823e14b5fb0 = []byte{
// 1435 bytes of a gzipped FileDescriptorProto // 1389 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x72, 0xd3, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x72, 0xd3, 0xc6,
0x14, 0x8e, 0x1c, 0x3b, 0xb6, 0x8f, 0x63, 0x27, 0x59, 0x12, 0x6a, 0x14, 0x7e, 0xd2, 0xcd, 0x40, 0x17, 0x8f, 0x12, 0x3b, 0xb6, 0x8f, 0x63, 0x27, 0xd9, 0x7f, 0xc2, 0xdf, 0x28, 0x7c, 0xa4, 0x9b,
0xa1, 0x40, 0xca, 0xa4, 0x9d, 0xe1, 0xa2, 0xb4, 0x94, 0x31, 0x19, 0xe3, 0x19, 0x28, 0x54, 0x81, 0x81, 0x42, 0x81, 0x94, 0x49, 0x3b, 0xc3, 0x45, 0x69, 0x29, 0x63, 0x32, 0xc6, 0x33, 0x50, 0xa8,
0x0e, 0x1d, 0x3a, 0xf5, 0x08, 0x69, 0xc1, 0x2a, 0x91, 0x56, 0xd9, 0x5d, 0x65, 0x6a, 0xa6, 0x57, 0x02, 0x1d, 0x3a, 0x74, 0xea, 0x11, 0xda, 0x05, 0xab, 0x44, 0x5a, 0xb1, 0xbb, 0xca, 0xd4, 0x5c,
0xf4, 0x01, 0x7a, 0xdf, 0x47, 0xe8, 0x03, 0xb4, 0xef, 0xd0, 0xfb, 0xbe, 0x42, 0x9f, 0xa3, 0xb3, 0xb6, 0x0f, 0xd0, 0xfb, 0x3e, 0x42, 0x5f, 0xa0, 0xef, 0xd0, 0xfb, 0xbe, 0x42, 0x9f, 0xa3, 0xb3,
0x2b, 0xad, 0xfe, 0x6c, 0x25, 0xe1, 0xa6, 0xbd, 0xd3, 0xee, 0x7e, 0x7b, 0xce, 0xb7, 0xe7, 0xdf, 0x2b, 0xad, 0xbe, 0x62, 0x25, 0xe1, 0xa6, 0x77, 0xda, 0xb3, 0xbf, 0x3d, 0xe7, 0x77, 0xce, 0x9e,
0x06, 0x70, 0x89, 0x4f, 0x77, 0x42, 0x46, 0x05, 0x45, 0x9d, 0x89, 0x17, 0x72, 0x41, 0x18, 0x9f, 0x73, 0xf6, 0x08, 0x80, 0xd0, 0x80, 0xed, 0x46, 0x9c, 0x49, 0x86, 0xba, 0x53, 0x3f, 0x12, 0x92,
0xd0, 0x10, 0xef, 0x41, 0x6b, 0x60, 0x33, 0x31, 0x12, 0xc4, 0x47, 0x17, 0x00, 0x42, 0x46, 0xdd, 0x72, 0x31, 0x65, 0x11, 0xde, 0x87, 0xf6, 0xd0, 0xe5, 0x72, 0x2c, 0x69, 0x80, 0x2e, 0x02, 0x44,
0xc8, 0x11, 0x63, 0xcf, 0xed, 0x1b, 0x5b, 0xc6, 0xd5, 0xb6, 0xd5, 0x4e, 0x76, 0x46, 0x2e, 0x32, 0x9c, 0x91, 0xd8, 0x93, 0x13, 0x9f, 0x0c, 0xac, 0x6d, 0xeb, 0x5a, 0xc7, 0xe9, 0xa4, 0x92, 0x31,
0xa1, 0x75, 0x18, 0xd9, 0x81, 0xf0, 0xc4, 0xb4, 0x5f, 0xdb, 0x32, 0xae, 0x36, 0xac, 0x74, 0x8d, 0x41, 0x36, 0xb4, 0xdf, 0xc5, 0x6e, 0x28, 0x7d, 0x39, 0x1b, 0x2c, 0x6e, 0x5b, 0xd7, 0x9a, 0x4e,
0x9f, 0x42, 0xef, 0x9e, 0xeb, 0x4a, 0x29, 0x16, 0x39, 0x8c, 0x08, 0x17, 0xe8, 0x03, 0x68, 0x46, 0xb6, 0xc6, 0xcf, 0xa0, 0x7f, 0x9f, 0x10, 0xa5, 0xc5, 0xa1, 0xef, 0x62, 0x2a, 0x24, 0xfa, 0x3f,
0x9c, 0xb0, 0x4c, 0xd2, 0x92, 0x5c, 0x8e, 0x5c, 0x74, 0x0d, 0xea, 0x9e, 0x20, 0xbe, 0x12, 0xd1, 0xb4, 0x62, 0x41, 0x79, 0xae, 0x69, 0x59, 0x2d, 0xc7, 0x04, 0x5d, 0x87, 0x86, 0x2f, 0x69, 0xa0,
0xd9, 0xdd, 0xd8, 0xc9, 0xb1, 0xd9, 0xd1, 0x54, 0x2c, 0x05, 0xc1, 0xd7, 0x61, 0x75, 0xcf, 0x0f, 0x55, 0x74, 0xf7, 0x36, 0x77, 0x0b, 0x6c, 0x76, 0x0d, 0x15, 0x47, 0x43, 0xf0, 0x0d, 0x58, 0xdb,
0xc5, 0x54, 0x6e, 0x9f, 0x24, 0x17, 0x5f, 0x83, 0xde, 0x90, 0x88, 0x53, 0x41, 0x1f, 0x42, 0x5d, 0x0f, 0x22, 0x39, 0x53, 0xe2, 0xd3, 0xf4, 0xe2, 0xeb, 0xd0, 0x1f, 0x51, 0x79, 0x26, 0xe8, 0x23,
0xe2, 0xaa, 0x39, 0x5e, 0x87, 0x86, 0x24, 0xc0, 0xfb, 0xb5, 0xad, 0xc5, 0x6a, 0x92, 0x31, 0x06, 0x68, 0x28, 0x5c, 0x3d, 0xc7, 0x1b, 0xd0, 0x54, 0x04, 0xc4, 0x60, 0x71, 0x7b, 0xa9, 0x9e, 0x64,
0x37, 0xa1, 0xa1, 0x58, 0xe2, 0x6f, 0xc1, 0x7c, 0xe8, 0x71, 0x61, 0x11, 0x87, 0xfa, 0x3e, 0x09, 0x82, 0xc1, 0x2d, 0x68, 0x6a, 0x96, 0xf8, 0x3b, 0xb0, 0x1f, 0xf9, 0x42, 0x3a, 0xd4, 0x63, 0x41,
0x5c, 0x5b, 0x78, 0x34, 0xe0, 0x27, 0x1a, 0xe4, 0x12, 0x74, 0x32, 0xb3, 0xc7, 0x2a, 0xdb, 0x16, 0x40, 0x43, 0xe2, 0x4a, 0x9f, 0x85, 0xe2, 0xd4, 0x80, 0x5c, 0x86, 0x6e, 0x1e, 0xf6, 0xc4, 0x64,
0xa4, 0x76, 0xe7, 0xf8, 0x4b, 0xd8, 0x9c, 0x2b, 0x97, 0x87, 0x34, 0xe0, 0xa4, 0x7c, 0xdf, 0x98, 0xc7, 0x81, 0x2c, 0xee, 0x02, 0x7f, 0x05, 0x5b, 0x73, 0xf5, 0x8a, 0x88, 0x85, 0x82, 0x56, 0xcf,
0xb9, 0xff, 0x9b, 0x01, 0xcd, 0x27, 0xf1, 0x12, 0xf5, 0xa0, 0x96, 0x12, 0xa8, 0x79, 0x2e, 0x42, 0x5b, 0xc7, 0xce, 0xff, 0x6e, 0x41, 0xeb, 0x69, 0xb2, 0x44, 0x7d, 0x58, 0xcc, 0x08, 0x2c, 0xfa,
0x50, 0x0f, 0x6c, 0x9f, 0x28, 0x6f, 0xb4, 0x2d, 0xf5, 0x8d, 0xb6, 0xa0, 0xe3, 0x12, 0xee, 0x30, 0x04, 0x21, 0x68, 0x84, 0x6e, 0x40, 0xf5, 0x6d, 0x74, 0x1c, 0xfd, 0x8d, 0xb6, 0xa1, 0x4b, 0xa8,
0x2f, 0x94, 0x8a, 0xfa, 0x8b, 0xea, 0x28, 0xbf, 0x85, 0xfa, 0xd0, 0x0c, 0x3d, 0x47, 0x44, 0x8c, 0xf0, 0xb8, 0x1f, 0x29, 0x43, 0x83, 0x25, 0xbd, 0x55, 0x14, 0xa1, 0x01, 0xb4, 0x22, 0xdf, 0x93,
0xf4, 0xeb, 0xea, 0x54, 0x2f, 0xd1, 0x27, 0xd0, 0x0e, 0x99, 0xe7, 0x90, 0x71, 0xc4, 0xdd, 0x7e, 0x31, 0xa7, 0x83, 0x86, 0xde, 0x35, 0x4b, 0xf4, 0x29, 0x74, 0x22, 0xee, 0x7b, 0x74, 0x12, 0x0b,
0x43, 0xb9, 0x18, 0x15, 0xac, 0xf7, 0x88, 0x06, 0x64, 0x6a, 0xb5, 0x14, 0xe8, 0x19, 0x77, 0xf1, 0x32, 0x68, 0xea, 0x2b, 0x46, 0xa5, 0xe8, 0x3d, 0x66, 0x21, 0x9d, 0x39, 0x6d, 0x0d, 0x7a, 0x2e,
0x03, 0x58, 0x97, 0x8f, 0x4b, 0xf8, 0x65, 0xaf, 0xba, 0x05, 0xad, 0xe4, 0x09, 0xf1, 0x93, 0x3a, 0x08, 0x7e, 0x08, 0x1b, 0xca, 0xb9, 0x94, 0x5f, 0xee, 0xd5, 0x6d, 0x68, 0xa7, 0x2e, 0x24, 0x2e,
0xbb, 0xeb, 0x05, 0x39, 0xc9, 0x05, 0x2b, 0x45, 0xe1, 0x6d, 0x58, 0x1b, 0x12, 0x2d, 0x48, 0x5b, 0x75, 0xf7, 0x36, 0x4a, 0x7a, 0xd2, 0x03, 0x4e, 0x86, 0xc2, 0x3b, 0xb0, 0x3e, 0xa2, 0x46, 0x91,
0xbd, 0xf4, 0x5e, 0x7c, 0x13, 0x36, 0xf6, 0x89, 0xcd, 0x9c, 0x49, 0xa6, 0x30, 0x06, 0xae, 0x43, 0x89, 0x7a, 0xc5, 0x5f, 0x7c, 0x0b, 0x36, 0x0f, 0xa8, 0xcb, 0xbd, 0x69, 0x6e, 0x30, 0x01, 0x6e,
0xe3, 0x30, 0x22, 0x6c, 0x9a, 0x60, 0xe3, 0x05, 0x7e, 0x00, 0x67, 0xcb, 0xf0, 0x84, 0xdf, 0x0e, 0x40, 0xf3, 0x5d, 0x4c, 0xf9, 0x2c, 0xc5, 0x26, 0x0b, 0xfc, 0x10, 0xce, 0x55, 0xe1, 0x29, 0xbf,
0x34, 0x19, 0xe1, 0xd1, 0xc1, 0x09, 0xf4, 0x34, 0x08, 0x07, 0xb0, 0x32, 0x24, 0xe2, 0x9b, 0x88, 0x5d, 0x68, 0x71, 0x2a, 0xe2, 0xc3, 0x53, 0xe8, 0x19, 0x10, 0x0e, 0x61, 0x75, 0x44, 0xe5, 0xb7,
0x0a, 0xa2, 0x55, 0xee, 0x40, 0xd3, 0x76, 0x5d, 0x46, 0x38, 0x57, 0x4a, 0xcb, 0x22, 0xee, 0xc5, 0x31, 0x93, 0xd4, 0x98, 0xdc, 0x85, 0x96, 0x4b, 0x08, 0xa7, 0x42, 0x68, 0xa3, 0x55, 0x15, 0xf7,
0x67, 0x96, 0x06, 0xbd, 0x5f, 0x54, 0xde, 0x83, 0xd5, 0x4c, 0x5f, 0xc2, 0xf9, 0x26, 0xb4, 0x1c, 0x93, 0x3d, 0xc7, 0x80, 0x3e, 0x2c, 0x2b, 0xef, 0xc3, 0x5a, 0x6e, 0x2f, 0xe5, 0x7c, 0x0b, 0xda,
0xca, 0x85, 0xf2, 0x8d, 0x51, 0xe9, 0x9b, 0xa6, 0xc4, 0x48, 0xd7, 0x50, 0x58, 0xdd, 0x9f, 0x78, 0x1e, 0x13, 0x52, 0xdf, 0x8d, 0x55, 0x7b, 0x37, 0x2d, 0x85, 0x51, 0x57, 0xc3, 0x60, 0xed, 0x60,
0xe1, 0x63, 0xe6, 0x12, 0xf6, 0x9f, 0x70, 0xfe, 0x0c, 0xd6, 0x72, 0x0a, 0xb3, 0xf0, 0x16, 0xcc, 0xea, 0x47, 0x4f, 0x38, 0xa1, 0xfc, 0x3f, 0xe1, 0xfc, 0x39, 0xac, 0x17, 0x0c, 0xe6, 0xe9, 0x2d,
0x76, 0xde, 0x78, 0xc1, 0xeb, 0x2c, 0x77, 0x40, 0x6f, 0x8d, 0x5c, 0xfc, 0xab, 0x01, 0xcd, 0x44, 0xb9, 0xeb, 0xbd, 0xf5, 0xc3, 0x37, 0x79, 0xed, 0x80, 0x11, 0x8d, 0x09, 0xfe, 0xcd, 0x82, 0x56,
0x2f, 0xba, 0x0c, 0x3d, 0x2e, 0x18, 0x21, 0x62, 0x9c, 0x67, 0xd9, 0xb6, 0xba, 0xf1, 0xae, 0x86, 0x6a, 0x17, 0x5d, 0x81, 0xbe, 0x90, 0x9c, 0x52, 0x39, 0x29, 0xb2, 0xec, 0x38, 0xbd, 0x44, 0x6a,
0x21, 0xa8, 0x3b, 0xba, 0x8c, 0xb5, 0x2d, 0xf5, 0x2d, 0x03, 0x80, 0x0b, 0x5b, 0x90, 0x24, 0xde, 0x60, 0x08, 0x1a, 0x9e, 0x69, 0x63, 0x1d, 0x47, 0x7f, 0xab, 0x04, 0x10, 0xd2, 0x95, 0x34, 0xcd,
0xe3, 0x85, 0x8c, 0x74, 0x87, 0x46, 0x81, 0x60, 0x53, 0x1d, 0xe9, 0xc9, 0x12, 0x9d, 0x83, 0xd6, 0xf7, 0x64, 0xa1, 0x32, 0xdd, 0x63, 0x71, 0x28, 0xf9, 0xcc, 0x64, 0x7a, 0xba, 0x44, 0xe7, 0xa1,
0x5b, 0x2f, 0x1c, 0x3b, 0xd4, 0x25, 0x2a, 0xd0, 0x1b, 0x56, 0xf3, 0xad, 0x17, 0x0e, 0xa8, 0x4b, 0xfd, 0xde, 0x8f, 0x26, 0x1e, 0x23, 0x54, 0x27, 0x7a, 0xd3, 0x69, 0xbd, 0xf7, 0xa3, 0x21, 0x23,
0xf0, 0x73, 0x68, 0x28, 0x53, 0xa2, 0x6d, 0xe8, 0x3a, 0x11, 0x63, 0x24, 0x70, 0xa6, 0x31, 0x30, 0x14, 0xbf, 0x80, 0xa6, 0x0e, 0x25, 0xda, 0x81, 0x9e, 0x17, 0x73, 0x4e, 0x43, 0x6f, 0x96, 0x00,
0x66, 0xb3, 0xac, 0x37, 0x25, 0x5a, 0x2a, 0x8e, 0x02, 0x4f, 0x70, 0xc5, 0x66, 0xd1, 0x8a, 0x17, 0x13, 0x36, 0x2b, 0x46, 0xa8, 0xd0, 0xca, 0x70, 0x1c, 0xfa, 0x52, 0x68, 0x36, 0x4b, 0x4e, 0xb2,
0x72, 0x37, 0xb0, 0x03, 0xca, 0x15, 0x9d, 0x86, 0x15, 0x2f, 0xf0, 0x10, 0x2e, 0x0e, 0x89, 0xd8, 0x50, 0xd2, 0xd0, 0x0d, 0x99, 0xd0, 0x74, 0x9a, 0x4e, 0xb2, 0xc0, 0x23, 0xb8, 0x34, 0xa2, 0xf2,
0x8f, 0xc2, 0x90, 0x32, 0x41, 0xdc, 0x41, 0x2c, 0xc7, 0x23, 0x59, 0x5c, 0x5e, 0x86, 0x5e, 0x41, 0x20, 0x8e, 0x22, 0xc6, 0x25, 0x25, 0xc3, 0x44, 0x8f, 0x4f, 0xf3, 0xbc, 0xbc, 0x02, 0xfd, 0x92,
0xa5, 0x2e, 0x08, 0xdd, 0xbc, 0x4e, 0x8e, 0xbf, 0x87, 0x73, 0x83, 0x74, 0x23, 0x38, 0x22, 0x8c, 0x49, 0xd3, 0x10, 0x7a, 0x45, 0x9b, 0x02, 0xff, 0x00, 0xe7, 0x87, 0x99, 0x20, 0x3c, 0xa2, 0x5c,
0x7b, 0x34, 0xd0, 0x4e, 0xbe, 0x02, 0xf5, 0x57, 0x8c, 0xfa, 0xc7, 0xc4, 0x88, 0x3a, 0x97, 0x25, 0xf8, 0x2c, 0x34, 0x97, 0x7c, 0x15, 0x1a, 0xaf, 0x39, 0x0b, 0x4e, 0xc8, 0x11, 0xbd, 0xaf, 0x5a,
0x4d, 0xd0, 0xf8, 0x61, 0xb1, 0x25, 0x97, 0x04, 0x55, 0x06, 0xf8, 0xc7, 0x80, 0xde, 0x80, 0x11, 0x9a, 0x64, 0x89, 0x63, 0x49, 0x24, 0x97, 0x25, 0xd3, 0x01, 0xf8, 0xc7, 0x82, 0xfe, 0x90, 0x53,
0xd7, 0x93, 0xf5, 0xd8, 0x1d, 0x05, 0xaf, 0x28, 0xba, 0x01, 0xc8, 0x51, 0x3b, 0x63, 0xc7, 0x66, 0xe2, 0xab, 0x7e, 0x4c, 0xc6, 0xe1, 0x6b, 0x86, 0x6e, 0x02, 0xf2, 0xb4, 0x64, 0xe2, 0xb9, 0x9c,
0xee, 0x38, 0x88, 0xfc, 0x97, 0x84, 0x25, 0xf6, 0x58, 0x75, 0x52, 0xec, 0xd7, 0x6a, 0x1f, 0x5d, 0x4c, 0xc2, 0x38, 0x78, 0x45, 0x79, 0x1a, 0x8f, 0x35, 0x2f, 0xc3, 0x7e, 0xa3, 0xe5, 0xe8, 0x2a,
0x81, 0x95, 0x3c, 0xda, 0x39, 0x3a, 0x4a, 0x5a, 0x4e, 0x37, 0x83, 0x0e, 0x8e, 0x8e, 0xd0, 0x17, 0xac, 0x16, 0xd1, 0xde, 0xd1, 0x51, 0xfa, 0xe4, 0xf4, 0x72, 0xe8, 0xf0, 0xe8, 0x08, 0x7d, 0x09,
0xb0, 0x99, 0xc7, 0x91, 0x9f, 0x42, 0x8f, 0xa9, 0xf2, 0x38, 0x9e, 0x12, 0x9b, 0x25, 0xb6, 0xeb, 0x5b, 0x45, 0x1c, 0xfd, 0x39, 0xf2, 0xb9, 0x6e, 0x8f, 0x93, 0x19, 0x75, 0x79, 0x1a, 0xbb, 0x41,
0x67, 0x77, 0xf6, 0x52, 0xc0, 0x77, 0xc4, 0x66, 0xe8, 0x2e, 0x9c, 0xaf, 0xb8, 0xee, 0xd3, 0x40, 0x7e, 0x66, 0x3f, 0x03, 0x7c, 0x4f, 0x5d, 0x8e, 0xee, 0xc1, 0x85, 0x9a, 0xe3, 0x01, 0x0b, 0xe5,
0x4c, 0x94, 0xcb, 0x1b, 0xd6, 0xb9, 0x79, 0xf7, 0x1f, 0x49, 0x00, 0x9e, 0x42, 0x77, 0x30, 0xb1, 0x54, 0x5f, 0x79, 0xd3, 0x39, 0x3f, 0xef, 0xfc, 0x63, 0x05, 0xc0, 0x33, 0xe8, 0x0d, 0xa7, 0x2e,
0xd9, 0xeb, 0x34, 0xa7, 0x3f, 0x86, 0x25, 0xdb, 0x97, 0x11, 0x72, 0x8c, 0xf1, 0x12, 0x04, 0xba, 0x7f, 0x93, 0xd5, 0xf4, 0x27, 0xb0, 0xec, 0x06, 0x2a, 0x43, 0x4e, 0x08, 0x5e, 0x8a, 0x40, 0x77,
0x03, 0x9d, 0x9c, 0xf6, 0xa4, 0x21, 0x6e, 0x16, 0x33, 0xa4, 0x60, 0x44, 0x0b, 0x32, 0x26, 0xf8, 0xa1, 0x5b, 0xb0, 0x9e, 0x3e, 0x88, 0x5b, 0xe5, 0x0a, 0x29, 0x05, 0xd1, 0x81, 0x9c, 0x09, 0xbe,
0x36, 0xf4, 0xb4, 0xea, 0xcc, 0xf5, 0x82, 0xd9, 0x01, 0xb7, 0x1d, 0xf5, 0x84, 0x34, 0x59, 0xba, 0x03, 0x7d, 0x63, 0x3a, 0xbf, 0x7a, 0xc9, 0xdd, 0x50, 0xb8, 0x9e, 0x76, 0x21, 0x2b, 0x96, 0x5e,
0xb9, 0xdd, 0x91, 0x8b, 0x7f, 0x80, 0xb6, 0xca, 0x30, 0xd5, 0xf3, 0x75, 0x37, 0x36, 0x4e, 0xec, 0x41, 0x3a, 0x26, 0xf8, 0x47, 0xe8, 0xe8, 0x0a, 0xd3, 0x6f, 0xbe, 0x79, 0x8d, 0xad, 0x53, 0x5f,
0xc6, 0x32, 0x2a, 0x64, 0x65, 0x48, 0x78, 0xce, 0x8d, 0x0a, 0x79, 0x8e, 0xdf, 0xd5, 0xa0, 0xa3, 0x63, 0x95, 0x15, 0xaa, 0x33, 0xa4, 0x3c, 0xe7, 0x66, 0x85, 0xda, 0xc7, 0xbf, 0x2c, 0x42, 0xd7,
0x53, 0x38, 0x3a, 0x10, 0x32, 0x51, 0xa8, 0x5c, 0x66, 0x84, 0x9a, 0x6a, 0x3d, 0x72, 0xd1, 0x2d, 0x94, 0x70, 0x7c, 0x28, 0x55, 0xa1, 0x30, 0xb5, 0xcc, 0x09, 0xb5, 0xf4, 0x7a, 0x4c, 0xd0, 0x6d,
0x58, 0xe7, 0x13, 0x2f, 0x0c, 0x65, 0x6e, 0xe7, 0x93, 0x3c, 0x8e, 0x26, 0xa4, 0xcf, 0x9e, 0xa6, 0xd8, 0x10, 0x53, 0x3f, 0x8a, 0x54, 0x6d, 0x17, 0x8b, 0x3c, 0xc9, 0x26, 0x64, 0xf6, 0x9e, 0x65,
0xc9, 0x8e, 0x6e, 0x43, 0x37, 0xbd, 0xa1, 0xd8, 0x2c, 0x56, 0xb2, 0x59, 0xd6, 0xc0, 0x01, 0xe5, 0xc5, 0x8e, 0xee, 0x40, 0x2f, 0x3b, 0xa1, 0xd9, 0x2c, 0xd5, 0xb2, 0x59, 0x31, 0xc0, 0x21, 0x13,
0x02, 0xdd, 0x85, 0xd5, 0xf4, 0xa2, 0xae, 0x0d, 0xf5, 0x63, 0x2a, 0xd8, 0x8a, 0x46, 0xeb, 0x9a, 0x12, 0xdd, 0x83, 0xb5, 0xec, 0xa0, 0xe9, 0x0d, 0x8d, 0x13, 0x3a, 0xd8, 0xaa, 0x41, 0x9b, 0x9e,
0x71, 0x43, 0x57, 0xb2, 0x86, 0xaa, 0x64, 0x67, 0x0b, 0xb7, 0x52, 0x83, 0xea, 0x52, 0xe6, 0xc2, 0x71, 0xd3, 0x74, 0xb2, 0xa6, 0xee, 0x64, 0xe7, 0x4a, 0xa7, 0xb2, 0x80, 0x9a, 0x56, 0x46, 0xe0,
0xf9, 0x7d, 0x12, 0xb8, 0x6a, 0x7f, 0x40, 0x83, 0x57, 0x1e, 0xf3, 0x55, 0xd8, 0xe4, 0xda, 0x0d, 0xc2, 0x01, 0x0d, 0x89, 0x96, 0x0f, 0x59, 0xf8, 0xda, 0xe7, 0x81, 0x4e, 0x9b, 0xc2, 0x73, 0x43,
0xf1, 0x6d, 0xef, 0x40, 0xb7, 0x1b, 0xb5, 0x40, 0x3b, 0xd0, 0x50, 0xa6, 0x49, 0x6c, 0xdc, 0x9f, 0x03, 0xd7, 0x3f, 0x34, 0xcf, 0x8d, 0x5e, 0xa0, 0x5d, 0x68, 0xea, 0xd0, 0xa4, 0x31, 0x1e, 0x1c,
0xd5, 0x11, 0xdb, 0xd4, 0x8a, 0x61, 0xf8, 0x9d, 0x01, 0x68, 0xc0, 0x88, 0x2d, 0x48, 0xa1, 0x48, 0xb7, 0x91, 0xc4, 0xd4, 0x49, 0x60, 0xf8, 0x6f, 0x0b, 0xd6, 0x9f, 0x1e, 0xba, 0x1e, 0x2d, 0xf5,
0x57, 0x8e, 0x1a, 0xdb, 0xd0, 0x55, 0x07, 0xba, 0x16, 0x24, 0x86, 0x5e, 0x96, 0x9b, 0xba, 0x1c, 0xe8, 0xda, 0x49, 0x63, 0x07, 0x7a, 0x7a, 0xc3, 0xb4, 0x82, 0x34, 0xce, 0x2b, 0x4a, 0x68, 0xba,
0xe4, 0x4b, 0xfc, 0xe2, 0x29, 0x4a, 0x3c, 0xfe, 0x19, 0xce, 0x14, 0x38, 0x24, 0xd1, 0x98, 0xda, 0x41, 0xb1, 0xc3, 0x2f, 0x9d, 0xa5, 0xc3, 0x67, 0x9e, 0x34, 0x8b, 0x9e, 0x54, 0x72, 0x7b, 0xf9,
0xcb, 0x38, 0x85, 0xbd, 0x66, 0xfd, 0x5a, 0x3b, 0x9d, 0x5f, 0xf1, 0xdf, 0x06, 0xac, 0x3d, 0x39, 0xc3, 0x72, 0xfb, 0x01, 0xa0, 0xa2, 0x5b, 0xd9, 0x93, 0x9b, 0x46, 0xc7, 0x3a, 0x53, 0x74, 0xf6,
0xb0, 0x9d, 0xff, 0xd1, 0x02, 0x99, 0x33, 0x1b, 0x79, 0x67, 0x96, 0xd2, 0x7b, 0xe9, 0xfd, 0xd2, 0xfe, 0xb2, 0xa0, 0xab, 0x72, 0xf8, 0x80, 0xf2, 0x23, 0xdf, 0xa3, 0xe8, 0xae, 0x7e, 0x27, 0x74,
0xfb, 0x3e, 0xa0, 0xfc, 0xb3, 0xd2, 0xa9, 0x23, 0x09, 0x10, 0xe3, 0x54, 0x01, 0xb2, 0xfb, 0x97, 0xda, 0x6f, 0x55, 0x7d, 0x2a, 0x8c, 0xae, 0x76, 0x39, 0x99, 0x92, 0xd9, 0x6e, 0x01, 0x7d, 0x01,
0x01, 0x1d, 0x99, 0xc6, 0xfb, 0x84, 0x1d, 0x79, 0x0e, 0x41, 0x77, 0x54, 0xab, 0x54, 0x99, 0xbf, 0xad, 0x74, 0xbe, 0xac, 0x9c, 0x2e, 0x4f, 0x9d, 0xf6, 0xfa, 0xb1, 0x1a, 0xc2, 0x0b, 0xe8, 0x6b,
0x59, 0x7e, 0x53, 0x6e, 0x7a, 0x37, 0x8b, 0x76, 0x8f, 0xc7, 0xdb, 0x05, 0xf4, 0x39, 0x34, 0x93, 0xe8, 0x64, 0x93, 0x2c, 0xba, 0x78, 0x5c, 0x7f, 0x51, 0xc1, 0x5c, 0xf3, 0x7b, 0xbf, 0x5a, 0xb0,
0x11, 0xbb, 0x74, 0xbb, 0x38, 0x78, 0x9b, 0x6b, 0x33, 0x65, 0x04, 0x2f, 0xa0, 0xaf, 0xa0, 0x9d, 0x59, 0x9e, 0x00, 0x8d, 0x5b, 0x3f, 0xc1, 0xff, 0xe6, 0x8c, 0x87, 0xe8, 0xe3, 0x92, 0x9a, 0xfa,
0x0e, 0xf3, 0xe8, 0xc2, 0xac, 0xfc, 0xbc, 0x80, 0xb9, 0xea, 0x77, 0x7f, 0x31, 0x60, 0xa3, 0x38, 0xc1, 0xd4, 0xbe, 0x76, 0x3a, 0x30, 0xb9, 0x00, 0xc5, 0x62, 0x11, 0x36, 0xd3, 0xd1, 0x66, 0xe8,
0x04, 0xeb, 0x67, 0xfd, 0x08, 0x67, 0xe6, 0x4c, 0xc8, 0xe8, 0xa3, 0x82, 0x98, 0xea, 0xd9, 0xdc, 0x4a, 0xf7, 0x90, 0xbd, 0x31, 0x2c, 0x46, 0xb0, 0x52, 0x9c, 0xe3, 0xd0, 0x1c, 0x2f, 0xec, 0x8f,
0xbc, 0x7a, 0x32, 0x30, 0x76, 0x80, 0x64, 0x51, 0x83, 0x8d, 0x64, 0xba, 0x1b, 0xd8, 0xc2, 0x3e, 0x8e, 0x59, 0xaa, 0x8e, 0x55, 0x78, 0x01, 0x3d, 0x00, 0xc8, 0xc7, 0x38, 0x74, 0xa9, 0x1a, 0xea,
0xa0, 0xaf, 0x35, 0x8b, 0x21, 0x2c, 0xe7, 0x47, 0x59, 0x34, 0xe7, 0x15, 0xe6, 0x87, 0x33, 0x9a, 0xf2, 0x7c, 0x67, 0xcf, 0x9d, 0xba, 0xf0, 0x02, 0x7a, 0x09, 0xfd, 0xf2, 0xe0, 0x86, 0x70, 0x09,
0xca, 0x93, 0x25, 0x5e, 0x40, 0xf7, 0x01, 0xb2, 0x49, 0x16, 0x5d, 0x2c, 0x9b, 0xba, 0x38, 0xe2, 0x39, 0x77, 0x08, 0xb4, 0x77, 0x4e, 0xc4, 0x64, 0x51, 0xf8, 0xc3, 0x82, 0xd5, 0x83, 0xb4, 0x3d,
0x9a, 0x73, 0x07, 0x4f, 0xbc, 0x80, 0x5e, 0x40, 0xaf, 0x38, 0xbb, 0x22, 0x5c, 0x40, 0xce, 0x9d, 0x18, 0xff, 0xc7, 0xd0, 0x36, 0xf3, 0x16, 0xba, 0x50, 0x25, 0x5d, 0x1c, 0xfb, 0xec, 0x8b, 0x35,
0x83, 0xcd, 0xed, 0x63, 0x31, 0xa9, 0x15, 0x7e, 0x37, 0x60, 0x65, 0x3f, 0xc9, 0x43, 0xfd, 0xfe, 0xbb, 0x59, 0x04, 0x1e, 0x41, 0x27, 0x1b, 0x83, 0x2a, 0xc9, 0x52, 0x9d, 0xc7, 0xec, 0x4b, 0x75,
0x11, 0xb4, 0xf4, 0xc8, 0x89, 0xce, 0x97, 0x49, 0xe7, 0x27, 0x5f, 0xf3, 0x42, 0xc5, 0x69, 0x6a, 0xdb, 0x19, 0xd9, 0x3f, 0x2d, 0x58, 0x35, 0xc5, 0x6d, 0xc8, 0xbe, 0x84, 0x73, 0xf3, 0xc7, 0x88,
0x81, 0x87, 0xd0, 0x4e, 0x27, 0xc1, 0x52, 0xb0, 0x94, 0x47, 0x52, 0xf3, 0x62, 0xd5, 0x71, 0x4a, 0xb9, 0xd7, 0x76, 0xa3, 0x4a, 0xf8, 0x84, 0xf9, 0x03, 0x2f, 0xa0, 0x11, 0xb4, 0x92, 0x91, 0x42,
0xf6, 0x4f, 0x03, 0x56, 0x74, 0x72, 0x6b, 0xb2, 0x2f, 0xe0, 0xec, 0xfc, 0x49, 0x6a, 0xae, 0xdb, 0xa2, 0xab, 0xe5, 0x5a, 0xa8, 0x1b, 0x38, 0xec, 0x39, 0xed, 0x1b, 0x2f, 0xec, 0x3d, 0x87, 0xfe,
0xae, 0x97, 0x09, 0x1f, 0x33, 0x82, 0xe1, 0x05, 0x34, 0x84, 0x66, 0x3c, 0x55, 0x09, 0x74, 0xa5, 0x53, 0x77, 0x16, 0xd0, 0x30, 0xab, 0xe0, 0x21, 0x2c, 0x27, 0x6f, 0x1e, 0xb2, 0xcb, 0x9a, 0x8b,
0x98, 0x0b, 0x55, 0x33, 0x97, 0x39, 0xa7, 0xd2, 0xe1, 0x85, 0xdd, 0x67, 0xd0, 0x7b, 0x62, 0x4f, 0x6f, 0xb0, 0xbd, 0x35, 0x77, 0x2f, 0x0b, 0xc8, 0x14, 0x56, 0xf6, 0x55, 0x8f, 0x32, 0x4a, 0x5f,
0x7d, 0x12, 0xa4, 0x19, 0x3c, 0x80, 0xa5, 0xb8, 0xed, 0x23, 0xb3, 0x28, 0x39, 0x3f, 0x86, 0x98, 0xa8, 0x5f, 0x82, 0x39, 0xad, 0x1a, 0x5d, 0xaf, 0x64, 0x43, 0x7d, 0x3b, 0xaf, 0xa9, 0xd9, 0x57,
0x9b, 0x73, 0xcf, 0x52, 0x83, 0x4c, 0x60, 0x79, 0x4f, 0xd6, 0x28, 0x2d, 0xf4, 0xb9, 0xfc, 0x55, 0xb0, 0x3a, 0x9c, 0x52, 0xef, 0x2d, 0x8b, 0x33, 0x0f, 0x9e, 0x00, 0xe4, 0x9d, 0xad, 0x92, 0xdd,
0x34, 0xa7, 0x5b, 0xa1, 0x6b, 0xa5, 0x68, 0xa8, 0xee, 0x68, 0x15, 0x39, 0xfb, 0x87, 0x34, 0xfd, 0xc7, 0x3a, 0xb9, 0x7d, 0xb9, 0x76, 0xdf, 0x78, 0xf3, 0x6a, 0x59, 0xff, 0xd4, 0x7f, 0xf6, 0x6f,
0x84, 0x38, 0x6f, 0x68, 0x94, 0x3e, 0xc1, 0x82, 0x4e, 0xae, 0x61, 0xa0, 0x4b, 0xe5, 0x92, 0x58, 0x00, 0x00, 0x00, 0xff, 0xff, 0x59, 0xab, 0x01, 0x43, 0xe2, 0x0f, 0x00, 0x00,
0x6a, 0x67, 0xe6, 0x56, 0x35, 0x20, 0xb5, 0xf8, 0x63, 0x80, 0xac, 0x5c, 0x96, 0x52, 0x66, 0xa6,
0x3d, 0x98, 0x97, 0x2a, 0xcf, 0xb5, 0xc0, 0x97, 0x4b, 0xea, 0xcf, 0x92, 0x4f, 0xff, 0x0d, 0x00,
0x00, 0xff, 0xff, 0x1d, 0x9c, 0xae, 0xb8, 0x3a, 0x11, 0x00, 0x00,
} }

View file

@ -302,32 +302,6 @@ func (fe *frontendServer) placeOrderHandler(w http.ResponseWriter, r *http.Reque
}); err != nil { }); err != nil {
log.Println(err) log.Println(err)
} }
if err := fe.emptyCart(r.Context(), sessionID(r)); err != nil {
log.Printf("WARN: failed to empty user (%s) cart after checkout: %+v", sessionID(r), err)
}
}
func (fe *frontendServer) prepareCheckoutHandler(w http.ResponseWriter, r *http.Request) {
streetAddress := r.FormValue("street_address")
city := r.FormValue("city")
state := r.FormValue("state")
country := r.FormValue("country")
zipCode, _ := strconv.ParseInt(r.FormValue("country"), 10, 32)
log.Printf("[prepareCheckout] session_id=%+v", sessionID(r))
_, _ = pb.NewCheckoutServiceClient(fe.checkoutSvcConn).CreateOrder(r.Context(),
&pb.CreateOrderRequest{
UserId: sessionID(r),
UserCurrency: currentCurrency(r),
Address: &pb.Address{
StreetAddress: streetAddress,
City: city,
State: state,
ZipCode: int32(zipCode),
Country: country,
},
})
} }
func (fe *frontendServer) logoutHandler(w http.ResponseWriter, r *http.Request) { func (fe *frontendServer) logoutHandler(w http.ResponseWriter, r *http.Request) {