@silvana-one/orderbook 1.1.11 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/node/index.cjs +352 -10
  2. package/dist/node/index.d.ts +1 -0
  3. package/dist/node/index.js +1 -0
  4. package/dist/node/index.js.map +1 -1
  5. package/dist/node/orderbook.d.ts +48 -1
  6. package/dist/node/orderbook.js +61 -1
  7. package/dist/node/orderbook.js.map +1 -1
  8. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +414 -0
  9. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +63 -8
  10. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  11. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +1466 -0
  12. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +351 -0
  13. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -0
  14. package/dist/node/settlement.d.ts +59 -0
  15. package/dist/node/settlement.js +81 -0
  16. package/dist/node/settlement.js.map +1 -0
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/tsconfig.web.tsbuildinfo +1 -1
  19. package/dist/web/index.d.ts +1 -0
  20. package/dist/web/index.js +1 -0
  21. package/dist/web/index.js.map +1 -1
  22. package/dist/web/orderbook.d.ts +48 -1
  23. package/dist/web/orderbook.js +61 -1
  24. package/dist/web/orderbook.js.map +1 -1
  25. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +414 -0
  26. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +63 -8
  27. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  28. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +1466 -0
  29. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +351 -0
  30. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -0
  31. package/dist/web/settlement.d.ts +59 -0
  32. package/dist/web/settlement.js +81 -0
  33. package/dist/web/settlement.js.map +1 -0
  34. package/package.json +9 -8
  35. package/src/index.ts +1 -0
  36. package/src/orderbook.ts +102 -0
  37. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +499 -8
  38. package/src/proto/silvana/settlement/v1/settlement_pb.ts +1743 -0
  39. package/src/settlement.ts +133 -0
@@ -1598,6 +1598,18 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
1598
1598
  * @generated from field: optional google.protobuf.Struct metadata = 7;
1599
1599
  */
1600
1600
  metadata?: JsonObject;
1601
+ /**
1602
+ * UserService request contract ID
1603
+ *
1604
+ * @generated from field: optional string user_service_request_cid = 8;
1605
+ */
1606
+ userServiceRequestCid?: string;
1607
+ /**
1608
+ * User-specific data (KYC, credentials, etc.)
1609
+ *
1610
+ * @generated from field: google.protobuf.Struct user_data = 9;
1611
+ */
1612
+ userData?: JsonObject;
1601
1613
  };
1602
1614
  /**
1603
1615
  * Describes the message silvana.orderbook.v1.CreatePartyRequest.
@@ -1626,6 +1638,348 @@ export type CreatePartyResponse = Message<"silvana.orderbook.v1.CreatePartyRespo
1626
1638
  * Use `create(CreatePartyResponseSchema)` to create a new message.
1627
1639
  */
1628
1640
  export declare const CreatePartyResponseSchema: GenMessage<CreatePartyResponse>;
1641
+ /**
1642
+ * Update an existing party (admin operation)
1643
+ *
1644
+ * @generated from message silvana.orderbook.v1.UpdatePartyRequest
1645
+ */
1646
+ export type UpdatePartyRequest = Message<"silvana.orderbook.v1.UpdatePartyRequest"> & {
1647
+ /**
1648
+ * @generated from field: silvana.orderbook.v1.JWTAuth auth = 1;
1649
+ */
1650
+ auth?: JWTAuth;
1651
+ /**
1652
+ * Required - which party to update
1653
+ *
1654
+ * @generated from field: string party_id = 2;
1655
+ */
1656
+ partyId: string;
1657
+ /**
1658
+ * Required - optimistic locking
1659
+ *
1660
+ * @generated from field: uint64 expected_version = 3;
1661
+ */
1662
+ expectedVersion: bigint;
1663
+ /**
1664
+ * @generated from field: optional string party_name = 4;
1665
+ */
1666
+ partyName?: string;
1667
+ /**
1668
+ * @generated from field: optional string user_service_cid = 5;
1669
+ */
1670
+ userServiceCid?: string;
1671
+ /**
1672
+ * @generated from field: optional string operator_config_cid = 6;
1673
+ */
1674
+ operatorConfigCid?: string;
1675
+ /**
1676
+ * @generated from field: optional string user_service_request_cid = 7;
1677
+ */
1678
+ userServiceRequestCid?: string;
1679
+ /**
1680
+ * @generated from field: optional google.protobuf.Struct user_data = 8;
1681
+ */
1682
+ userData?: JsonObject;
1683
+ /**
1684
+ * @generated from field: optional google.protobuf.Struct metadata = 9;
1685
+ */
1686
+ metadata?: JsonObject;
1687
+ /**
1688
+ * Audit: why this change
1689
+ *
1690
+ * @generated from field: optional string change_reason = 10;
1691
+ */
1692
+ changeReason?: string;
1693
+ };
1694
+ /**
1695
+ * Describes the message silvana.orderbook.v1.UpdatePartyRequest.
1696
+ * Use `create(UpdatePartyRequestSchema)` to create a new message.
1697
+ */
1698
+ export declare const UpdatePartyRequestSchema: GenMessage<UpdatePartyRequest>;
1699
+ /**
1700
+ * @generated from message silvana.orderbook.v1.UpdatePartyResponse
1701
+ */
1702
+ export type UpdatePartyResponse = Message<"silvana.orderbook.v1.UpdatePartyResponse"> & {
1703
+ /**
1704
+ * @generated from field: bool success = 1;
1705
+ */
1706
+ success: boolean;
1707
+ /**
1708
+ * @generated from field: string message = 2;
1709
+ */
1710
+ message: string;
1711
+ /**
1712
+ * @generated from field: silvana.orderbook.v1.Party party = 3;
1713
+ */
1714
+ party?: Party;
1715
+ };
1716
+ /**
1717
+ * Describes the message silvana.orderbook.v1.UpdatePartyResponse.
1718
+ * Use `create(UpdatePartyResponseSchema)` to create a new message.
1719
+ */
1720
+ export declare const UpdatePartyResponseSchema: GenMessage<UpdatePartyResponse>;
1721
+ /**
1722
+ * Deactivate a party (soft delete - admin operation)
1723
+ *
1724
+ * @generated from message silvana.orderbook.v1.DeactivatePartyRequest
1725
+ */
1726
+ export type DeactivatePartyRequest = Message<"silvana.orderbook.v1.DeactivatePartyRequest"> & {
1727
+ /**
1728
+ * @generated from field: silvana.orderbook.v1.JWTAuth auth = 1;
1729
+ */
1730
+ auth?: JWTAuth;
1731
+ /**
1732
+ * @generated from field: string party_id = 2;
1733
+ */
1734
+ partyId: string;
1735
+ /**
1736
+ * @generated from field: uint64 expected_version = 3;
1737
+ */
1738
+ expectedVersion: bigint;
1739
+ /**
1740
+ * Required for deactivation
1741
+ *
1742
+ * @generated from field: string change_reason = 4;
1743
+ */
1744
+ changeReason: string;
1745
+ };
1746
+ /**
1747
+ * Describes the message silvana.orderbook.v1.DeactivatePartyRequest.
1748
+ * Use `create(DeactivatePartyRequestSchema)` to create a new message.
1749
+ */
1750
+ export declare const DeactivatePartyRequestSchema: GenMessage<DeactivatePartyRequest>;
1751
+ /**
1752
+ * @generated from message silvana.orderbook.v1.DeactivatePartyResponse
1753
+ */
1754
+ export type DeactivatePartyResponse = Message<"silvana.orderbook.v1.DeactivatePartyResponse"> & {
1755
+ /**
1756
+ * @generated from field: bool success = 1;
1757
+ */
1758
+ success: boolean;
1759
+ /**
1760
+ * @generated from field: string message = 2;
1761
+ */
1762
+ message: string;
1763
+ /**
1764
+ * @generated from field: silvana.orderbook.v1.Party party = 3;
1765
+ */
1766
+ party?: Party;
1767
+ };
1768
+ /**
1769
+ * Describes the message silvana.orderbook.v1.DeactivatePartyResponse.
1770
+ * Use `create(DeactivatePartyResponseSchema)` to create a new message.
1771
+ */
1772
+ export declare const DeactivatePartyResponseSchema: GenMessage<DeactivatePartyResponse>;
1773
+ /**
1774
+ * Get party change history (audit trail)
1775
+ *
1776
+ * @generated from message silvana.orderbook.v1.GetPartyHistoryRequest
1777
+ */
1778
+ export type GetPartyHistoryRequest = Message<"silvana.orderbook.v1.GetPartyHistoryRequest"> & {
1779
+ /**
1780
+ * @generated from field: silvana.orderbook.v1.JWTAuth auth = 1;
1781
+ */
1782
+ auth?: JWTAuth;
1783
+ /**
1784
+ * @generated from field: string party_id = 2;
1785
+ */
1786
+ partyId: string;
1787
+ /**
1788
+ * @generated from field: optional uint32 limit = 3;
1789
+ */
1790
+ limit?: number;
1791
+ /**
1792
+ * @generated from field: optional uint32 offset = 4;
1793
+ */
1794
+ offset?: number;
1795
+ };
1796
+ /**
1797
+ * Describes the message silvana.orderbook.v1.GetPartyHistoryRequest.
1798
+ * Use `create(GetPartyHistoryRequestSchema)` to create a new message.
1799
+ */
1800
+ export declare const GetPartyHistoryRequestSchema: GenMessage<GetPartyHistoryRequest>;
1801
+ /**
1802
+ * Single entry in party history
1803
+ *
1804
+ * @generated from message silvana.orderbook.v1.PartyHistoryEntry
1805
+ */
1806
+ export type PartyHistoryEntry = Message<"silvana.orderbook.v1.PartyHistoryEntry"> & {
1807
+ /**
1808
+ * @generated from field: uint64 history_id = 1;
1809
+ */
1810
+ historyId: bigint;
1811
+ /**
1812
+ * @generated from field: string party_id = 2;
1813
+ */
1814
+ partyId: string;
1815
+ /**
1816
+ * created, updated, deactivated, reactivated
1817
+ *
1818
+ * @generated from field: string action = 3;
1819
+ */
1820
+ action: string;
1821
+ /**
1822
+ * @generated from field: string changed_by = 4;
1823
+ */
1824
+ changedBy: string;
1825
+ /**
1826
+ * @generated from field: optional string change_reason = 5;
1827
+ */
1828
+ changeReason?: string;
1829
+ /**
1830
+ * @generated from field: uint64 version = 6;
1831
+ */
1832
+ version: bigint;
1833
+ /**
1834
+ * Full party state at this version
1835
+ *
1836
+ * @generated from field: silvana.orderbook.v1.Party party_snapshot = 7;
1837
+ */
1838
+ partySnapshot?: Party;
1839
+ /**
1840
+ * @generated from field: google.protobuf.Timestamp created_at = 8;
1841
+ */
1842
+ createdAt?: Timestamp;
1843
+ };
1844
+ /**
1845
+ * Describes the message silvana.orderbook.v1.PartyHistoryEntry.
1846
+ * Use `create(PartyHistoryEntrySchema)` to create a new message.
1847
+ */
1848
+ export declare const PartyHistoryEntrySchema: GenMessage<PartyHistoryEntry>;
1849
+ /**
1850
+ * @generated from message silvana.orderbook.v1.GetPartyHistoryResponse
1851
+ */
1852
+ export type GetPartyHistoryResponse = Message<"silvana.orderbook.v1.GetPartyHistoryResponse"> & {
1853
+ /**
1854
+ * @generated from field: bool success = 1;
1855
+ */
1856
+ success: boolean;
1857
+ /**
1858
+ * @generated from field: string message = 2;
1859
+ */
1860
+ message: string;
1861
+ /**
1862
+ * @generated from field: repeated silvana.orderbook.v1.PartyHistoryEntry history = 3;
1863
+ */
1864
+ history: PartyHistoryEntry[];
1865
+ /**
1866
+ * @generated from field: uint32 total = 4;
1867
+ */
1868
+ total: number;
1869
+ };
1870
+ /**
1871
+ * Describes the message silvana.orderbook.v1.GetPartyHistoryResponse.
1872
+ * Use `create(GetPartyHistoryResponseSchema)` to create a new message.
1873
+ */
1874
+ export declare const GetPartyHistoryResponseSchema: GenMessage<GetPartyHistoryResponse>;
1875
+ /**
1876
+ * Get a single party by ID
1877
+ *
1878
+ * @generated from message silvana.orderbook.v1.GetPartyRequest
1879
+ */
1880
+ export type GetPartyRequest = Message<"silvana.orderbook.v1.GetPartyRequest"> & {
1881
+ /**
1882
+ * @generated from field: silvana.orderbook.v1.JWTAuth auth = 1;
1883
+ */
1884
+ auth?: JWTAuth;
1885
+ /**
1886
+ * @generated from field: string party_id = 2;
1887
+ */
1888
+ partyId: string;
1889
+ };
1890
+ /**
1891
+ * Describes the message silvana.orderbook.v1.GetPartyRequest.
1892
+ * Use `create(GetPartyRequestSchema)` to create a new message.
1893
+ */
1894
+ export declare const GetPartyRequestSchema: GenMessage<GetPartyRequest>;
1895
+ /**
1896
+ * @generated from message silvana.orderbook.v1.GetPartyResponse
1897
+ */
1898
+ export type GetPartyResponse = Message<"silvana.orderbook.v1.GetPartyResponse"> & {
1899
+ /**
1900
+ * @generated from field: bool success = 1;
1901
+ */
1902
+ success: boolean;
1903
+ /**
1904
+ * @generated from field: string message = 2;
1905
+ */
1906
+ message: string;
1907
+ /**
1908
+ * @generated from field: silvana.orderbook.v1.Party party = 3;
1909
+ */
1910
+ party?: Party;
1911
+ };
1912
+ /**
1913
+ * Describes the message silvana.orderbook.v1.GetPartyResponse.
1914
+ * Use `create(GetPartyResponseSchema)` to create a new message.
1915
+ */
1916
+ export declare const GetPartyResponseSchema: GenMessage<GetPartyResponse>;
1917
+ /**
1918
+ * List parties with filters and pagination
1919
+ *
1920
+ * @generated from message silvana.orderbook.v1.GetPartiesRequest
1921
+ */
1922
+ export type GetPartiesRequest = Message<"silvana.orderbook.v1.GetPartiesRequest"> & {
1923
+ /**
1924
+ * @generated from field: silvana.orderbook.v1.JWTAuth auth = 1;
1925
+ */
1926
+ auth?: JWTAuth;
1927
+ /**
1928
+ * Filter by type: trader, operator, registry, issuer
1929
+ *
1930
+ * @generated from field: optional string party_type = 2;
1931
+ */
1932
+ partyType?: string;
1933
+ /**
1934
+ * If true, only return active parties (default: all)
1935
+ *
1936
+ * @generated from field: optional bool active_only = 3;
1937
+ */
1938
+ activeOnly?: boolean;
1939
+ /**
1940
+ * Max results (default: 50, max: 1000)
1941
+ *
1942
+ * @generated from field: optional uint32 limit = 4;
1943
+ */
1944
+ limit?: number;
1945
+ /**
1946
+ * Pagination offset
1947
+ *
1948
+ * @generated from field: optional uint32 offset = 5;
1949
+ */
1950
+ offset?: number;
1951
+ };
1952
+ /**
1953
+ * Describes the message silvana.orderbook.v1.GetPartiesRequest.
1954
+ * Use `create(GetPartiesRequestSchema)` to create a new message.
1955
+ */
1956
+ export declare const GetPartiesRequestSchema: GenMessage<GetPartiesRequest>;
1957
+ /**
1958
+ * @generated from message silvana.orderbook.v1.GetPartiesResponse
1959
+ */
1960
+ export type GetPartiesResponse = Message<"silvana.orderbook.v1.GetPartiesResponse"> & {
1961
+ /**
1962
+ * @generated from field: bool success = 1;
1963
+ */
1964
+ success: boolean;
1965
+ /**
1966
+ * @generated from field: string message = 2;
1967
+ */
1968
+ message: string;
1969
+ /**
1970
+ * @generated from field: repeated silvana.orderbook.v1.Party parties = 3;
1971
+ */
1972
+ parties: Party[];
1973
+ /**
1974
+ * @generated from field: uint32 total = 4;
1975
+ */
1976
+ total: number;
1977
+ };
1978
+ /**
1979
+ * Describes the message silvana.orderbook.v1.GetPartiesResponse.
1980
+ * Use `create(GetPartiesResponseSchema)` to create a new message.
1981
+ */
1982
+ export declare const GetPartiesResponseSchema: GenMessage<GetPartiesResponse>;
1629
1983
  /**
1630
1984
  * Party information
1631
1985
  *
@@ -1668,6 +2022,24 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
1668
2022
  * @generated from field: google.protobuf.Timestamp updated_at = 9;
1669
2023
  */
1670
2024
  updatedAt?: Timestamp;
2025
+ /**
2026
+ * UserService request contract ID
2027
+ *
2028
+ * @generated from field: optional string user_service_request_cid = 10;
2029
+ */
2030
+ userServiceRequestCid?: string;
2031
+ /**
2032
+ * User-specific data (KYC, credentials, etc.)
2033
+ *
2034
+ * @generated from field: google.protobuf.Struct user_data = 11;
2035
+ */
2036
+ userData?: JsonObject;
2037
+ /**
2038
+ * Optimistic locking version
2039
+ *
2040
+ * @generated from field: uint64 version = 12;
2041
+ */
2042
+ version: bigint;
1671
2043
  };
1672
2044
  /**
1673
2045
  * Describes the message silvana.orderbook.v1.Party.
@@ -2161,6 +2533,24 @@ export declare const OrderbookService: GenService<{
2161
2533
  input: typeof CancelOrderRequestSchema;
2162
2534
  output: typeof CancelOrderResponseSchema;
2163
2535
  };
2536
+ /**
2537
+ * Party operations
2538
+ *
2539
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.GetParty
2540
+ */
2541
+ getParty: {
2542
+ methodKind: "unary";
2543
+ input: typeof GetPartyRequestSchema;
2544
+ output: typeof GetPartyResponseSchema;
2545
+ };
2546
+ /**
2547
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.GetParties
2548
+ */
2549
+ getParties: {
2550
+ methodKind: "unary";
2551
+ input: typeof GetPartiesRequestSchema;
2552
+ output: typeof GetPartiesResponseSchema;
2553
+ };
2164
2554
  /**
2165
2555
  * Admin operations (require operator authentication)
2166
2556
  *
@@ -2171,6 +2561,30 @@ export declare const OrderbookService: GenService<{
2171
2561
  input: typeof CreatePartyRequestSchema;
2172
2562
  output: typeof CreatePartyResponseSchema;
2173
2563
  };
2564
+ /**
2565
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.UpdateParty
2566
+ */
2567
+ updateParty: {
2568
+ methodKind: "unary";
2569
+ input: typeof UpdatePartyRequestSchema;
2570
+ output: typeof UpdatePartyResponseSchema;
2571
+ };
2572
+ /**
2573
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.DeactivateParty
2574
+ */
2575
+ deactivateParty: {
2576
+ methodKind: "unary";
2577
+ input: typeof DeactivatePartyRequestSchema;
2578
+ output: typeof DeactivatePartyResponseSchema;
2579
+ };
2580
+ /**
2581
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.GetPartyHistory
2582
+ */
2583
+ getPartyHistory: {
2584
+ methodKind: "unary";
2585
+ input: typeof GetPartyHistoryRequestSchema;
2586
+ output: typeof GetPartyHistoryResponseSchema;
2587
+ };
2174
2588
  /**
2175
2589
  * @generated from rpc silvana.orderbook.v1.OrderbookService.CreateInstrument
2176
2590
  */
@@ -6,7 +6,7 @@ import { file_google_protobuf_empty, file_google_protobuf_struct, file_google_pr
6
6
  /**
7
7
  * Describes the file proto/silvana/orderbook/v1/orderbook.proto.
8
8
  */
9
- export const file_proto_silvana_orderbook_v1_orderbook = /*@__PURE__*/ fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAki5QIKCkluc3RydW1lbnQSFQoNaW5zdHJ1bWVudF9pZBgBIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzeW1ib2wYBCABKAkSGAoLZGVzY3JpcHRpb24YBSABKAlIAIgBARITCgZpc3N1ZXIYBiABKAlIAYgBARIVCghyZWdpc3RyeRgHIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEi3AUKBk1hcmtldBIRCgltYXJrZXRfaWQYASABKAkSNQoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhcKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAQgASgJEhMKC3BhaXJfc3ltYm9sGAUgASgJEhEKCWlzX2FjdGl2ZRgGIAEoCBIWCg5taW5fb3JkZXJfc2l6ZRgHIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgIIAEoCUgAiAEBEhEKCXRpY2tfc2l6ZRgJIAEoCRIRCgltYWtlcl9mZWUYCiABKAkSEQoJdGFrZXJfZmVlGAsgASgJEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC3ByaWNlX2ZlZWRzGA8gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhoKDWN1cnJlbnRfcHJpY2UYECABKAFIA4gBARIXCgpjaGFuZ2VfMjRoGBEgASgBSASIAQESFwoKdm9sdW1lXzI0aBgSIAEoAUgFiAEBEjkKEHByaWNlX3VwZGF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQFCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2N1cnJlbnRfcHJpY2VCDQoLX2NoYW5nZV8yNGhCDQoLX3ZvbHVtZV8yNGhCEwoRX3ByaWNlX3VwZGF0ZWRfYXQi9wYKBU9yZGVyEhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg4KBnRyYWRlchgEIAEoCRIdChB0cmFkZXJfb3JkZXJfcmVmGAUgASgJSACIAQESFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSDQoFcHJpY2UYCCABKAkSEAoIcXVhbnRpdHkYCSABKAkSFwoPZmlsbGVkX3F1YW50aXR5GAogASgJEhgKEHBlbmRpbmdfcXVhbnRpdHkYCyABKAkSGgoScmVtYWluaW5nX3F1YW50aXR5GAwgASgJEjEKBnN0YXR1cxgNIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzEjgKDXRpbWVfaW5fZm9yY2UYDiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEg8KB3ZlcnNpb24YECABKAQSMQoLY3JlZGVudGlhbHMYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGBMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNhbmNlbGxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUITChFfdHJhZGVyX29yZGVyX3JlZkINCgtfZXhwaXJlc19hdEIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDwoNX2NhbmNlbGxlZF9hdCKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipREKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhUKDWJhc2VfcXVhbnRpdHkYBSABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBiABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgHIAEoCRI2CgZzdGF0dXMYCCABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEg8KB3ZlcnNpb24YCSABKAQSPQoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESSAofcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChVidXllcl9wcmVjb25maXJtYXRpb24YDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESSgohYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKFnNlbGxlcl9wcmVjb25maXJtYXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESSwoic2VsbGVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIdChBkdnBfcHJvcG9zYWxfY2lkGBAgASgJSAaIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgRIAEoCUgHiAEBEhQKB2R2cF9jaWQYEiABKAlICIgBARIaCg1kdnBfdXBkYXRlX2lkGBMgASgJSAmIAQESHgoRZHZwX3NldHRsZW1lbnRfaWQYFCABKAlICogBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgVIAEoCUgLiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGBYgASgJSAyIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGBcgASgJSA2IAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGBggASgJSA6IAQESHAoPc2V0dGxlZF9kdnBfY2lkGBkgASgJSA+IAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYGiABKAlIEIgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GBsgASgJSBGIAQESLgoKY3JlYXRlZF9hdBgcIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoPcHJlY29uZmlybWVkX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjcKDmR2cF9jcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjgKD2R2cF9hY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARI1CgxhbGxvY2F0ZWRfYXQYICABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBWIAQESMwoKc2V0dGxlZF9hdBghIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARI1CgxjYW5jZWxsZWRfYXQYIiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESMgoJZmFpbGVkX2F0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgYiAEBEhoKDWVycm9yX21lc3NhZ2UYJCABKAlIGYgBARIuCghtZXRhZGF0YRglIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIGogBAUIaChhfcHJlY29uZmlybWF0aW9uX3JlcXVlc3RCIgogX3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXRCGAoWX2J1eWVyX3ByZWNvbmZpcm1hdGlvbkIkCiJfYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhkKF19zZWxsZXJfcHJlY29uZmlybWF0aW9uQiUKI19zZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQgoKCF9kdnBfY2lkQhAKDl9kdnBfdXBkYXRlX2lkQhQKEl9kdnBfc2V0dGxlbWVudF9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEISChBfcHJlY29uZmlybWVkX2F0QhEKD19kdnBfY3JlYXRlZF9hdEISChBfZHZwX2FjY2VwdGVkX2F0Qg8KDV9hbGxvY2F0ZWRfYXRCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLNAQoKT3JkZXJNYXRjaBIQCghtYXRjaF9pZBgBIAEoBBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAIgASgEEhQKDGJpZF9vcmRlcl9pZBgDIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgEIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAUgASgJEhUKDW1hdGNoZWRfcHJpY2UYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoBBIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSKvAgoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0ieAoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCL4AQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSK0AQoVR2V0SW5zdHJ1bWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhwKD2luc3RydW1lbnRfdHlwZRgCIAEoCUgAiAEBEhIKBWxpbWl0GAMgASgNSAGIAQESEwoGb2Zmc2V0GAQgASgNSAKIAQFCEgoQX2luc3RydW1lbnRfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0SW5zdHJ1bWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLaW5zdHJ1bWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50Eg0KBXRvdGFsGAQgASgNItoCChFHZXRNYXJrZXRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBI6CgttYXJrZXRfdHlwZRgCIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGVIAIgBARIcCg9iYXNlX2luc3RydW1lbnQYAyABKAlIAYgBARIdChBxdW90ZV9pbnN0cnVtZW50GAQgASgJSAKIAQESGAoLYWN0aXZlX29ubHkYBSABKAhIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg4KDF9tYXJrZXRfdHlwZUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50Qg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJ0ChJHZXRNYXJrZXRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi0KB21hcmtldHMYAyADKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQSDQoFdG90YWwYBCABKA0iqQIKFkdldE9yZGVySGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQidwoXR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIlcKFEdldE1hcmtldERhdGFSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhIKCm1hcmtldF9pZHMYAiADKAkicAoVR2V0TWFya2V0RGF0YVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgttYXJrZXRfZGF0YRgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldERhdGEiqAIKFUdldFNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0U2V0dGxlbWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLc2V0dGxlbWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50Eg0KBXRvdGFsGAQgASgNInkKGVN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQFCCAoGX2RlcHRoIocDCg9PcmRlcmJvb2tVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEkUKC3VwZGF0ZV90eXBlGAIgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlLlVwZGF0ZVR5cGUSOQoLYmlkX3VwZGF0ZXMYAyADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBI7Cg1vZmZlcl91cGRhdGVzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiWgoKVXBkYXRlVHlwZRIbChdVUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFVQREFURV9UWVBFX1NOQVBTSE9UEAESFQoRVVBEQVRFX1RZUEVfREVMVEEQAiJrChZTdWJzY3JpYmVPcmRlcnNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQirQMKC09yZGVyVXBkYXRlEj8KCmV2ZW50X3R5cGUYASABKA4yKy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZS5FdmVudFR5cGUSKgoFb3JkZXIYAiABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchI0CgVtYXRjaBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hIAIgBARItCgl0aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsEBCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhYKEkVWRU5UX1RZUEVfQ1JFQVRFRBABEhYKEkVWRU5UX1RZUEVfVVBEQVRFRBACEhUKEUVWRU5UX1RZUEVfRklMTEVEEAMSHwobRVZFTlRfVFlQRV9QQVJUSUFMTFlfRklMTEVEEAQSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQBRIWChJFVkVOVF9UWVBFX0VYUElSRUQQBkIICgZfbWF0Y2gicAobU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQi8QMKEFNldHRsZW1lbnRVcGRhdGUSRAoKZXZlbnRfdHlwZRgBIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUuRXZlbnRUeXBlEjoKCHByb3Bvc2FsGAIgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsEi0KCXRpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqwIKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobRVZFTlRfVFlQRV9QUk9QT1NBTF9DUkVBVEVEEAESKAokRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEEAISGwoXRVZFTlRfVFlQRV9QUkVDT05GSVJNRUQQAxIaChZFVkVOVF9UWVBFX0RWUF9DUkVBVEVEEAQSGwoXRVZFTlRfVFlQRV9EVlBfQUNDRVBURUQQBRIYChRFVkVOVF9UWVBFX0FMTE9DQVRFRBAGEhYKEkVWRU5UX1RZUEVfU0VUVExFRBAHEhUKEUVWRU5UX1RZUEVfRkFJTEVEEAgSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQCSKhBAoSU3VibWl0T3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg0KBXByaWNlGAQgASgJEhAKCHF1YW50aXR5GAUgASgJEjgKDXRpbWVfaW5fZm9yY2UYBiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEh0KEHRyYWRlcl9vcmRlcl9yZWYYCCABKAlIAYgBARIxCgtjcmVkZW50aWFscxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIyCgxyZXF1aXJlbWVudHMYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCDQoLX2V4cGlyZXNfYXRCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiUwoSQ2FuY2VsT3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCG9yZGVyX2lkGAIgASgEInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIipgIKEkNyZWF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGEiYwoTQ3JlYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSLfAgoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YSK/AgoXQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFQoNaW5zdHJ1bWVudF9pZBgCIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAyABKAkSDAoEbmFtZRgEIAEoCRIOCgZzeW1ib2wYBSABKAkSGAoLZGVzY3JpcHRpb24YBiABKAlIAIgBARITCgZpc3N1ZXIYByABKAlIAYgBARIVCghyZWdpc3RyeRgIIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEicgoYQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI0CgppbnN0cnVtZW50GAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudCLzAwoTQ3JlYXRlTWFya2V0UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSNQoLbWFya2V0X3R5cGUYAyABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhwKD2Jhc2VfaW5zdHJ1bWVudBgEIAEoCUgAiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBSABKAlIAYgBARIWCg5taW5fb3JkZXJfc2l6ZRgGIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgHIAEoCUgCiAEBEhEKCXRpY2tfc2l6ZRgIIAEoCRIRCgltYWtlcl9mZWUYCSABKAkSEQoJdGFrZXJfZmVlGAogASgJEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEjEKC3ByaWNlX2ZlZWRzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHMiZgoUQ3JlYXRlTWFya2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCKNAQodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJwCh5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCpRCglPcmRlclR5cGUSGgoWT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEhIKDk9SREVSX1RZUEVfQklEEAESFAoQT1JERVJfVFlQRV9PRkZFUhACKq0BCgtPcmRlclN0YXR1cxIcChhPUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNPUkRFUl9TVEFUVVNfQUNUSVZFEAESGAoUT1JERVJfU1RBVFVTX1BBUlRJQUwQAhIXChNPUkRFUl9TVEFUVVNfRklMTEVEEAMSGgoWT1JERVJfU1RBVFVTX0NBTkNFTExFRBAEEhgKFE9SREVSX1NUQVRVU19FWFBJUkVEEAUqiAEKC1RpbWVJbkZvcmNlEh0KGVRJTUVfSU5fRk9SQ0VfVU5TUEVDSUZJRUQQABIVChFUSU1FX0lOX0ZPUkNFX0dUQxABEhUKEVRJTUVfSU5fRk9SQ0VfSU9DEAISFQoRVElNRV9JTl9GT1JDRV9GT0sQAxIVChFUSU1FX0lOX0ZPUkNFX0dURBAEKtoCChBTZXR0bGVtZW50U3RhdHVzEiEKHVNFVFRMRU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZU0VUVExFTUVOVF9TVEFUVVNfQ1JFQVRFRBABEiIKHlNFVFRMRU1FTlRfU1RBVFVTX1BSRUNPTkZJUk1FRBACEikKJVNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0NSRUFURUQQAxIqCiZTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9BQ0NFUFRFRBAEEisKJ1NFVFRMRU1FTlRfU1RBVFVTX0lOU1RSVU1FTlRTX0FMTE9DQVRFRBAFEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1NFVFRMRUQQBhIfChtTRVRUTEVNRU5UX1NUQVRVU19DQU5DRUxMRUQQBxIcChhTRVRUTEVNRU5UX1NUQVRVU19GQUlMRUQQCCp2CgpNYXJrZXRUeXBlEhsKF01BUktFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VUX1RZUEVfR0VORVJBTBABEh0KGU1BUktFVF9UWVBFX0lOU1RJVFVUSU9OQUwQAhITCg9NQVJLRVRfVFlQRV9PVEMQAzLYDgoQT3JkZXJib29rU2VydmljZRJcCglHZXRPcmRlcnMSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVzcG9uc2USdAoRR2V0T3JkZXJib29rRGVwdGgSLi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QaLy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEoMBChZHZXRTZXR0bGVtZW50UHJvcG9zYWxzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USawoOR2V0SW5zdHJ1bWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1Jlc3BvbnNlEl8KCkdldE1hcmtldHMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXNwb25zZRJuCg9HZXRPcmRlckhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USaAoNR2V0TWFya2V0RGF0YRIqLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXF1ZXN0Gisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlc3BvbnNlEmsKDkdldFNldHRsZW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXNwb25zZRJiCgtTdWJtaXRPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVzcG9uc2USYgoLQ2FuY2VsT3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlc3BvbnNlEmIKC0NyZWF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXNwb25zZRJxChBDcmVhdGVJbnN0cnVtZW50Ei0uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QaLi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USZQoMQ3JlYXRlTWFya2V0Eikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVxdWVzdBoqLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlc3BvbnNlEoMBChZVcGRhdGVNYXJrZXRQcmljZUZlZWRzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USbgoSU3Vic2NyaWJlT3JkZXJib29rEi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBolLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZTABEmQKD1N1YnNjcmliZU9yZGVycxIsLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyc1JlcXVlc3QaIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZTABEnMKFFN1YnNjcmliZVNldHRsZW1lbnRzEjEuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZTABQjRaMmdpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87b3JkZXJib29rYgZwcm90bzM", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
9
+ export const file_proto_silvana_orderbook_v1_orderbook = /*@__PURE__*/ fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAki5QIKCkluc3RydW1lbnQSFQoNaW5zdHJ1bWVudF9pZBgBIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzeW1ib2wYBCABKAkSGAoLZGVzY3JpcHRpb24YBSABKAlIAIgBARITCgZpc3N1ZXIYBiABKAlIAYgBARIVCghyZWdpc3RyeRgHIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEi3AUKBk1hcmtldBIRCgltYXJrZXRfaWQYASABKAkSNQoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhcKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAQgASgJEhMKC3BhaXJfc3ltYm9sGAUgASgJEhEKCWlzX2FjdGl2ZRgGIAEoCBIWCg5taW5fb3JkZXJfc2l6ZRgHIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgIIAEoCUgAiAEBEhEKCXRpY2tfc2l6ZRgJIAEoCRIRCgltYWtlcl9mZWUYCiABKAkSEQoJdGFrZXJfZmVlGAsgASgJEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC3ByaWNlX2ZlZWRzGA8gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhoKDWN1cnJlbnRfcHJpY2UYECABKAFIA4gBARIXCgpjaGFuZ2VfMjRoGBEgASgBSASIAQESFwoKdm9sdW1lXzI0aBgSIAEoAUgFiAEBEjkKEHByaWNlX3VwZGF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQFCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2N1cnJlbnRfcHJpY2VCDQoLX2NoYW5nZV8yNGhCDQoLX3ZvbHVtZV8yNGhCEwoRX3ByaWNlX3VwZGF0ZWRfYXQi9wYKBU9yZGVyEhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg4KBnRyYWRlchgEIAEoCRIdChB0cmFkZXJfb3JkZXJfcmVmGAUgASgJSACIAQESFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSDQoFcHJpY2UYCCABKAkSEAoIcXVhbnRpdHkYCSABKAkSFwoPZmlsbGVkX3F1YW50aXR5GAogASgJEhgKEHBlbmRpbmdfcXVhbnRpdHkYCyABKAkSGgoScmVtYWluaW5nX3F1YW50aXR5GAwgASgJEjEKBnN0YXR1cxgNIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzEjgKDXRpbWVfaW5fZm9yY2UYDiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEg8KB3ZlcnNpb24YECABKAQSMQoLY3JlZGVudGlhbHMYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGBMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNhbmNlbGxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUITChFfdHJhZGVyX29yZGVyX3JlZkINCgtfZXhwaXJlc19hdEIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDwoNX2NhbmNlbGxlZF9hdCKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipREKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhUKDWJhc2VfcXVhbnRpdHkYBSABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBiABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgHIAEoCRI2CgZzdGF0dXMYCCABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEg8KB3ZlcnNpb24YCSABKAQSPQoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESSAofcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChVidXllcl9wcmVjb25maXJtYXRpb24YDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESSgohYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKFnNlbGxlcl9wcmVjb25maXJtYXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESSwoic2VsbGVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIdChBkdnBfcHJvcG9zYWxfY2lkGBAgASgJSAaIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgRIAEoCUgHiAEBEhQKB2R2cF9jaWQYEiABKAlICIgBARIaCg1kdnBfdXBkYXRlX2lkGBMgASgJSAmIAQESHgoRZHZwX3NldHRsZW1lbnRfaWQYFCABKAlICogBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgVIAEoCUgLiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGBYgASgJSAyIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGBcgASgJSA2IAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGBggASgJSA6IAQESHAoPc2V0dGxlZF9kdnBfY2lkGBkgASgJSA+IAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYGiABKAlIEIgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GBsgASgJSBGIAQESLgoKY3JlYXRlZF9hdBgcIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoPcHJlY29uZmlybWVkX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjcKDmR2cF9jcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjgKD2R2cF9hY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARI1CgxhbGxvY2F0ZWRfYXQYICABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBWIAQESMwoKc2V0dGxlZF9hdBghIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARI1CgxjYW5jZWxsZWRfYXQYIiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESMgoJZmFpbGVkX2F0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgYiAEBEhoKDWVycm9yX21lc3NhZ2UYJCABKAlIGYgBARIuCghtZXRhZGF0YRglIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIGogBAUIaChhfcHJlY29uZmlybWF0aW9uX3JlcXVlc3RCIgogX3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXRCGAoWX2J1eWVyX3ByZWNvbmZpcm1hdGlvbkIkCiJfYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhkKF19zZWxsZXJfcHJlY29uZmlybWF0aW9uQiUKI19zZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQgoKCF9kdnBfY2lkQhAKDl9kdnBfdXBkYXRlX2lkQhQKEl9kdnBfc2V0dGxlbWVudF9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEISChBfcHJlY29uZmlybWVkX2F0QhEKD19kdnBfY3JlYXRlZF9hdEISChBfZHZwX2FjY2VwdGVkX2F0Qg8KDV9hbGxvY2F0ZWRfYXRCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLNAQoKT3JkZXJNYXRjaBIQCghtYXRjaF9pZBgBIAEoBBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAIgASgEEhQKDGJpZF9vcmRlcl9pZBgDIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgEIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAUgASgJEhUKDW1hdGNoZWRfcHJpY2UYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoBBIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSKvAgoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0ieAoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCL4AQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSK0AQoVR2V0SW5zdHJ1bWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhwKD2luc3RydW1lbnRfdHlwZRgCIAEoCUgAiAEBEhIKBWxpbWl0GAMgASgNSAGIAQESEwoGb2Zmc2V0GAQgASgNSAKIAQFCEgoQX2luc3RydW1lbnRfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0SW5zdHJ1bWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLaW5zdHJ1bWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50Eg0KBXRvdGFsGAQgASgNItoCChFHZXRNYXJrZXRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBI6CgttYXJrZXRfdHlwZRgCIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGVIAIgBARIcCg9iYXNlX2luc3RydW1lbnQYAyABKAlIAYgBARIdChBxdW90ZV9pbnN0cnVtZW50GAQgASgJSAKIAQESGAoLYWN0aXZlX29ubHkYBSABKAhIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg4KDF9tYXJrZXRfdHlwZUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50Qg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJ0ChJHZXRNYXJrZXRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi0KB21hcmtldHMYAyADKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQSDQoFdG90YWwYBCABKA0iqQIKFkdldE9yZGVySGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQidwoXR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIlcKFEdldE1hcmtldERhdGFSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhIKCm1hcmtldF9pZHMYAiADKAkicAoVR2V0TWFya2V0RGF0YVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgttYXJrZXRfZGF0YRgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldERhdGEiqAIKFUdldFNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0U2V0dGxlbWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLc2V0dGxlbWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50Eg0KBXRvdGFsGAQgASgNInkKGVN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQFCCAoGX2RlcHRoIocDCg9PcmRlcmJvb2tVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEkUKC3VwZGF0ZV90eXBlGAIgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlLlVwZGF0ZVR5cGUSOQoLYmlkX3VwZGF0ZXMYAyADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBI7Cg1vZmZlcl91cGRhdGVzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiWgoKVXBkYXRlVHlwZRIbChdVUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFVQREFURV9UWVBFX1NOQVBTSE9UEAESFQoRVVBEQVRFX1RZUEVfREVMVEEQAiJrChZTdWJzY3JpYmVPcmRlcnNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQirQMKC09yZGVyVXBkYXRlEj8KCmV2ZW50X3R5cGUYASABKA4yKy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZS5FdmVudFR5cGUSKgoFb3JkZXIYAiABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchI0CgVtYXRjaBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hIAIgBARItCgl0aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsEBCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhYKEkVWRU5UX1RZUEVfQ1JFQVRFRBABEhYKEkVWRU5UX1RZUEVfVVBEQVRFRBACEhUKEUVWRU5UX1RZUEVfRklMTEVEEAMSHwobRVZFTlRfVFlQRV9QQVJUSUFMTFlfRklMTEVEEAQSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQBRIWChJFVkVOVF9UWVBFX0VYUElSRUQQBkIICgZfbWF0Y2gicAobU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQi8QMKEFNldHRsZW1lbnRVcGRhdGUSRAoKZXZlbnRfdHlwZRgBIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUuRXZlbnRUeXBlEjoKCHByb3Bvc2FsGAIgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsEi0KCXRpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqwIKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobRVZFTlRfVFlQRV9QUk9QT1NBTF9DUkVBVEVEEAESKAokRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEEAISGwoXRVZFTlRfVFlQRV9QUkVDT05GSVJNRUQQAxIaChZFVkVOVF9UWVBFX0RWUF9DUkVBVEVEEAQSGwoXRVZFTlRfVFlQRV9EVlBfQUNDRVBURUQQBRIYChRFVkVOVF9UWVBFX0FMTE9DQVRFRBAGEhYKEkVWRU5UX1RZUEVfU0VUVExFRBAHEhUKEUVWRU5UX1RZUEVfRkFJTEVEEAgSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQCSKhBAoSU3VibWl0T3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg0KBXByaWNlGAQgASgJEhAKCHF1YW50aXR5GAUgASgJEjgKDXRpbWVfaW5fZm9yY2UYBiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEh0KEHRyYWRlcl9vcmRlcl9yZWYYCCABKAlIAYgBARIxCgtjcmVkZW50aWFscxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIyCgxyZXF1aXJlbWVudHMYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCDQoLX2V4cGlyZXNfYXRCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiUwoSQ2FuY2VsT3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCG9yZGVyX2lkGAIgASgEInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIilgMKEkNyZWF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCCABKAlIA4gBARIqCgl1c2VyX2RhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkImMKE0NyZWF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHki8QMKElVwZGF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhcKCnBhcnR5X25hbWUYBCABKAlIAIgBARIdChB1c2VyX3NlcnZpY2VfY2lkGAUgASgJSAGIAQESIAoTb3BlcmF0b3JfY29uZmlnX2NpZBgGIAEoCUgCiAEBEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgHIAEoCUgDiAEBEi8KCXVzZXJfZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIaCg1jaGFuZ2VfcmVhc29uGAogASgJSAaIAQFCDQoLX3BhcnR5X25hbWVCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIMCgpfdXNlcl9kYXRhQgsKCV9tZXRhZGF0YUIQCg5fY2hhbmdlX3JlYXNvbiJjChNVcGRhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IogBChZEZWFjdGl2YXRlUGFydHlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCHBhcnR5X2lkGAIgASgJEhgKEGV4cGVjdGVkX3ZlcnNpb24YAyABKAQSFQoNY2hhbmdlX3JlYXNvbhgEIAEoCSJnChdEZWFjdGl2YXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKVAQoWR2V0UGFydHlIaXN0b3J5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgVsaW1pdBgDIAEoDUgAiAEBEhMKBm9mZnNldBgEIAEoDUgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IoECChFQYXJ0eUhpc3RvcnlFbnRyeRISCgpoaXN0b3J5X2lkGAEgASgEEhAKCHBhcnR5X2lkGAIgASgJEg4KBmFjdGlvbhgDIAEoCRISCgpjaGFuZ2VkX2J5GAQgASgJEhoKDWNoYW5nZV9yZWFzb24YBSABKAlIAIgBARIPCgd2ZXJzaW9uGAYgASgEEjMKDnBhcnR5X3NuYXBzaG90GAcgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2NoYW5nZV9yZWFzb24ihAEKF0dldFBhcnR5SGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI4CgdoaXN0b3J5GAMgAygLMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHlIaXN0b3J5RW50cnkSDQoFdG90YWwYBCABKA0iUAoPR2V0UGFydHlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCHBhcnR5X2lkGAIgASgJImAKEEdldFBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHki0AEKEUdldFBhcnRpZXNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhcKCnBhcnR5X3R5cGUYAiABKAlIAIgBARIYCgthY3RpdmVfb25seRgDIAEoCEgBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDQoLX3BhcnR5X3R5cGVCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0InMKEkdldFBhcnRpZXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoHcGFydGllcxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Eg0KBXRvdGFsGAQgASgNIuADCgVQYXJ0eRIQCghwYXJ0eV9pZBgBIAEoCRISCgpwYXJ0eV9uYW1lGAIgASgJEhIKCnBhcnR5X3R5cGUYAyABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgEIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBSABKAlIAYgBARIRCglpc19hY3RpdmUYBiABKAgSLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAogASgJSAOIAQESKgoJdXNlcl9kYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgd2ZXJzaW9uGAwgASgEQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkIr8CChdDcmVhdGVJbnN0cnVtZW50UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIVCg1pbnN0cnVtZW50X2lkGAIgASgJEhcKD2luc3RydW1lbnRfdHlwZRgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBnN5bWJvbBgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhMKBmlzc3VlchgHIAEoCUgBiAEBEhUKCHJlZ2lzdHJ5GAggASgJSAKIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQFCDgoMX2Rlc2NyaXB0aW9uQgkKB19pc3N1ZXJCCwoJX3JlZ2lzdHJ5QgsKCV9tZXRhZGF0YSJyChhDcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjQKCmluc3RydW1lbnQYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50IvMDChNDcmVhdGVNYXJrZXRSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRI1CgttYXJrZXRfdHlwZRgDIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGUSHAoPYmFzZV9pbnN0cnVtZW50GAQgASgJSACIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgFIAEoCUgBiAEBEhYKDm1pbl9vcmRlcl9zaXplGAYgASgJEhsKDm1heF9vcmRlcl9zaXplGAcgASgJSAKIAQESEQoJdGlja19zaXplGAggASgJEhEKCW1ha2VyX2ZlZRgJIAEoCRIRCgl0YWtlcl9mZWUYCiABKAkSLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESMQoLcHJpY2VfZmVlZHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIRCg9fbWF4X29yZGVyX3NpemVCCwoJX21ldGFkYXRhQg4KDF9wcmljZV9mZWVkcyJmChRDcmVhdGVNYXJrZXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0Io0BCh1VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSLAoLcHJpY2VfZmVlZHMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0InAKHlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0KlEKCU9yZGVyVHlwZRIaChZPUkRFUl9UWVBFX1VOU1BFQ0lGSUVEEAASEgoOT1JERVJfVFlQRV9CSUQQARIUChBPUkRFUl9UWVBFX09GRkVSEAIqrQEKC09yZGVyU3RhdHVzEhwKGE9SREVSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE09SREVSX1NUQVRVU19BQ1RJVkUQARIYChRPUkRFUl9TVEFUVVNfUEFSVElBTBACEhcKE09SREVSX1NUQVRVU19GSUxMRUQQAxIaChZPUkRFUl9TVEFUVVNfQ0FOQ0VMTEVEEAQSGAoUT1JERVJfU1RBVFVTX0VYUElSRUQQBSqIAQoLVGltZUluRm9yY2USHQoZVElNRV9JTl9GT1JDRV9VTlNQRUNJRklFRBAAEhUKEVRJTUVfSU5fRk9SQ0VfR1RDEAESFQoRVElNRV9JTl9GT1JDRV9JT0MQAhIVChFUSU1FX0lOX0ZPUkNFX0ZPSxADEhUKEVRJTUVfSU5fRk9SQ0VfR1REEAQq2gIKEFNldHRsZW1lbnRTdGF0dXMSIQodU0VUVExFTUVOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlTRVRUTEVNRU5UX1NUQVRVU19DUkVBVEVEEAESIgoeU0VUVExFTUVOVF9TVEFUVVNfUFJFQ09ORklSTUVEEAISKQolU0VUVExFTUVOVF9TVEFUVVNfRFZQX1JFUVVFU1RfQ1JFQVRFRBADEioKJlNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0FDQ0VQVEVEEAQSKwonU0VUVExFTUVOVF9TVEFUVVNfSU5TVFJVTUVOVFNfQUxMT0NBVEVEEAUSHQoZU0VUVExFTUVOVF9TVEFUVVNfU0VUVExFRBAGEh8KG1NFVFRMRU1FTlRfU1RBVFVTX0NBTkNFTExFRBAHEhwKGFNFVFRMRU1FTlRfU1RBVFVTX0ZBSUxFRBAIKnYKCk1hcmtldFR5cGUSGwoXTUFSS0VUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNNQVJLRVRfVFlQRV9HRU5FUkFMEAESHQoZTUFSS0VUX1RZUEVfSU5TVElUVVRJT05BTBACEhMKD01BUktFVF9UWVBFX09UQxADMtgSChBPcmRlcmJvb2tTZXJ2aWNlElwKCUdldE9yZGVycxImLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1JlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXNwb25zZRJ0ChFHZXRPcmRlcmJvb2tEZXB0aBIuLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBovLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVzcG9uc2USgwEKFkdldFNldHRsZW1lbnRQcm9wb3NhbHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXNwb25zZRJrCg5HZXRJbnN0cnVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVzcG9uc2USXwoKR2V0TWFya2V0cxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1Jlc3BvbnNlEm4KD0dldE9yZGVySGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXNwb25zZRJoCg1HZXRNYXJrZXREYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVzcG9uc2USawoOR2V0U2V0dGxlbWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1Jlc3BvbnNlEmIKC1N1Ym1pdE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXNwb25zZRJiCgtDYW5jZWxPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVzcG9uc2USWQoIR2V0UGFydHkSJS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlc3BvbnNlEl8KCkdldFBhcnRpZXMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXNwb25zZRJiCgtDcmVhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVzcG9uc2USYgoLVXBkYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlc3BvbnNlEm4KD0RlYWN0aXZhdGVQYXJ0eRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXNwb25zZRJuCg9HZXRQYXJ0eUhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVzcG9uc2UScQoQQ3JlYXRlSW5zdHJ1bWVudBItLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXF1ZXN0Gi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEmUKDENyZWF0ZU1hcmtldBIpLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlcXVlc3QaKi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXNwb25zZRKDAQoWVXBkYXRlTWFya2V0UHJpY2VGZWVkcxIzLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEm4KElN1YnNjcmliZU9yZGVyYm9vaxIvLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QaJS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUwARJkCg9TdWJzY3JpYmVPcmRlcnMSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcnNSZXF1ZXN0GiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUwARJzChRTdWJzY3JpYmVTZXR0bGVtZW50cxIxLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUwAUI0WjJnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO29yZGVyYm9va2IGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
10
10
  /**
11
11
  * Describes the message silvana.orderbook.v1.JWTAuth.
12
12
  * Use `create(JWTAuthSchema)` to create a new message.
@@ -307,41 +307,96 @@ export const CreatePartyRequestSchema = /*@__PURE__*/ messageDesc(file_proto_sil
307
307
  * Use `create(CreatePartyResponseSchema)` to create a new message.
308
308
  */
309
309
  export const CreatePartyResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 37);
310
+ /**
311
+ * Describes the message silvana.orderbook.v1.UpdatePartyRequest.
312
+ * Use `create(UpdatePartyRequestSchema)` to create a new message.
313
+ */
314
+ export const UpdatePartyRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 38);
315
+ /**
316
+ * Describes the message silvana.orderbook.v1.UpdatePartyResponse.
317
+ * Use `create(UpdatePartyResponseSchema)` to create a new message.
318
+ */
319
+ export const UpdatePartyResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 39);
320
+ /**
321
+ * Describes the message silvana.orderbook.v1.DeactivatePartyRequest.
322
+ * Use `create(DeactivatePartyRequestSchema)` to create a new message.
323
+ */
324
+ export const DeactivatePartyRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 40);
325
+ /**
326
+ * Describes the message silvana.orderbook.v1.DeactivatePartyResponse.
327
+ * Use `create(DeactivatePartyResponseSchema)` to create a new message.
328
+ */
329
+ export const DeactivatePartyResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 41);
330
+ /**
331
+ * Describes the message silvana.orderbook.v1.GetPartyHistoryRequest.
332
+ * Use `create(GetPartyHistoryRequestSchema)` to create a new message.
333
+ */
334
+ export const GetPartyHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 42);
335
+ /**
336
+ * Describes the message silvana.orderbook.v1.PartyHistoryEntry.
337
+ * Use `create(PartyHistoryEntrySchema)` to create a new message.
338
+ */
339
+ export const PartyHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 43);
340
+ /**
341
+ * Describes the message silvana.orderbook.v1.GetPartyHistoryResponse.
342
+ * Use `create(GetPartyHistoryResponseSchema)` to create a new message.
343
+ */
344
+ export const GetPartyHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 44);
345
+ /**
346
+ * Describes the message silvana.orderbook.v1.GetPartyRequest.
347
+ * Use `create(GetPartyRequestSchema)` to create a new message.
348
+ */
349
+ export const GetPartyRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 45);
350
+ /**
351
+ * Describes the message silvana.orderbook.v1.GetPartyResponse.
352
+ * Use `create(GetPartyResponseSchema)` to create a new message.
353
+ */
354
+ export const GetPartyResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 46);
355
+ /**
356
+ * Describes the message silvana.orderbook.v1.GetPartiesRequest.
357
+ * Use `create(GetPartiesRequestSchema)` to create a new message.
358
+ */
359
+ export const GetPartiesRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 47);
360
+ /**
361
+ * Describes the message silvana.orderbook.v1.GetPartiesResponse.
362
+ * Use `create(GetPartiesResponseSchema)` to create a new message.
363
+ */
364
+ export const GetPartiesResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 48);
310
365
  /**
311
366
  * Describes the message silvana.orderbook.v1.Party.
312
367
  * Use `create(PartySchema)` to create a new message.
313
368
  */
314
- export const PartySchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 38);
369
+ export const PartySchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 49);
315
370
  /**
316
371
  * Describes the message silvana.orderbook.v1.CreateInstrumentRequest.
317
372
  * Use `create(CreateInstrumentRequestSchema)` to create a new message.
318
373
  */
319
- export const CreateInstrumentRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 39);
374
+ export const CreateInstrumentRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 50);
320
375
  /**
321
376
  * Describes the message silvana.orderbook.v1.CreateInstrumentResponse.
322
377
  * Use `create(CreateInstrumentResponseSchema)` to create a new message.
323
378
  */
324
- export const CreateInstrumentResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 40);
379
+ export const CreateInstrumentResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 51);
325
380
  /**
326
381
  * Describes the message silvana.orderbook.v1.CreateMarketRequest.
327
382
  * Use `create(CreateMarketRequestSchema)` to create a new message.
328
383
  */
329
- export const CreateMarketRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 41);
384
+ export const CreateMarketRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 52);
330
385
  /**
331
386
  * Describes the message silvana.orderbook.v1.CreateMarketResponse.
332
387
  * Use `create(CreateMarketResponseSchema)` to create a new message.
333
388
  */
334
- export const CreateMarketResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 42);
389
+ export const CreateMarketResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 53);
335
390
  /**
336
391
  * Describes the message silvana.orderbook.v1.UpdateMarketPriceFeedsRequest.
337
392
  * Use `create(UpdateMarketPriceFeedsRequestSchema)` to create a new message.
338
393
  */
339
- export const UpdateMarketPriceFeedsRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 43);
394
+ export const UpdateMarketPriceFeedsRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 54);
340
395
  /**
341
396
  * Describes the message silvana.orderbook.v1.UpdateMarketPriceFeedsResponse.
342
397
  * Use `create(UpdateMarketPriceFeedsResponseSchema)` to create a new message.
343
398
  */
344
- export const UpdateMarketPriceFeedsResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 44);
399
+ export const UpdateMarketPriceFeedsResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 55);
345
400
  /**
346
401
  * Order type enumeration
347
402
  *