From 5382863b0b68875a60164d4c96f8ce5ec812a735 Mon Sep 17 00:00:00 2001 From: huyulong <1838407198@qq.com> Date: Sat, 23 Nov 2024 14:08:04 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=8E=A5=E5=8F=A3=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaofang/Assets/Plugins/System.Buffers.dll | Bin 0 -> 27992 bytes .../Assets/Plugins/System.Buffers.dll.meta | 33 + xiaofang/Assets/Plugins/System.Memory.dll | Bin 0 -> 148760 bytes .../Assets/Plugins/System.Memory.dll.meta | 33 + xiaofang/Assets/Scenes/Tmap 1.meta | 8 + xiaofang/Assets/Scenes/Tmap 1.unity | 62 + xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset | Bin 0 -> 646648 bytes .../Assets/Scenes/Tmap 1/NavMesh.asset.meta | 8 + xiaofang/Assets/Script/NewBehaviourScript.cs | 21 + .../Assets/Script/NewBehaviourScript.cs.meta | 11 + xiaofang/Assets/Script/login/login.cs | 8 +- xiaofang/Assets/UnityWebSocket.meta | 10 + xiaofang/Assets/UnityWebSocket/Demo.meta | 8 + .../UnityWebSocket/Demo/DemoScene.unity | 242 + .../UnityWebSocket/Demo/DemoScene.unity.meta | 7 + .../UnityWebSocket/Demo/UnityWebSocketDemo.cs | 200 + .../Demo/UnityWebSocketDemo.cs.meta | 12 + xiaofang/Assets/UnityWebSocket/Plugins.meta | 9 + .../Assets/UnityWebSocket/Plugins/WebGL.meta | 8 + .../Plugins/WebGL/WebSocket.jslib | 338 ++ .../Plugins/WebGL/WebSocket.jslib.meta | 42 + xiaofang/Assets/UnityWebSocket/Scripts.meta | 8 + .../Assets/UnityWebSocket/Scripts/Editor.meta | 8 + .../Scripts/Editor/SettingsWindow.cs | 212 + .../Scripts/Editor/SettingsWindow.cs.meta | 11 + .../Editor/UnityWebSocket.Editor.asmdef | 16 + .../Editor/UnityWebSocket.Editor.asmdef.meta | 7 + .../UnityWebSocket/Scripts/Runtime.meta | 8 + .../UnityWebSocket/Scripts/Runtime/Core.meta | 8 + .../Scripts/Runtime/Core/CloseEventArgs.cs | 89 + .../Runtime/Core/CloseEventArgs.cs.meta | 11 + .../Scripts/Runtime/Core/CloseStatusCode.cs | 91 + .../Runtime/Core/CloseStatusCode.cs.meta | 11 + .../Scripts/Runtime/Core/ErrorEventArgs.cs | 59 + .../Runtime/Core/ErrorEventArgs.cs.meta | 11 + .../Scripts/Runtime/Core/IWebSocket.cs | 143 + .../Scripts/Runtime/Core/IWebSocket.cs.meta | 11 + .../Scripts/Runtime/Core/MessageEventArgs.cs | 115 + .../Runtime/Core/MessageEventArgs.cs.meta | 11 + .../Scripts/Runtime/Core/Opcode.cs | 26 + .../Scripts/Runtime/Core/Opcode.cs.meta | 11 + .../Scripts/Runtime/Core/OpenEventArgs.cs | 11 + .../Runtime/Core/OpenEventArgs.cs.meta | 11 + .../Scripts/Runtime/Core/Settings.cs | 12 + .../Scripts/Runtime/Core/Settings.cs.meta | 11 + .../Scripts/Runtime/Core/WebSocketState.cs | 36 + .../Runtime/Core/WebSocketState.cs.meta | 11 + .../Scripts/Runtime/Implementation.meta | 8 + .../Runtime/Implementation/NoWebGL.meta | 8 + .../Implementation/NoWebGL/WebSocket.cs | 329 ++ .../Implementation/NoWebGL/WebSocket.cs.meta | 11 + .../NoWebGL/WebSocketManager.cs | 74 + .../NoWebGL/WebSocketManager.cs.meta | 11 + .../Scripts/Runtime/Implementation/WebGL.meta | 8 + .../Runtime/Implementation/WebGL/WebSocket.cs | 147 + .../Implementation/WebGL/WebSocket.cs.meta | 12 + .../Implementation/WebGL/WebSocketManager.cs | 153 + .../WebGL/WebSocketManager.cs.meta | 11 + .../Runtime/UnityWebSocket.Runtime.asmdef | 12 + .../UnityWebSocket.Runtime.asmdef.meta | 7 + xiaofang/Assets/comm/Proto.meta | 8 + xiaofang/Assets/comm/Proto/Config.cs | 83 + xiaofang/Assets/comm/Proto/Config.cs.meta | 11 + xiaofang/Assets/comm/Proto/Fps.cs | 1099 ++++ xiaofang/Assets/comm/Proto/Fps.cs.meta | 11 + xiaofang/Assets/comm/Proto/Hall.cs | 4803 +++++++++++++++++ xiaofang/Assets/comm/Proto/Hall.cs.meta | 11 + xiaofang/Assets/comm/Proto/Join.cs | 675 +++ xiaofang/Assets/comm/Proto/Join.cs.meta | 11 + .../Assets/comm/Proto/MessageBroadcast.cs | 525 ++ .../comm/Proto/MessageBroadcast.cs.meta | 11 + xiaofang/Assets/comm/Proto/Move.cs | 1927 +++++++ xiaofang/Assets/comm/Proto/Move.cs.meta | 11 + xiaofang/Assets/comm/Proto/Prop.cs | 1921 +++++++ xiaofang/Assets/comm/Proto/Prop.cs.meta | 11 + xiaofang/Assets/comm/Proto/ProtoBufffer.cs | 28 + .../Assets/comm/Proto/ProtoBufffer.cs.meta | 11 + xiaofang/Assets/comm/Proto/Room.cs | 2750 ++++++++++ xiaofang/Assets/comm/Proto/Room.cs.meta | 11 + xiaofang/Assets/comm/Proto/Task.cs | 2826 ++++++++++ xiaofang/Assets/comm/Proto/Task.cs.meta | 11 + xiaofang/Assets/comm/Proto/User.cs | 1031 ++++ xiaofang/Assets/comm/Proto/User.cs.meta | 11 + xiaofang/Assets/{test => comm/Proto}/Ws.cs | 2 +- .../Assets/{test => comm/Proto}/Ws.cs.meta | 2 +- xiaofang/Assets/comm/WEBScriptListener.cs | 215 + .../Assets/comm/WEBScriptListener.cs.meta | 11 + xiaofang/Assets/comm/test.cs | 347 ++ xiaofang/Assets/comm/test.cs.meta | 11 + 89 files changed, 21189 insertions(+), 6 deletions(-) create mode 100644 xiaofang/Assets/Plugins/System.Buffers.dll create mode 100644 xiaofang/Assets/Plugins/System.Buffers.dll.meta create mode 100644 xiaofang/Assets/Plugins/System.Memory.dll create mode 100644 xiaofang/Assets/Plugins/System.Memory.dll.meta create mode 100644 xiaofang/Assets/Scenes/Tmap 1.meta create mode 100644 xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset create mode 100644 xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset.meta create mode 100644 xiaofang/Assets/Script/NewBehaviourScript.cs create mode 100644 xiaofang/Assets/Script/NewBehaviourScript.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Demo.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity create mode 100644 xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Plugins.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Plugins/WebGL.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib create mode 100644 xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Editor.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs.meta create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef create mode 100644 xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef.meta create mode 100644 xiaofang/Assets/comm/Proto.meta create mode 100644 xiaofang/Assets/comm/Proto/Config.cs create mode 100644 xiaofang/Assets/comm/Proto/Config.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Fps.cs create mode 100644 xiaofang/Assets/comm/Proto/Fps.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Hall.cs create mode 100644 xiaofang/Assets/comm/Proto/Hall.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Join.cs create mode 100644 xiaofang/Assets/comm/Proto/Join.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/MessageBroadcast.cs create mode 100644 xiaofang/Assets/comm/Proto/MessageBroadcast.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Move.cs create mode 100644 xiaofang/Assets/comm/Proto/Move.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Prop.cs create mode 100644 xiaofang/Assets/comm/Proto/Prop.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/ProtoBufffer.cs create mode 100644 xiaofang/Assets/comm/Proto/ProtoBufffer.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Room.cs create mode 100644 xiaofang/Assets/comm/Proto/Room.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/Task.cs create mode 100644 xiaofang/Assets/comm/Proto/Task.cs.meta create mode 100644 xiaofang/Assets/comm/Proto/User.cs create mode 100644 xiaofang/Assets/comm/Proto/User.cs.meta rename xiaofang/Assets/{test => comm/Proto}/Ws.cs (99%) rename xiaofang/Assets/{test => comm/Proto}/Ws.cs.meta (83%) create mode 100644 xiaofang/Assets/comm/WEBScriptListener.cs create mode 100644 xiaofang/Assets/comm/WEBScriptListener.cs.meta create mode 100644 xiaofang/Assets/comm/test.cs create mode 100644 xiaofang/Assets/comm/test.cs.meta diff --git a/xiaofang/Assets/Plugins/System.Buffers.dll b/xiaofang/Assets/Plugins/System.Buffers.dll new file mode 100644 index 0000000000000000000000000000000000000000..b6d9c7782d275b83f4d0883f9bfb2d65fc5c9e9f GIT binary patch literal 27992 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%0DV%GL-7lfv$jZq+l3F9+zd% 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 literal 0 HcmV?d00001 diff --git a/xiaofang/Assets/Plugins/System.Buffers.dll.meta b/xiaofang/Assets/Plugins/System.Buffers.dll.meta new file mode 100644 index 00000000..1364311b --- /dev/null +++ b/xiaofang/Assets/Plugins/System.Buffers.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 981e61f2f9d05f14080ac9c319bce628 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Plugins/System.Memory.dll b/xiaofang/Assets/Plugins/System.Memory.dll new file mode 100644 index 0000000000000000000000000000000000000000..bdfc501e9647719549793297acb072d33067d4e5 GIT binary patch literal 148760 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 IXGb{$00BiQzyJUM literal 0 HcmV?d00001 diff --git a/xiaofang/Assets/Plugins/System.Memory.dll.meta b/xiaofang/Assets/Plugins/System.Memory.dll.meta new file mode 100644 index 00000000..63093feb --- /dev/null +++ b/xiaofang/Assets/Plugins/System.Memory.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: da0a789a7c2e0f541b10c9faf4986ab5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Scenes/Tmap 1.meta b/xiaofang/Assets/Scenes/Tmap 1.meta new file mode 100644 index 00000000..5e785f7c --- /dev/null +++ b/xiaofang/Assets/Scenes/Tmap 1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5b1839bbbe1e494faf78bb0559cda3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Scenes/Tmap 1.unity b/xiaofang/Assets/Scenes/Tmap 1.unity index 273b30c2..02e14b0c 100644 --- a/xiaofang/Assets/Scenes/Tmap 1.unity +++ b/xiaofang/Assets/Scenes/Tmap 1.unity @@ -12660,6 +12660,68 @@ Transform: m_CorrespondingSourceObject: {fileID: 434342, guid: dae965d9ed8802048877e54ec2f0be78, type: 3} m_PrefabInstance: {fileID: 1517804048} m_PrefabAsset: {fileID: 0} +--- !u!1 &1526740600 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1526740602} + - component: {fileID: 1526740601} + - component: {fileID: 1526740603} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1526740601 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526740600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c68b1dcfbba61b44ca68572c16b16b95, type: 3} + m_Name: + m_EditorClassIdentifier: + token: + wEBScriptListener: {fileID: 1526740603} +--- !u!4 &1526740602 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526740600} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 27 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1526740603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526740600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44720823678ca7c42a08f4409ab025ff, type: 3} + m_Name: + m_EditorClassIdentifier: + serverIP: ws://192.168.3.110 + serverPort: 8445 + type: --- !u!1001 &1542437476 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset b/xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset new file mode 100644 index 0000000000000000000000000000000000000000..10fbd808d60dea18fad7a2e79cb0cb55a15b0956 GIT binary patch literal 646648 zcmdqK3%pikweLUIVu{=&KoLQ}#o{6$UZG4uSRg1W-UaUp$W;XtQ1Jd%=0>#AZYSL7 zu`-XMmDSl(Vc0Qaem)1=9qK7?_#;IeNOBDKhNhg-)B6} z7|(dd7|;DO=bI$C+dYSpzPB3Ob<0~G*Y}CQ9dy7!2ktj^zj5Oh9C+S=$=|kZ+g4X6 z+$-R>ZF}n1*UkRk{C{5Y&Hp&_#2+30k=H)1*j1g9q#m@~!AVk4l5G~K*suN6C3VT2 zos!Bo>XJ%>VqnP=4tx&yzijyGik+SC+z8^y{upDfScpeH84X$MdK- zQoryYCx1@Hey#PML(H~{$+yjw7*e$s7K+ze?fJBdWIh@#P;x~WO(|y?crx<_%UtZFUauw zwt>Gi!|&Gy{<;jme;fGEXZQoQgQx#qpWzSO4*miO@AIk7!+ra-M!_(K- z+K2SdW%&1R2haHQ`wahq?choOc81qD*NT5%4O;u_5lQkv@D=@Jj{cAS<^37{5XJXu z4lHTBe?3fi`nN;DSIYS6{(U_7<}$vzf1LonK#O~)S^kWp)%fc1>uB)J`pI1F_;rlptMl({epRevU64W z9joZ-@^O5W-*Ii=qx_C@(Bwjrw&5|1T(g)bCk}uC|Zk!#=0Bfe-tf)(Y?W ze>= z<WOy z@O9R|EY9TnnBj|`BFpj||&6&6Ok`)e5pTBtFqLmJx zeBrW-<~w-!g^QQWO)i{2Z{hr@%a>i0Q7xIX`shoRTr~N-<;zyAn7Y_)nk-qo^rZO< zRS1)p&!3YlnX~kgITs#2|H2DTUVQodCTB`a4fo;QEWvP+iE%L~u6ojQN+B@1&) z%p*jVxNwfy#pPcz=b{x!4qAC%v~0!Vl@eVY;$_L@$;$c5m(N+eG^+|uN`+8ODFPXG z*8Jrw7oR80l5>w*IxmAV$(EdZxHOr+TsW(uQtI5}md&eTGi4SrSPzXg;>thw_yr5d zZ^q)K7pzDoU$SypDI&}F=@7G zvi!WTol-7aIma-ol;ni4gHo5O3k}dZ_9RJ1vNkW=$W2{~z~2GwtTb6IPFU4FrSPoD z$4#Yo{Ig~df6)V5GNs3g%o)9S)~=cR(3xM~x#htJc6sRW%`+Z)=f}@XzJ5)Yhqi5d zb#h%Y_o3#cUz$J|TrE6y>@HfUI}I@0>oo%5>MKdb0R2SX5hiD->TU0bG&`AW4at|1 zLAK{oP__k?^?Z8=^hEy9^WOENtMn}E1}^jr7~O(q`+7E1kaI`$gihs9_xI>YS+-Z6 z_elQGlX5GUC%DiJTrG@lLDP|X{&ffRME=n8@y(kzmh~*_1}^jr7~O)VBlUb|2lPbd z&~xpYHC1|sKIj52^b8o?f~F(&q%cwQ*U$Kz=fUxyPmFpN9u_@?Ug4qrShCy))QRlrt+Lz3%hPk(~)}8pSPzc@)vrp zsnWArw>2d_9nQ+r;{VZl-X-N?p1?dH^kiISPT`|?qLDe#o{v^CYu4m?s!yrWv(OD( zlxM)tZ|VBb!UcC)Jn${+zHIQcsoiqeZBf{zK{=CexQ2>L6k}{L(-1`kc{SsZ3w$S= zQ4oWJ+8y}N&0`!>{?+&_$6C62j#3*YO?6!0Z`W&yJ zqAW~Lw;Lf`>p32=VHe=`Tv<lrY*1x-ilNqcKgPh<`~ zAKN^mO3%;-J;6nJ28?b&(~)}8w%gNFbM9Qvt*ndT<94vx&=)~>e*!n^hD;+^Okk%s`LzfsJGxk&w$Y_XgX3)R_pDRCo+eg z_pD!ErDy2l{m}YcPw3DY-GZhg_3X9-dLnb^`QQT&ROuP|peMK}&w$Y_XgX5Q?mM6- zGKZdzZQfj^XXxYo?dDuh=%PG>rX%(2u>*Q)oX_=~HubS8J;6m8)+LX%g3&E#wxg$V zZ>Z?!J+!o&p)a7XEhj_v7*d{Lg1Rawun zZs0=CfWZe1en;ua`lmfTkva5?Jul*DpP>(a>~oc2bPJk})RR50_Vm52S>p1$W5dRFV^`#IoLS50Sh3mV{#s<-t!q^IwB zA*XbxD$mdd-M~e82JCtkI(L+w?9{YZp2%F3r|%D;SJvO=x=AOS_kjyIY=i#59i=C8 zsrK|l=FpQpkecx`*9}~hXTa!2`i|C<{h{{sMCQ;l_J^W8Lm$GiCsc;fGiZQ2syx{r zYEMtiVRJp%11Xm$xG2NeA3@K6(Jg2?Qcw1W+S3!6qde8`ROuP|pc}Z*Ibd`PnvT?y z{h{{sMCQ^kfgDtY=xb*dIa9fYB{zI#SPW zJD?{rho0<#l=TdK&@J{y$}qYGO-Jg<{!n}6iTt5w><^&}<7Zj7*b@R5FuDazN9xJ` zP6e-Gxmo<&$4c@ zCj>6wuuYVCYdsq(JE|via)0;!P@H&GyT)p<=@8$IFWl zuJwMO$NznL(l*=E6ZxY&k+rO6SvPQ@XTbPD1Kd&NiH_~*iF~0ab+W8y=tDeD=ov8h zpuz7bJ=q^>PfyKfay?ZxReFL8-N4nt=oT~`si)N30X=h zdb<7{sVDNZSDw&By;YgnenRL8E_4G|3x{op??^rCBxieiB7dQ$?+=BZ)w=oq2sqVM z(>W{89PX(0$vmKaJ$-)&ne|kaXXt}&;G#SOCQZ-)ca)y&54EQ!G8g6P`$JKlp^ulL z?~jyWbPF2bj?$B{xjj8qH*J24oa}*=#}#ldF34dwL>&lxOS@MR}HW zi~S*R0f%imx*uYHs69P3ht2h552Re4;Gzs;e*`@PM$e$>$ns==s69QAIm%OgN|m0W zkGIJ+xz5l<83s*9>dF34dwL>s=*b>PxjaK3^o;$HGK_9P(~)|zKh&O{$RB#L2U6Cv ztXu4lpl8777Bn5HXSW^D6PZI#_CU&dhCb*P`y*u--GZhg^<;mjz4Ao<&@=Xj(51XT zL^$?@$}qZx{vD|&`$O&NDfx0eV}B_01Q-2n>oLxjPhb2W_4zCT3z8a*qWE0$HBw}<#`y`S)3-5+XCPvocG zB4_Lmg`Q>IVowNM0T=sY+t;(9f>zk}|K`34_lMfkQ*)kNPw7xqp5USk!L^3zdxK_s z<=Ie?ivQR3WPhkVJ&`}klQveaw`JYHg`Ne>8ZGqy$LhI<2F-X^g+3_s+)Z{Jp$DI~ z*{Elv9%K$Z>0`=zu3q&&OtvKi&x#tX@I*X-AeEAbhUSuRP+h`iNBpvyz|2wOw31cf!{^n zJ}kbx(Ia6T#|3_PG9>Sps9${yTj1;UeTQALIMyPy>G@I|V|{D(=Vu9>7= z^d7XnEK(8L@brhnO7B1Isxa#ST%<=I*OS<877rBo7%zycPdZnacj5xyOL=w|CUi(D zI~hOl$l5b`U&%g2UXi|^zE9F8*;Q@N-+xLfN~Bcau}9xzcl&xGvAD=5()UjWBzqfmWl{5;HtJtso1irH@(nS_5oLeaH!;;~7`PEk%B&j>_*ln1wQ6`iv z>knMuhpPOCCrus+r;3BYKSRhPruvuij+m&6#GqHid)}TFdwDGhIXvFAbJ**z!(P{% zb5Bd_@$WO(b8&q=p86a7cQ>fP>Lg#EBp!LaB)rY&Tusj5!3NjsOl-}@sb5*xtnboT z`wW=0yaTtRK2n$8`)?~9T6D_3570?DAWbKgSkPm?h78|ec;5H}s-~;WkMK^Gj`HVw zKK}IqPw8#o-Q=s~Cw92H&*=GCHg6=%+2kK;!f)1uV?OQl2j{i<^(=jFIGelC&N}10 z6P-{hd{Q9gJHFsY_>jC#Z_V)0hbe){SI7guq^?NsVXv1-^0eib)X~D$dajlpd2YT zxkK;|IOZ47*TQ9*fZ-2q@Gry6H46THHp=YQd&n%fO6{7H9)ocwa~1VKdPwDcJL6He zd?t_x*Py4sGh<*}&0M7x&zQ`ZimR`*PHzauw)$--#dH>2Z#|orF(LGfJ{ubZT-%?u zAEw9bE$;Ni-sAH17V_uoY_;i4ETQNhqrdU?_Un8%r%s)k!_axXv^7;Wzg@F&Xw!#N+Q#*38nx#$K8K+%+Kjg=Z$CvFn>O`YqxX6H z^z_mfx`|I0)#)S&c=f7-jb`<#y|k`5IPG=$Zq2i1?qYcXPn+69bL{CB4@`P*pMyky zs>vTbqg_c8i=Q=fkn(bP^{V%k^zE6aUAUm9@r<bkz%In7+tahT#cKpWY|tX%{Uxq80r3=7D)$z#)(K zBVmWW7VkDG;4)1aM!!W17UXsd7AhC5|5a^~|56&0*p zogQxoK3}s)^-{#+@M#D8CHp4_5Rp0he_Y@jtY`CCu+6P1j1C2V@B1uDKmD>ii}ZEs zxB5s%cj_Z64u^cK6pHyrPvzz=@~2<)96df}_JOD8Ec(_i>K~cO7V^>emimJnj`XZo z`fEmyYpD2GC@{C*KFPka(E-V5#nD4+Hd#?0Y#cxBMxqAzBL!wK)IrHASI6V_U3&6O{%1BrfFJNi&Y_NtC+E zu7XsBeipDFuQx^Q@%rnOQP&;o+{hu;#~xq1ZldLYVLrwhf}Fji7_kx?afzq)^VLnL zfcG@m|3AUkNA(u(Ya)+lETC;dKg3{UcdbJt{ZQ^_udWU zHDP@BjZ>#QWchyO-rY7n`^+;fj8C0A?{4D?@WKTSL;tPWyH?3rmVeyG-ZVbn?$dkY z%1M1w=zo9AZX46nnjAi{ntwUpvOHxuWxfPHf4Kv_9DaUFZ-bHTgtvDyc*_w(njhMI zkB!YYtv9_!OxtZ^?fiv$Q(oV;g>NgKy2m<|H7v6v=zN}3o<|YWS+$5>mTxTMJ6+@t z7oT@I9qU!-JcZA{sM+*^@3wAkOU}093x2K%Qn6x&zO(f+j2ym>4ta`sp|`c_bvjs| zXCr&)*G&*@1U=c!0*8-X=!IzOJ>=8UcahKT4}KRt_;qSA&@ltYhV(V`v9vn+17O-e zw7^i{cefnSNK1fT&Gp*v!?%b`F#FK*)+bG>-xiQ ztqY+1pON((|D3)9iM`+l{*A=-Va#14&W?ZG`t2LC^w9rS^yM(}-;v?NJ`u(~w6VLA z@!9&{^DBqxi`NVPQ_+&Xufp*EnPBom{yVcU{HUWhw(|P89(IxXNCV$VSPE?_!E9Zy9)59UX}6KC&J*V-(QrxZ)WKklWtJ>Woa4mg8#F^ z@Mnf{gP@ni6+HYtrSKbBm@(4jy-E1jtM-G1+O8|FpCE|+hkk;$w|;^q)=!!*+Z{UQ z&76%-n>w|bxiIUe?>%ru4nybb56+>IBw($Xn(5zJKWQzM!_X7YnhE+c9BZTN*Gz9N z!?7NMXTVxB8O)jq7(T3}fwrSXp4wM!HX7Ce0kf_O zec`F~O>?You3xjL3XZjo)=AC4tdq2UY6Y{dN|K7ja}ERlSce77ydh|SgAZ$?g$s_b zv}KsQw8qNwLe7wkbH*vVgzu39*_@FKDtN{JQjee|GjeM+6M<=Y3aPI?KAuSJf zWA!>(ez@B8S1)m=f5wrwmsBBN?fR*9{Zd{ZV!1LN`&F->5>a$hY}tOpwZ3ExhNI`~ zZ4@CttEXXx^B+%L$hVVp4xON=tsl%kcFHMsqNY`#gFo^Wju?-RU!OPluhTm0W$5(O z8P*)kStxtzGxd-$ka-!h?WqS0u*Ms?27`wPV(rpjzV9*A8BBi40f7> zOYjFv@F9Z97kjcE0%omsxE?~lM;KgZ@R22Wy1}kv%<+k$zmB;->w{Pm#9HAi_l}tu zYn`v$d+$WzS?e4=<)KNytaX0&%rleV!&+zefBI2Iv)jg|rYX&_K4UBixEz1ngnNt+ zYqhr@`Q#*MSi_Zhmh&phP?oKnw#<_;2{~DB#rVWJ?6R-*w|Lf7_nh#O$-sK+z|Z#Z zc&)MMuS;ve=2#2ThsIh^YscnTJJK(g)|Ab$*2L=XwqBxLZvT9Z`o=t*wXx5^nNOGJ z-(3}^p2qxpXNBn(WB$$jowRx8y@M(jzY}Pa6$$AF5@_Gh7aaO;Ja`E*= zgZ0DE(%(UWANH@67YW~OT^Q-YN8TM-Zx;4@_jO>AKPBPzqMRbX@N4Ck*f^VSm)B3L z6xY`JNju&)U-tC~$y0eJ&i{OU!+Pd&&C-3nQpOkjIKO*Vdf z#AJceCw0DlB7BC0oj>c1(<~hGfuCmh;Qup)na}%45$lgxMjvCwe~Lfz_u%(ta*l;* z8@Rv+Kf#+JEyUe5R<|6HYiIk`miZ`imqU-(xtJpAU{dSr>^&;IL@3?J(q!XZEM z68?qKgNHxiH?sP`xV1XR`}(>F|JvFUVe)7Fjk`$sJO9^h{d-X^udjzz=XgJVS}i>J zvp!}PaCwGjJsk5BW8B71`TUlVIo40q73_&mJ*E$!KF|*r>nDHLin((3?wqZYSU2eW zuNBOhAn9ZM1kBhL^tEty=9I6cBCXHagFkb8hqJv$;~#Lb&RA1gb2wb43D{+0?(aO& zE#T~oB;)`8`uS}!-lBhuy|w*i`{C%<>3bQu7>i;AYdy}Xis7t(`2WNCZTYS!?IhX{ zZD)iYeBvARjMRfIqy6ZvVb%V_^=odoy2V{l-2=^G=!!NI^^&#}ZGg4Er==|g%w194 z!L+oJAcwh+88qDe446BikuU3O-9NRoepl3C=ym_p;^7l8{DYo+1Lp23az@)GuUa_d zBtGN>4mp9d`x~XcAav(kG;}XuZ_iE>aP$Sx*TQ8Qhn**O2>#ywgQwl)$jXJg_fbY& zHkR*dG6wnCk1Dlb+6xabjy{!f4Hx*@n}+ngxWF@~V=N6%huLKdhUG; zkHne@*2>3C%>ut`o>%1092gzkF&}mp`0`y;bR!-Ycyun(`&m{Q?{jBjd~YN6wIjWs z9s6xopXX^VTXFu3SAI`aK;{^Sagm;zqTD8p6?{WwmmH5>tL};#rlEpIdh)ATn-g2n zPmZs;b))!N`|hH(YcE-tet|iL@~ps{2l=~ar=kKCj+5O&{$VQLI30z)Hh+tv^+l1R%5IpZFz0@e=6*Cj*_chg9U%=_ikrUSfsorE!IBU zA0vZrk?;1`G_`z{4bH~W@?BBp-aC3%^mWlPw~acSBr8?_{qCi+FXq04UpIVG=cQ{D zwswiN!P8oc6ll)tyQ7;h4P1g$U`{pM)Logf%iIUJnbx|u-B!cD$dS)?dNwpT>{pA&sv|pToEVP zTHvYtEaN1T$JYv{86JAS`$_tzYu0A3WNR~TC#MU~TJBlvbKx&%<%7Le=3%#25%#;e zmzMB=<@DIA9Hw@Y{^^WA_9DDB3)3&aFYw-HDB@k*Q^LhvH|lE4mFN|yFWx)&e2F^G zm>P2>&BN_|P3GgQHOk{HxMJQOFz^-SmD~xrWD-H4~Ywst^bD4NU z#qpg)L*M9Q5c_b94(><~o}Mu9#6&#|JR?ZpITHyu@Z=P6NJKm?@SL+VpTX5vTxMWm zkcCqU-`#UOGT{QxPWJoq9K@kgUxl}T{dh`#u@*8hmI5=s@_B;K)%M8Z@u^4Hh`sWm zdawxa@DjYYV9t6T7}PXn_FwuQcGjW0Z~XX=hfF!)PXi}TeWv%uIUjO(pOw38{P0dq z77slAc!#0cWnGbW;>IC4pYJa#_)H&M@G0{w=T(;B_tOeKUAH#o^6Y&}qwzNxN<7PX zm1X$zSDgNmTL(zy#wjDOczhx{es=3##s~S!Jj;2NWhm2^`IPyW?NGK)*=~1l7;5I`)5&&*iP&S0+R|!l&*t zkD;wlYl(9!#HycGNjo}#F5u$( zHHzEVQRPXyX-`jN4n6r^Nx3`=eYh*LF4wbwZLcja+m6zcd1HHeB6H};_e#oo7W#C_ zzhy$bjqjRJh6PQ>m1nmd&=Z+M&-j*0(GRW9%P_uW0E9xxt{SYm(UYj^gZ$Y7H|b@YrVGGXY$_1mB0U6 zzZ$Y_juB&6?f4nr`bB=eX+ryyc@oCY_)ZI9aOhlyUFW$L58S#Rf_lfsPiAC^{r`D+ z+GLU2{V9(t{1+4s!nX88ey_Lwjh3>WW!>WYE$|9BY!hYPTF-_G^pQ8PyZ^KE1m<5j zct>9NxYB$m*Hdy=m8a%Ic^QI>@(dU~g9f;x^yFJEIP_{uPh^hrRC~1dcA?MCeRJKw zg`NSU8|gc`Jehyv-c3(r4n5;rE}>`WLpZ)4QijnpXn_Bb<@qa3qhrsBz7~gU%o*r^ z@o~Vu=M?W@TiH~V=Pm0#YGwHRmXD>6ZLZ`nIz<^Wo&+592aFxtGPLPBi=RGqY7Rg6 zzzsPcXr@hdp2P#}*g%i*x=-@1P#)w`XsVE6L6 zt(LwPk8E-^>-Ryno-Nkzgs;l?@HsIf>>7|9{1s+jLXP+KvWL40U!Z?$>65ymjud<9 zPVeE^FZf+1U(_?vNZzaRI^^NFFO?*}GkN?>METQnY(- z_1^9|OB<^PzfMJXo1W2vX;;y|DQNGH<7fT2wOzt`uON+nJm6lvd#g=<*y0-w!D+ZJIiGlnWI0zFTZnLeis{f z{*OmB!(VGxgCF1g`PAR(9@Sii$Bq4n^5VVhQO#u-8h>}&>B%d2$}9&mZBnl|;0l=txih7WL4(-&p8gVV-8u9?L9 z+|U4HSNN3Sr7fSFNEtyBFlm7)M{EL51j7!saJqT(2JApQFnVP)D)&=U?h<>xi>lzD z!Tymp@`8`Qx90ZXH`=VKr}fo-zt+#=RdbWh6>pW`>A(DLMBqtZ-50WtT0T*T(IC>p zGxDsj1eRFOpB|1qch7+w#j)b&0_0Tt-a&0&&7FeXMHj9X-%lq%y>%mFH&M~2(#C1` zWjumkFFh$e*#3M@;;Bjq#f3 zu+JA9_I}#wef-2yKGzBkg%#snAg4h>_WTKPodqAT z%k^B5Jd%7*{=v$AjNVYt*pXZ%n0ok*;7^)Zbq0T`1b^D#28;ikU}W%iy=QZ;>36E1 zIW>J?*zwJmH`i}WlHy%$`q*uYh8hih%aq-3m^9;<3#>01^n+!S8uvOkhd2G;2!mJb zIc?G{w;YHW-yvx4~p0xY!yXWwgSNz5Ls~NX$o!B_^KXQ1F0k;_Zrz8J)V!H7| zEotL@8#ud4*1xu4_R}wKAU+v5q~)e7j%@+H@~s**f}DTdb4Yr`vhFGHgcB#FZ$Hu}MX$fkJu2<< z=tzSnd~RX-gT@0)_rKnKaeB&$>n-2Sb8c?w^}n`QUh^*B((;?HJ#290v+G-ijeFB* zPV0AbOXFExQe^8jV|~k_bNi;qeAcR)TP`2clN_ z>HxY#8I{Wp8KO+fWlg?O2Y{n)VCSea<+>Dgj4`eZ2MzI&7C3kYOkThtL%_%e95M%t zF2GUW)Ql4B-(_o$7GUCgEjl@eyKKGDVEFVHb6){3deUI>?RCeWa=6>p9w~f~v&Y8= z=Wx$QCmW0|Jr|vv!@WAsHyGV}-EnCScO7!A!JoU}_DS8g-dMmbpE3B++rBxe+sALq zVaaCj-+uCgNj?7Z?Hu0a(TxV5wD->^^<4L80WW&e;OowKbyClRf1bm=e)GdJiuq+w&_;uias!_pab8ylx=+W>vz58g>Poqlc$@XN=(ns%9TO$+?@ zyW-_^(N$kF_^tY%r)w^5X+fR|2RxJh{@7Oy?)>ddX^$z}T9E(f7r&o=;1m5);N6z| zOFI4fy;Af&?Uws&j)YAf+Wqr6eET1-Hy9gE`t3)m+HbjCm)m=}A1L<^<$j~wpOpKV za{p7^FBSb&xgSfL*Ka`PjW6Ar?)Jp`7T|yV-rDpxU)f^tn#VMMu6x*Yzx{-V)8?`F zZlGQ@T-i76wR(LEdVOi!wP||Q-5aPszxl-UboN2ZtWP`T+vC%bS8Zt_{?fCjrvsnb zV(|m+8K17ccB#dG_5A7Sw=U~q?d#*eUz$EUxXIw1kGMAd_h~y@I~U%co_6!x4xX3N#5yPP}k zcWwHsZ@g*t`M^DE(@nR$X}TQn`keHD!=E>seEh+s=^nivw)pe+pPQbx%RMIN$k&FX z>5(@Z&&^BKHy+r<>fYPmc{v?9ae~1={PmW!@iP-lw!i(;Gil{#>o?G5Z`?9IO|F?> zefz-V`IaZ9bum6u_fkLnLx&$7(Kr44pf_8nldA`OJ?(Lh!vn_LkzV}ix27+g zp*~t=cgJZeyW8*C0R72_+>ze*%bP6iZbQDF-Z$)Kx5;()r%!z4VT-^2=sVKcOB`NZ z|Mm3Vcf8IF|NX6Lx@~7q`_6soz@axA{H=rTNcZ^BO=hcMFWj0|zU_792Y+6g{`}mV z%|45^%}GCZ=2DaA2R~ez{&BCH4Q@X7+H}*}rCuk$yf(e-6U!`q(#hARH=W`2=ZmMz zO)KZ#Yi)e?nAg%LF6v_TIqm-SEl>1!c;FLTTABylZR2(Ny_;G#J$I9p#oQyB(#p=y zn~ry`xIazC+`R#t{7q|!7e;w~zP*R|Z(F~CKH+c6R2C<$-$1{y>Bn2rhZlOi`fu+% zk8)0G2{v~|kJtLpWQtRqtTpRKR_Ej{7wsRr-&?Ca?f zQ>Uize0=lo(_u|h48C{$bLk!zPEN`9=>Ptd`nP6-uV1q%{nJsCtp6E#)kEp?TMjdL z(SmQK|GM{K))#d?^S-KnsoY}HWR_^!8{b9MEEcc(~ezn}+{^q3h_RXF>hSYDI zEf{^1pS+X)@zf^Mw@Z)L($}{QF+3JUb>NjrH{Didg zpMEFZV?!6S$#b{7oc7xMrnQlO|LK-=H`R0Ov-_pbq@Vv}7o)#p^lRxazv=M2N8d@O z^k_1kkB-uOQn2y-^wWa zR#isjvMZNqxva}|pj-YIT?%KTh(ep*WD4qAguNVz08}{{B^OX1R+6zZI)<+F?|A#eY+qrxB-}^g zeI((&^7oa5F2^VfkCFt$kCX(^?X6r#$RDDd8|9A?w3mErMtGRyApbf+>>3PH&iH#O zcl?32AHlxpKub4VT+xs3=b`TiafILAf{=5FxDsv@N74^gO2Pw$$LAa0#259cUsj*6 zxYw)Qm3Aj93ExZNs}!BBgjgl-EQmTr$x$1-2%^4FqTG?|Du{YRNjF&i;cM&NtOjt7 z&|MJqh?>E>=j_2ypV;}~oo#BAe`Bhr!t5I$%?Gk}gG3*&n9h2O)$1)ja;%U~{ww8E zZ^z3gKYa2zLq7ZulTR*}$tTy<@{#6h`P9>^x1R<%|LwW)?n$vSJ!C=lnZq14xK8WU8HI9dC%oa`Fzdd z2>I+!9V(w)s&nMCSA|cTJXcShYQ=2(9hFR#&wkM1@<*$b@#|G{@cHrwK6^#S$!A|^ zl6-cDn&q=cG*dqNNVDX#?{vKUgS4xDru?zVIJ5V-Gx>f4Qtqdl(?d z!;R*jD$Ady_-V5ImGXxOB7CJv;0XCgs00p`f2c}emHgqdKK?l>fpg_k2D9bQRyj||ls{9JpCx~mEPuTG<7N3X<)10b zyIsf0#@KhI#jliA!Jj3|o-Kd8tcibyEIL{Kk%A`5KTMXrSpH?QEdFX)c8UC}W!Yu& zuaaf)50+)mmp@llT`Yf*EPI~(V`bTS@{f^KkCs0}mOWkm<+3dP6|$n+?@F`#X|f;j zSITnGA0f*fCI3)aZMytbvfKjs=g4yN<)16d9U_0WEO(;(sj}P&@(-7_@Q;&~+-}XL z&q=b|DT;5F#n5l2EOx2^>@iOkL9e5wHTC8gL4;>W`)Tq|mu0Za(Xs&X zN67-{KV23;{{^xD`p=gI(Ekuw0R2yt1=Rh4N1lMEpcq z06i|11<-%8Gy;FIG{RpZZI;TvNE+cUlSUtuf4($YD1WguLZ0)a5&k?$>T)hHJr_tq z^q(&Yp+7_tlKw!PJ;27g$xPi}nhj|9$*a-QI z8~BVH^uvrBW8^b#Fb`qez^@*cd_LDx+!#OjCJ5sPbc`R&Qy4#(A2EI~7BhY@<}-dU zuVMUP-sSINGH&?UCo_OSf`^IsaQVX}DSP3aB_;j{NxHZEJtgTF`CSAN9wUkOk-v|m zd7t^cvUy2w$w5EXM{*>3c9k5=KX#KG^gDee2k#s1ZZhnl+y^Q=ND>T|&v=7BT)E>9 zkOcIbj63*yD(BJi_ZHMBe~cs`JX$$&N;5>U_>IbOl>GgaO6{^H>2huVB-s8T}TBrN%j62(ZP8)*JWad$j3 zHRkr6R0_O@z^sQiSsF5k67u;F^Piop(sLzL(|L|rC^B?LH^B>-AVE)s^ zYJ|^=nD=zGn&R^!<~`l42Kl^*c@JNeVctW%+eP6Xl5rR1UN4_o6aG#L`}zWj8!}Ds z8RLEazq4e3igkfY3MD6ou9vSP&<$?p>NJ+sJ(Jy?;eH(9;@v+F7w;zWoyZGI_Yn9W zj0;W1j~hGieKOW~o}PPU9tj?6hI4$}GvMo!Y72Ep$9EIYxAY&CP2DZY_=P;z)%-8V ztI4&N9;;ku5AyxN`i2_>MSA3c|B~b;>HAUHhx`U5uZjP7<&Qjs|0q0RG%DkFRrphS zwlNx2%|rB@>9z1 zM#+1+ti%c8ZF+9Z@bE+a8|`bKe^C8({Hqxrd){XDbo)|E(GNW3-Cb~dZeUY!?*m$~ zv^v#S@K`DsAsfbT-^K6odx^u1aaK^z>hl%@vTViI0VcchoH&f>|TTJ6g0=Z z2H?0~pmQOExr4y>$>I(IaNJXXCScM6bFTrIy93;JfCiX55u`1{ac=_I0xo}}QfHXW z@$E|BxX0n&jr98+{%y%>nEN39{Yk$Y5-@i|bg#kq0Fzhn)E${-Y=|t_w-&~3@qNfL z%-)agzgSve?a3I-y_kR#-DgSk{Y-drk0xO5*Az6B9LDB+j}&^~kd1pE=!*@J6TNC- z?r5MR@xaKO(Wo33HOIXV>{*6`2HQs3$O}HI*6J6TmAI?DlkFpm%RfgC_b(ohKU9iv z|Kitz7Yn97{6+B9C@3v~uPMP5gBvXVTEWzBI`Fj_4e$*H*IWF@O7JI2@XaN9zw6Op z^q(!o|F;s%T@P}D|K|mh?<0)|G;`j|(`dNIv3bD=i%;%& zv*pACMwpyW{c%gn>i_6raAm>zmhXMHztJ>2^=8Zc!<|3(H8#Jz&Fps5>2J1-d)Dc> zKl12Tt}%IjbHw>dHr6^ao<7bip_Bk zqWhF>lYqG&@w;PRoy2(&_a=0%XfXFFbgnpw^Cj+Cbf0pK!Q8+2;pyj2;tYy=8R9b$ znEM(^Yu~Bm9tXWg-0uK}ChmOz$9)j^$2}3?xIcnCJ+pfy250w8kU8$50LT3lbc}l| zz;T}in{>qEfa88p+#9;_Co?7?|Ihz&U;6fLFHJ(`TRyio{cFF(%9Q&ZpC56Jl@WIh ze)Y!YiR9a~f8TWA*I$~1%&WgVJ-z&^FHJ(Polm+peetn93?BTiOVb|?{ieYejJ-D9 zFz=hr|Gu^9K?hyq@yA@7zR>Adi~rlLYty^0{?SBa_`{!WP3ONo!}8@G2Ynj$zirIJ zY2EB^T0HkMX8!6Lli{r~bJOdNeS9MFbY3w%J@)Z+7C*5vJw0{RIvW>$_1O4y!b_V? zU+y~``Q^=)@AWU~XZ>PnI_k+iOy+NQZc2}yTd{t4(dBQpoP5)<2A_4I?&n?oO`~~z*QT^f z{bL6I^49TbpHck{UVqp4^w58rVf>r#o1XsX<9isKzB(uU?oaw#UXPEtHofEI0dD`h z*QRehwb^J6I%#ft`@i+D_RhVVFKy~?Fn3%2>7vfyy5=z zvMw`h44Sad^DWEHo#FDYf3xL=-(2G|AKsKsZ*;xR(%rtF>Ue{)JD_Q9`iU`Kmu?!k zEIsGw8P*SQ=VkV#ULUyQ^XX&0>1EOL>*-7Veq?rBowCiG2zvd`la=?CUs z@=W^Jlg@L@54WVF?s7Z4{P-1V|BKuX!*#diQ#bXuI>3FFUYBp4NL{Tz=;5k9s@!)~ z_i066SMCGLePg-LEcd15KDONVKDqZ{CJ%Q#bdSLL;e`vnmA-M*B!frkZb*_eH>2ZP z-5Ke3;beo4(OnY0)r}3gW5WM30CV?5_XwKlOSzN68VZ=ZD$55RX=^U-u>9rUzG2_< z=8neS27S}|ZSH6=zC+KwiO;PWVR>=C<7;=lWHfbeypw+QtscgQyCIkTxrgQZobF$2 zc%;9j<(>%h7Wi~YUQ2&;!U&`9*SCJ-V;4LB7EBV%pH(j?(A>$ zN8S2pdh@*gX3xsZhtp&B_PnP3=N9V|u`pI34fVraqjLh8K2$(w^z}SSl9szR)1Q>gAHzZ*83V`D- ziLcH5?ly4g?soodb=K^0cN?10eGucreGuO#@%tdaaUX;=T=^adt0eYg*?ndIlyijv zis4*=^8?o7_^iq~4`6N1xi2et&LLQjo0s(<>b%G8hKcU<8w~UT@lWy@dro~&Tl&l%UQ%2NzT66 zXi3h#|6oZzTz)r6jXzA1?+*48$K0wb%dpL_mi+ybszON+q zbBJBF_U3*C>+?jve!pV0Bxb$YR}yfpFh7FPHC=O1znk{nI)IrqljPr1Wyh$Mi2qjJOFM>*mTRgU0CC`a-cs2t$8 zr}*Iy5*Ol|#L4OScR%O{8vp+n?ps_c8&bdHzQtmNso!VFr+#yfg8F@yeCqev@~Phw zW&$-!r`PAnH@;O7{-UBt7dl=N~ljKvc@u}C`^PpZIA)k89 zy$I?xKJ|K;{PO(^+Sx$0oI$GToHGqnn0+Js^8E|$k+2`c{SfY7;B)`tYWdWDd}_lY z`J98TlF#lA_bI4f+!Nv61wOTRj(qN0Oq9=ki`nw2chlu_nsttR?putP&wUGg?pt7A z?pt7Q?pxq<--2?8`xcj~M7RgAlVaa5pL-XJ07SIN?c%O4?#@ZqxfT={cl={fS}$kG$#Pn4x+%bzVvvu8D3mS(@|99ddtD*7F7 z{&-pXe1#Xw(%A7pL4+@nr8!4mEDI7oLl(SH{%Tq90{Pr0I9mSMvfxqjC&+5&$)6`H z9wvW@pr!J!kOc|Pmj&?`$by{jUnvXXUnL8kEdL}~@nZQaWwjIKb5CNb{Aq#~%0E;V zyh#2sSqnQ|E<0h@%VZ(wu9k(MTO_L-FMpLRbFBP>1>qkq3vo|kt}HY~{v288IQbK0 zp(EwbmW9rhKV25W=N}8u^K{wiO!?zw1^n}63G8s8ECK!kSpqv8ElXgBqhyIw<)0@D zp#KCxgy%_n!iUKMoa-;h&i4PD?7s~?Zf07`=C&~ioGgTHq|04vU=QRBi z&pn3A41cx7UnV?s3uOuL$IAjI$UjyVK>vdU&6IzNEP)-kRWVuqak2z9I)d;AYd{~7WR zk>>a(OI!Slr7`jzBMARQX@Gx%BuDOJCArH#C23Z8iloIqPPxvKKUom|k&=e;I8qW2 zK1~vkFSm0DPm%=9@;|6t@n@h1!DpOczQZ`de2j6TNj~EQ_c6Hbh+i)$2Puy|lt+L0%!ZiP440()%imv;?kj&^ zNxGl>{Uqt$^7m2yIYvIWEeMa1#P2h|w_^PMC_eW`N6Q~ANk+*ZAW53!?_{TDF^s-e-(b*>+t!^DC5I@j7G(CKLel9)6>U& zk >QmM$dQ54`gf5E4|@XyZg{ho#2ub@6LH{fmq_baGZ+%NsF-?O03asSloUA_6+ zyKk}m``pF+ZpZFt2melH6Hbe$ldbP<*Wx4HPD;@r%}Ljwht&Akmo^x5;TQDa8!T6# za=!od`y!WUv?<>g@o?PF@KMF@6DVW3S&YGTNI{Ks{31yoj`SbR{s)yf{#U1)Ax|@U z$8(>+!;D%B)RGyOxi8}Qu9kxP3zujdE52R5R=qjlxNovny&7R`MxTA7;r+e{EMCph zbHBmEvyh^$PJy!py_VtOR}Sx*;s2;H2mah2IU5Fou^0D6=9j|QYe^Q4`!yb3u3Y-4 z2l8)IlO8;MWjQ_at}v2M=#1V^dT&rrj+ik7>u4l^N%jii!{lIdP_YG zJ;b~Li8d{PZ+w$)$V_~EBcAy9Mm%tQ&mEefO@lM} zf0E9cIV6W4d|+rR7@33qp7pm#ezzg_q5|If%Hz666@0#)+X20TC;A3WnSSAdJ0-K* z4fvLIZXe)~jeM_P<1}TMyJEo;c_Qt->${cgd`Av%eWj=PxbEY|ekxB39Q=XrS?@GD zzm}aHo~n07qb>nIwt1l0O5Zq?Z5_UM{rNc!-^GcvWq8)iOL7|ENXxf#g6BQ!*XA^@ zzVh*$5Af<$Zf9f*nSrCu^yz(b4y)?qWp~TEL-f5PPYWDrfgjtvhw1X*1A7V{ki++^ zcfE+eevQLx*Nn_%-ulXZ%FF8maFiGJk1_?0ys&@J%$oWBJm1ZmH|x%s%W&GvpXTuD zRsAIMo+i(%nSGU40WVzO@(>?#0tf%Cue_q~7Y(?4C&?>8={WEGvHxOU(98LCS-GZx99Ea z)`{NX7q;9g{;msY1BPeV1o@+Hr;KvF1hcbrvF2v%&)`_sGpA(2v6G$;33H8n9Py_c zdfV9`5}AVu1tCol|a~@RP}}}(zA!*DcD~qT=3sh+Qk|NjhPSN z3Vc^_aEA?oM}gm6yA$quX?7hq_6vMp?Pjo}?rC?`E(H!e_GQn4HIBPJxvY_%ox`qyONHpFlazsoX{SV)jgY=gMg{_&rLw@2ZjvT_XJe$rojcZs>svJUbdg zJj(V`YVkvq!go_3LihegO?u?_J&s`(2ZncUae==^JCv7N4Es6kCA$Mp`{*eSeyT?N zo_Zz&9QCZW{$F9c*;gB$9VT`qagm-g4&O~;--`T4RN=3&-E51}&lKDDA{6qo z=fydiJM4Urfx(}%kb||8SvYpsiu@1NTGva2*n_ku?JoFprow)#J1lvafx(|QoQn3p zPu>?r`qAn!13y(MM?0fjerygcj=EV}e=o4T`{N8hQ#--OtG~cS{`*V+NfyKYT>R&I zVV`EnJ2As^f^k3whkW}hwZARt_TRsRr+g1r>cg@!W2bR!W{b#wU)g?;Y>3?`xsj#x zwErneeLz-c4^;T15+453wG%x#i^DrAgF`;fIF8KXn&p3>75+%^z_N**ah*`Y!=HB- zSK28O`{h1A+wph#urKdU9w9$m)P<0r6Qlw^QDyC}z;hOd zW!U$Bza#Y<^7mA)v`^N;X(#3OjeR+hyTVT6y#I>6DAM!JE$_SHIG>4@82DLg5yu#o z{c|q^f+63TvdHNfo)V0@5co61e`bz9d^`A=I)iZz*kM{m8~LAOr**MQR9{Idu3_LO ztJDut4Z~4)Pte&PF7UjQJjY@SraT03~kmp7jS z=WkX!vq-;CXGjHpMm~}j__@Z9RPbel#RY!4v>ThXAKKnwSqlSC`EufUdR8kBR(P7~ z6E5(R?Nr*Ltd7>UU)~Tu%}(E-p`N(}k)C&c7kP3U9il8lz6&(^1fCP8TKO;5sWI=l zUy|`aM$+{y^Ydg=0?H47=e7u3K@JJ>Gb_dY4<3>{RMZ{ zoEqB>)5Gk47x_M~t2dZ=06dBJ@yKDuF3u&8F@9o9oXO+@=J#!lG{T%lC*~xT2$LKwNb}8+g66}48)66T;FDTJ0EWzGZ zo&Nk%`~@ZWLW5m~Wu^FwO7O)7JD(LL*xR|suPVh~R!Vz$3BIBPUs)6m-EIF{P7aaCra@*m*PKJfj>G3Z#PWeWsXC^lO<=@j2cOGK!4^I7gddhx7jON1s z`E>f7!A%Cg{m9GdhlV=*sgr+|9@xYGKajLzHVmF}^%Gy3NZOGXIZWCzpECb)zGZpJ zY0Eszc{NB6|Ifhf|G#j(@P7A_)<_S=3bFN>XIp%Vct0&|EB%h<6Lhsc{TQdy_PzdxA|t}P*)8-S zN9;^#@I5H>!4G`+wft(sZP7)1__gV3!~ZC{$fwqCOP-*s#n*<5dRJYqYw3bt__g@j zaL|R{9=6 zwOHLz**SHRJkK6R-Iw$5gBE_WCd^#|PwxN8S=_z2-RR@4gWi5sxTm#lr*}MaihtJA z)Be+QqTRjlF!+hKeq;RUmEqx6g!|du1P}8Ciix(9!8q0{LEftq?h<(TyB6l`zeqp9 z_9?;lOB@gXFXrJ1wl@iWVuCzZYZjj*gqLLe;pbt;?=2kiJO1+g+Z#)gFDw1!w%&*T zGE0A{?a!@N_-eh?JV-M9R{T8t&lX1hBK#e*kB2`e{C8|`fw{@m%5_k3zvbuQbrxn1 zh4Aee{`f5X)dc)^jURXq-*59?<{V#7{+r>k2lI&gvoQ170)M~Fnb#@q29y7*W^WIF zN$J08{5_0(pS1l5!XMMOPQb$-dwKXK+wTE?M}}wK>tXCu@Vnc-IPz6nA7altEdRT+ zZ<7$dQ}lP+>Ja>08U7%_xcjsE9rgJ;Svcx*grhz`u06*=Y7fXu`p0Ee!ahGvlD9Ja z86f2%J@td|+oliSPjMIc;P+0J|7kgXwedewVaoe)OaG49*TdBJ=kogC@;zre)0F2E zW}heX`Ve8(1(aWeSu;32>?HT@7lg6bL%HF`DuTIUH`X@e-VDxb}k4%n|wk1-Zpy|;eSgS zg(LiChG*SJIQXMK;jrH@!OZ6!|CaG1{G587L8@gq}wk zcR5V`zNdtzes9Rb11!HH+)s1FB>7DV-$igaJ@Wr9$3JRo@G>5Id-&^;znA88`ftjd zKB+rWa3SBRRzJ$&YW{pJ(dlu3Kmwan_bhmq$DlfMX0u=?WR&B9Nx)x&ozJ@jsG z^6O{$50D=89fYADU}uQr@8L6yUlAT4y%P1}+U6#JZ_!GX{!uQzT zbr}!;B7C=IQPl6JGXC)MFzH{k zonpd&%<#xhIP&X}rFZ;03VC_D{C_cfV~>{PXX5u{UY?sQ|0nI-qQL*i{N>I zCQJV#+uO%}!5?`EKdl~lkiI6vUfEMQev|R@F!gtno&Wr-gdZ)qJ@;*GF~l7_`Y&Z^ zbBK|GoAuz+53@grJ-G`Lcktpr;uURo4IkV50lQDax5jnSl*7e;#M^(OT0D2~f_}}K zF1jz|X&>L*BZu{$vAPEp@ndqBdqhFcU8bP%yIW4reXXG3d+h-qF?C)p8~IL~>T(hv zFfxoAd$7sb)KstgSBK= zg2wOFIKAH2)m;~d{jQOxh35J-0l$>P&<9Wdzs(7j7jWbY9J(O?w5d)5+|)GH=qbx6 zFW|_F|Mm>{g;!qL@cfp;jUG7Ca$hLQ!eO^9@WKV27qC`1Q>N^G&m{QYqR%*d_hTQf zf^S;WMe;ZeaQXh#^IP7Z%Na0tfv#WUdBHRC0*?6G*RNN;Qy0oAX zO#Phnn-eqH4w>@9i_Xa5kB*r&iTh4L13W>y@e{Mt?D`71yQAOo^|c0-ERMdVTLu%? zNzZ7l&_-l&+Qq8S9&v%^9G~-k-1hhnRuAiM%J>;dr|h;%N6^CGfm2 zI?A~7!?)<&MgF|Ud7$;`8KNfrzM8=^Cg7M`bT+7vpEsOF*bX0vJ_)zQ>jlA|yvAq* z+|^d$o_?_6a3LS(DcH$fy{%_~Lq6{J?2%!)*|BE^2cGv+HC!KN^w_*-Ai17=S^XEyU8odhuwH@jX8F>p&1bAxdjzAW3JV|20u_Uy4@qOc0X$I z{grxPM#0=KWPv~W?WIwwNw;OZj_swGAtn!a%Afb&A`P=@)ev(bUte+ITeUdsUzQ*K z{S)pw4FE02%_XF8`+(m^sXR4hRh=ID3{dJO$%x}OIFUc;hY8=9=L!Y2yx`A!(nb5J zP7i-}w4=?Fj{O@P{K1ctgxt6DGU6TX-L1BO$3C2NkCTt1L&6{5}SIUi%vC@*hy5Ij}@CwgkVw zMDu}C{0B?$p(UE}C3u3to|g?`neNRN@A6D3(H~xdr)D%s<=`p1{L49(eB9U%PWgz& zKu`-``d}U(Fymp+07qKjKD{SR;oBpmeSXVCgBj;(1DyR(n>ZKpFH8IPoVzGY%kcZS z^kdYedii|iaQkOu@GGAMwHNlW$j^dE=kFT&8-<(}QC~RO3Oefi_RjKZ^9lO!+rq!s z_~6%`U(2_Ud;4b$we+>&$geiOHXL-}7x`A75e2@z^tE`IAICmt-Pf~q3t`p!x}TN8 zYWJn@eEZ&2?6pD zAh|=k58$Kky-PQL2!}jh(+!_;`nR;}NqDHzo}$O`zBfnM)4yeFPY=WYEgLro-(&oJ zZ_mSyr$0MY5AS{Q_9A^U;m>Ht5Bu?5^a%4_BJz0{eebcgCt<$AO?XJ2p70&ER|NiR zwm19-lh4E8H&{QeaudYf@*j+!htdBJHV;`Qd}{bjHqw$lO+I1rArhFc;^hNml zHuv%HIfiF0LHh4!=~-LDpD=4@<`dxmp!WsPpZefo(*IG9m+W6Myn@=d!CqefsBa!d zpFbtouL!?r_FG}};C=0WNh!=+1H9W~lg4i6|9#W{MYEsF>*;qB{$f3wO#T;5e-D35 z{9m+rRDplgW(3kM5dMBAM^VkCas^(IjU!=!=@b~bGHWm|p zG2;)vBK%vM%cAcejsKr)tabg}e%LF**q`!^aI}YVxVLz%%K0UA%#W_q^B>xsB0chb zF$)h$Ubnd__!ni*DBlPVk`-8M+$_zvCbt@XXNB+3^JrGS$m8MfiRyK;S2^4{qyL@q z2j5te9(jTv`ZNgtH9ddK_+zh@EDWAL@oSRg&pO?pf1~ef&pjoA*vmm4v9vyok&FEB zaq#BRdu;h$j^07H0n@Xn^6)Xo9P+{NvsOrkvW-6ZvD$O7Hzv=~>nd zT<94vx&=)~>dD-+Jw1^*^t@%=x+*50st=VO~USLqr0 zpeMM{GhlQJnvT?y@wz=d^`3pM=d`JhRp|*XbgN4qYXzfQ&}>J~6a1 z8@O5+-Gb&Ht!G6YS3izI=V6bOaR>RMJQYmJ^_Kq;LN|R=WRm_X$lyM` zd*?9pp+7KZrP=@eXr6dkD_CVeF=&7}a}EBaFa2LsS_Ml6@{PRYPd55&EZD_Xgv7XR ztWR*%VP93SXB6iv+LNo)SHSVG_G7OuPB%JN6p=abzV?aL2?#%T0t)`@%rjTPkskZv z3Ve4-=%+j6r}#?XeVieLBSrkWyRPz_i1l0gnF%gFku0AAa#)VP%+n z2}1*I(Bo6$#TOr}%|WVIZ&R#E>3`h$*$yyx%JjXqNz&mW{f@Os?-MBV`lP;+R6KoN z0~Jq=Mjnqtr)b~aC!h!QnzD3#To-TcosutoQv^j)+r&c2HC1?bD?7f9>>=jmTX#J=A4yv?<4^Q7>W%R5Aw zYo|?m8_TJ)yT`@6g6{$rZFbiTA7zJfvH#}z+1CpVeYQsk?`@Lr?(sF^Xp>iFc=#iA zd#*f>E#)tpM4#^*unP}$x@eRB-8;uMCPJA{kwNjo}rJIVV5bP zr@{uqJ7_$ge_VNPQWp?oNx7bLW;{)gpB?+R1Wr;InL|(RLY2po$2N~JeYBQTzwa>m zl=Y17U_nFrsKfCsE9fJw{-0vv>Q$qR26&pjIS2i?v12u79G1hgW)5!!E6+(on?_nZ z|1S~zi4S<|E5|k8vd;O>nmMz1X#Tyu>CMk?*~`-M-yQM2J&j?_@f|*u*QB74F1bAX zS4PMK9N!)jAB}%5v-8|Lmo2_)HE!(5lGAk*|6HDX)<2rV`aYa^I?cib*Gc{%8J|`9 z-;SXM^Pd}AU-7(#HqC7gI|K9WvHQ{eutOV0>!f zKD{q)9yfNlr3Icf)A{g!p$iu@S$v}Z6y+OTq*Z&CE-o87hHU5sA1~ieDXr5iT=3Z( z#t!-?0Hb;Efqzq8UUtCo9WvFE=J+-k@PiLHPlugebzpMj3;f^%9>4XK=VjZXea1Hn zp$WJyc|mq_o}RXVBOaQ2){mI7|1-@t=lS2n|ZV}v~W)cHxVl)#Y7?Y@pMo=flaYlnE#$|jGFfqxDnM}~< zF){1pd4Jz?>fEaSx1HAHeTUEIz5V(3J*Uo6=Tz0Ldv7i0E?+jP8$7o4XB7`{n^xfN zn_@@w>EtT#Bl;V@>(E@?iPlw-#;O#*zl_rg;)zLyJ6T-I$kTsK&}z7dP2(w^OXwe9 zT>VYMM*7cl2uIM%=O5-T2N>1q=x06AdMS-3npis(`J)+_gZp_seP^u*^7SJA3>(jK zA)$f13(ER^ zz2TT@%@ZrI(11Mtus7JB(H!^M$?`lO^-Uc8JIT+jjr@s?6*5Hs*;+a|pkqHfk~b$o z2W7dbL7C19yu2Q6a5ws9(vVl=QG?7fyFC7HCF#MI!oN)_U6DU=)x$pcMkL;#@2d4+ zLsHrh&0vnKqZ6fqyPCHvt;y(^rP)HmNnDOcor{I9H^)qdMWsdol7)5pmEykd_T zX5JJtoybYN4fv7Q-iCd{R5$FpX%fSh`Vm{613LA$kJj==`A|BeAnFMDeMB9qr)ysR zXdBzs`gH14$@82&NHw&VxG1}!wSJxGKpy||;k8))r+ql5+u~2y(MLIFzS?8WADVrv zBV^-!i*&!1ohO%6tYdYZxddzlv7~4@d0il|Uz5)7eV*&23?pA(+v(|EhR#nv9z4GO z*m=BfaJb2MJl__BUDn&5^W-Zj)>(SG*O9~ioagX%g`OP@_H=K*UfR19JbvAHzPlFb z;|f_{7wC5GRiwvSK$7g`UspR^<-2A*PEH>bm!c=W;P36+lRO@O(709T>q#!?asIG; zJ>~ad0Q^}^=6OEab9%VQFbNB_sl znMUnZ;Cg3`&BoeQ+NduiV2|VfCj1Js=OLqm54JuJ`i!*Sp6lOnm&YE*A2EH~i2g18 zPB8r!nm)(>Mf3~p-ks@ltdAAD_`UpC^W^wS@#i&wC)j?k?BA1G0|cEu-1V^^>=b); zcvxxwR73t{TO*e7m#iPm_{(OWzgVWNFkzb8d!zclp+zTE78$(|oytmw;i z|7GvE9oGI{7k}W5it9%Ctx9xo>bJzv|CfSJkLvWFDgO=ZSt#>wY~=^u-}Wc+#T52Z z+o5sijm_Ra7x+er-e0?np>xl|zKyN^PBD8Nr+uAZ@);j&_wbj+KUh1up>LAp2Pb*T z4}Pa_Zg+q18HtX6;ND(NvFA^xyFQ*cSLioWZHMcX{j0B5_zJV{*9oWm&Ax2lRVVKi-LBY$x_p@{Y@xWbCD5>?QWPiB`c9H~ARP z(O$@Ek6P?YgC}6^LDW3K9_{R11CITUu75%r2WXv8t4%a`;esvoF1@$GK4<8#RBAk@ zf;HB(r}2vm+1@BafX_vDp(^#Vp`@Bq)AHOca2?4{hZ*j(&o z44Cnv*t7WN%Ht=zu*`idVXX_RbOJA4+!KEhZ|}WHE!eZ>{+wK8$f5Yff8Q6?CeS>^N;NDp}W7u4ChM^a&;W zi6Lw0+L~)T0f+t5r(G*wyqq2O_6Z!edAhefeV1AGNBew6UohKbp#yg zlPCSADihb^WmUrZ9!|w$u;NwSsdfJxeLC%A|9D>H8So3*)387>gZ$W7C+7-!Z}Z&D zP&1b5NB_YLks+`Pk3S$x7(> z!iXDht<8e>)vtf&ruy&l&_`+JHdJZk(H-jVGm3JwAju!C zbDso<{BYC0jipk~UXq?a^8cV+KA*QpN?!B36!Op+CyZkY<&F;=p?^DhMm_nlK{e(X z^kI5(J}t&*xq71I1m*bpzuC@1GSVDd$*~d39{lGh~OX%3oHwbpt zSg0Rc=(M?kK_8*A9h0b(56{&cp})0=q0KJudin_4x$LDz%?vT=T)x|Dgnw6y{sm!} z+G5xIca#1dQrrUC89s7^ed83BV04Q6jrNbF`Uv`7HV@%4d?kQ(#u4`KDcxf|N&nfS z?nkDN)%(L9mN-oRo19$bU&ehHAzHKs;$w~3|NSLDG089oP*0z%sPy|M4#rsYiepFQ ze~==n9hlOH@V{e0r`_`nf~hGD+v@2Dio?GU3=^ZD-WEeY-&ffqMc&_C)F#z7N6>xW zza?4UQ-A#sk$(4TbbKcHVl`Hz_Z zzsAw6Z{l>ieQOCjS~2mND>&RDs9}4ne!H3d{RQ2m{;4xotXTy0aZ1hp9WA*dEX6H9 zF2Uqao;OOv4ZKC`*hOu5hCx~WQ28Hec)w>sNB$T^zzUs{KY)Im%6|sC(CnZF{8|YA zPg3ps7ouU_1f_949+b|M%-gKSk1~CJwH`35hrI=lcb-QyTWQ7j*P*Q9G%k^Zgp1UvT@Nx9Ep1 z4tm!O49axAA#kR?6U6aB?dKSMBVdl|z>ob^R$a^Y9Qk*wI5_sxk2>NA`_GkcGpnyG zO_01_Z9)HpWY2aH{hwT2tI)BZFJxVi=!fVW*K*MLLc!VM@?(FU4lpqE^M$926BYXo zPH@Q2ExvC+6sdapMcQeazcPUB2bqS@f4=hW(3d(m$eHhka|E5Q%kv!%Kk(o%1B3oa ztuec>qVtW3BfHSAkaUL&>;ECuwHEe&%Dw><3`cdNUm@vFrEd%!F1C*+)|~&P_B~6I zv21!lr~I$h)qiD5qqnH1U#TyYTqQ0)uzi|=q5oQ~j=fwqa&Vo0JYB0nzgbT}S1J#V zjrE(B?xjJ$MtgEEt8zU`9DcP09gn@l*aPijSUOqxV?WK} zEd|du2D_dSMY=x|csloAz7$74<4;xoeF=X?bC^2}B?J$5q=0uV;N1-NZ&uK&V?X?R z8tk(4hatPS!Or7PGY(HI(!KBW^huWPdc4nacuK)fZxZ=>zvHse17Od=1&?3(&cn49 zw)r*Z`n@eWPh2VJ@$1TYyuCROZ7yt}eTPo2rAYTS>9XGbTz01M_$rfA4en=Uc)G#P zbEd&Ao9+U}Gp9&Dr-08bWX~_)PZaP)1w7Ya*YEw9!`@@M4WBG{E-T>63-}6yoxihy zuPWec3i#6odtTQS@VtV@pGutPhJxqDg6HM}zNLU~E8u@H*!6s_fInaGe4$8RP{0cd zo;wTpiv@gl0pDY==XGxZf2H90YLR|l0e{WleqCbXL>wF=6)|)oCJtlq!2=vIbbvo7 zRt{t3pFMFm`>qA!8sGicxOVo50I&D@IQy1G+kI=b-SV`DPdf|*Y5XbZ%L_SL^@~e=gbHVXIAI4o}Yb5-~;3hXTBHOU)*75Z|C}a>+yQ|diqDj|6Y9|-&?-H z7w3BZNRM+py&mt0uc!2$+QC{@le9bN`XfEg_4a;LJoLo5UOv+6 z&-HvC74J=7Z}k7a<(JzB?SWR*b6=Q!newvEh;sOU4ze()J8g+{$)?<^R9Tz-a)=V6cMH>0xO@irR^h2Exj zlSXL?`yHQLYZA@r*fT?;pT352hVegBmG=y@_cGH@{*KSIu{7|Ri5~g`-$S%aKgHg^ z1}N>6q#yqsr#(GmZ%&y$&+N_gdG_Xry&WchSsIn&yA0mGS4f}8dLKQ`+B-4616SSH z8V|=0Q+~cC1AUk4&A3skk9=gIrZ+n3!`DDjKl3!Iihcg9&O4>kc`ir(F^jwQY*qeG z8valAzFpFze4PJDd$)l8q%=3yo>eLO_$@i<-N)?RMrq)&#>(+g!e3H7WPa%A&-9n= zO`7s|`Dg7LA+)DwlYYwI@yVv|Xwh~o=;%Wpe)8j5+fmT#wTWimF2b>&@~6Bg?~Ffb z?Z>;7tFS%?f~re)N&QwQP;?Nf=fE(_5F%|mS#hs%Myz-wu!BY!~TtG-;@4rto?uwu6;@P5YrF7 zrABnXw-lV|-rqYuPxLKq9EEpPm*33Zd%;6L{(}#!@y!HFI^pr+bf6#5-My|QXYY+ zIC}CE`@>IS3zmMCz7=r?wMJ`E)oz2w^I0=~^1Kj7Pkv%^_(^QR($DaR`h*tkHehrI zkLR;y{N%YWj-LF)=I}G(F5(w!&%+<^BGzIBqdRy!pEcv>`r)L`J^871l9itkcQO2g z7IheL7oi1=`rz@by7*c9=y5;#{!RB4;x6JJM^Ao6+(qoyedK9xxAUw%8>+aA^NP5O zC5+D}KOJS!{l3yQZ^!uWy>dBT&OPt%iM!aFpZG?*#m^jf(fx$xKFl*(cercZ$?ksk z>%{sfV_-kJ`u*F;WEA`p06GQ*M z_LI1az4?j#QJ=cjQk*`o&(b$&;b(>|X4M+^ljq3Z{KV$)Gsj(wcAI^RSc`ft=n{jm z^m$FSTjDPE=BMng{8atb)n~+AoJXv&sy;Jp&x0x5W00+h=RUdlA^h~Xi?Y3qYpLvS zvp@5U7VQ>3hppYNaX+!AxB7%9+AY48enJc1pmm46Y{KU?)o$^zH$SmI`x)`Us(z^O zZQcjKR-Y+-&9z(JFMIdXTfIG zR1WRoXNJ9O)s+ zy9u6%-BiNxN1P?#hynG&vh_bOrV~67-)U^?dU~!LVdV>d#K>B@WRtdzxx+0Tc-6{b z2G5?gSsO8|D0kq+i?*rY;MZQR%FY*-ZCb(0myK;x3>V|qo+Q0vyUsxa_o!gS9;@y<4RpIAW9m&!3n5ihS`g;D*}nl^*R0tIAgK!Q`)(GduyWT6u8AqrHk%8ES=U z1vk{rtIBh1>t2-&z>%+~=j$iRoPH!=?c=M;eDt()l$q|+8 z@@0Eh`Ql5oRp2Od?98#trdR3n=N(p+XUE(_E1U5>%3S+OEB#BCd_w!wqD_9HDhJY| zPMe#rs(65-JuF;sWd$!^cA@redwt<=$Wjh*eIXmy1^fY{C+fOm?$uQt0S6Co=%k#( z<`UMZxoq(3j`Y0mZ(fxS58o?ouf@@7^FLtpt$p?Ly=_1o{X2bj-RbmAyKA-RV9i#* z&({k1Zl<~~!`ITe{N^FjyD5z$^slEJLObu0F@BoqnToy`rwaOB8WA6#JQ$PohJNg0 z=fsg|y|~6lyX>ukzP`BMqaTNzZ|DDCv}clV~4Psi0#E(~ig4zM)Es{e#H!)zY9N zzg4OaOH}J%K8Pdi8>k$KQsxI9>|h{tuZ0L@ECGY7SPFw zFCLGu$SN?6(r*MnWj`_S##xI0qwR5o{3e>&9-h4O-G5$Jkv}^ha}>Pob+yq;W&QhV zhHa{RoJ67y?At~^W{eG_Wz9n6PcC)vI+@~=IS@vfdu^tgQz zoqPu*IQ(l<`L$@w1U2awTOdlT?_4WBhk4>K*vA6 zNIO8~w}Uun&y=3pSSNJu73}Rh%A|#;Z`{4E|2s-Eh^(3Mqfckl74qJaf<}tx>$7x0 zcP{b@s+WQDuU({j-`&Sj{GQ;j_xTRz+KIl>_0Y42e(x_m-TPaY^{c?)%?p0-pFKVI zF432{9`BbN_WsWKb8l0tHJMKLm%0dhsP}+#>y0bH_0V>r#Qa+JbiW=vU+*V8J-3p) zhXoDv5mEm6P8WAIm-RYyJNGR3_b%Y^1w7GUx1p^_-?vDgRHRQS;QbBuyrvfE2OI1< z4=Lb73;3{t|KkOGq`|K9D1&L)zRoCoKi*Qfvr+PVlNJiCgfv#iQ`(Lb6`oY$+y{UC zxn90Eyk5Q@|FH7)eD!()?}_j4^|L4Wp7QG{y*E4S<#N8%3z*kiJzsD5N6oih--op$ z@~J=9>#N7J{*M+{uwGB(tAgUNIh9*A2J5KD$9t|0|3w}CUWG5UIX3249yJ9^gzsG4 z#WizjbjIvmKlEC|W&5TKe>iK86R(JW1g(&TiNp{^sQB(pk3PqT+EX?3 zoz36z_8ji`Ka2ll^C#oSnSACy&eqDHZ%=(+7yX+HUTXMLCXfG)Q0{J!{~R+KpCy9oZCe$SYFo*(#g3Flr0ztf+y=W6iq z4}Tn|K4w~dfuCUYbD}-Fm2}E4<0sUb#0!3+@z1m;De#%8{Ahm}_irXU{<7K6GYa_I z#{X-37X$xwl8^ixf5+Z6o$mF)bImjQ>9FgM>#fA8zgG%6{+2lP_v3=jyFjL|W##Yq zk7O@9YHIqvtsTnG_tik}XYnDAvHEkI>wmDxzbg9Lc0CTZclk``%kVXM3Z3|p#~A;Q z3VfT2j=s(H*5UqcRr|5<6YP4!U&oKJ`g5H6oN8}x|1A1=<9Ge!cSOQ@?r}Q&)1=4o zBP?Fy3FZ&!8xDZi_%K7U~OIZl0i+TKOMpH6h%9`H{;^ACR4 zrXT#@6V5ZM)3NVud$W7p_+3B#VDAr7e)zMpzFhPy&XT9kmmx{5;NBf#|`>%?Q%X+zfmG=rXS;cF&B{IN&1{ebMt5$8)qCo zVt+9{A28$gd7O|KT&)#<#N$FXVED_JT>&p$vYvSMFj;saMp+3fHekgA95KXv%zST? zEn#FM##ae5M^MI&D`Uz9ylUm(iU;_GW#di1;sgplsIoI+)1g1ZTeL;2GwfNqWSsGn zZ^X?*&pWGK=k#eiif4lH0Kc$oZ2LofUss&VHjUHnn(_tq@*%ysd3Q^1s76(6pG-(9_v#)nDEJSkY;%5Z8^F;{fOB4lR{Z)-O=S=HE?%^o`3M~Ct)=dU<#Ctg1}{ z4;<+2893S!aFkES+}TyR0Y{kwhn?6qdzRO=+ZpzsS?O=6bx6P0De%C74l_R$?b+wZ zybVmBHb?EjZEL8VUcv9KzF2uhpVm?Ni_Y-ZVeg}^pLcrI9>%twRoOpz(%F@dB|Ll9 zIclG-f7Qy1sy0CS3(MRu;K`HRU*Kpb%)u>O;PuGdT)-W3&#h$PiCCS$QEp>fKcO=5 zHU@vduE+ZX{93rc%T3>8lwWQqaMT@euA@&?K8|huWR(t_`^L*;!|3)S72~0$`O?Zx z;Lr&S57*hJvoyTc>`6Lo_@Z81o7e|ABef8rlgy%FrnBDXv=pGBgIr?|Th-udE-+b~J zLFjQHkFJ4wisU)ij}5zx$1~qJFmWL7eym%~jfDQKR3o|m))U)wV-5S6Ee!q4cJ7}vh5VNCe_Q!XyTJQH)J9-|POBd& z3$y&@6&&)+w~av{9Zl&Rbmk972T|vG`WTxl$_(A<%vg@nyWwan#ZIv@a)*AdmA#ZY zLT5ilb@Oizz2z~>X$cPcg^ENN^>>BpW>6jdapnG)jY4`{!mA6qw?DpUwY8;gs{g}M3k&;))tWTE z;Ro%D8CQ)uv^6!{LAD7OYf=;B<87aPD_QUD4ud%wmPe^jj>C7qQAFO@7wm7xmNlHJb zZoS1}w%Wlx!1uEKp#SS?|KF&6S&+x&sJ}i>Q5=KQjOzcQEk^#QhCslhzmruzK_?Dq=^yQPbKPB{PZ}beXB3W*Cz9$po@B8+ z5?ImC&`$7kQzEt>p5QEhMnxxD=f~^lL{bg;LnVDg9sMljAM_lFGuy{{rRe`zuhFMY z{%f`SReRq|_kjKMj4|B$NbIA3pziwW9zeU;Qg_)A>cOa^pwH5Z;PaCO=PNy~1?bfO zSM?Q|yVOGdQShOU#;C|-?1V2Ts@t|wTe9TbH3sL zT@2BVlXR{5k?A?o>v1C0>)%|pOTWr-NUgKmdbo=ehvO0_>;Gx#O33AVk*Jp@I@j?@ z36A_PRcT!;8#!j{cU;l{o${Hho$#0I9LLEC2>H39UXjvf>Ktt~=(lU%_$O3kM&sJ|-}DYjE*KhCSJ^^otB{T(I=2OgYitkAJnZhQseQnoXyGs{q*m*DlWtIDZM6J<5~~A70tg>esR!FPqkB1{;4G6tM9Kg-pGHp>O1;u zdjIK0&E-!l@f%WFO{H7!|1F~4Q@dBQn^Cscs>gA8+Rr~I|2vZWc{)c~g?$Uf!PhMO zz{3s$!@e)*O9%@So$IKSr~TX|`WH-se;w7e6#DNH^>c}ieEs!5MR$+5zZ{@vnR@@f zsMdQ`k|#<>Tx+5Ki=y6@=(O&7{THf#i~6Cr8IgEH{%*C;`PCaFEp!9p2>-X!v;U4& z57Q)?-$8Lhl?EP4}zw@>;Kdsyg{WI0y zT%m~VPni_0`#N2XxqgWSe{bz8iB9X7Cyq=%NwaS*t3+K}(Uu~AV!>znwN+0M^smUa zOus%wWzP10S=Rp(s&!ngU-Shb|7B61Od95k-luaOtX2QBxkgA%O7wMfcav|OB^{W< zSBv;P11!pi(G%MFI{NifkHmQ+{aF13?Cw1+{enTyuJ;XXLfwY#$ELT1KzEG#|b9J zH1_V5(t-CjxUZ#8DAFeua9aUK&xq{4mhL+D6U?e4uG0f8y^p~>4-=V`vhnAh27~<> z$KfN5-{EP-KfvCBX9&jT5jvlwAASMPG`Nq!rxfsM20PEJB0cVA$ey7e<4q%V=1QSG zY_BuVC!|yMpU@8s*zZLSUu5ZhExp5F=fAXo>0d(D`yuD~l%@AG*{chlYYcXtPZ#N2 zpP?tN2JD$%r2BQ`vNsm#HyP~dpAk&k*iq-(QabQI7~Ej#pDWUD7fhM&tTXonuANq$ z@79m{rG4G2A6kLGVsIaWziP0j-&eq2E8zPJcu@f_F5m|W`0EAyU;%$aFp*Sg;}7e% zo~~lr=`;FaDe$xU!9$yUUOzD49~AJi0)C-@mlyDh1^iM0uQ0fe>HJ}l{z?JAYH(lU z`L`nd4TD|wM+LmH;8|s`+y7RP{<8x9xxudI-;4DBDB!mXp8qV;e^sRax=3GLq`xbe z{%wDqf0uZGe{XPKOaD`m{%3>xSo&WISVga+!O|NFxQ}4Qrw=@Az#AFd z$M^>p@FoS%rUg7$Fl$)pW45yNz6LiIa8u%kXIKF@7jR1fZ)0#D(=#H$%$+iq%e+Cv z&K~{w_1hw*_GeFA-{vJw`qSWjSnt3*81c1%gP%15!C%721`j&_^?Z-h%^HWNHw!(R zwoQJTXdb$D#+MqTn^ZX|3dZT`+l9?Sc;2VB>7#mf%==VvviagW2ypXlyl zvcRj3cYlGI8%O8A-8-?1J*AyfHgKL3E}7W&+XEc_%BLsDW`~=bHE;9G*!FKuICh`K zi>~gXzs$F^r{pj7Y%z5=tBav;U(TK%?ZN##uiO88RTrB}d&ahoHD3k| z)Ovwu#u(hvd|2DgzZla#@fYij-}`G*+t$9w(@&dlNZZ+uj5eFsz4K_zQ?(k;yQ>fE zBFj7><+FTQhtHuUc)*@+&nx}+Y+L!4v9>N?=-Yd@J^X#Q;ne3Qw3X$?+_LMLr1_|9 zXQ}_rJ6errML^tUXBvfRqDEz7*Di?W@R?Wb&4ebra^ zH`lpa_7mo7vHKXLFWRZs>92bd>$Lle=6fEUlNj#s^HhqS0rmviPiOe(ZQ* zbwpt{a~+QOif^^CqJAI!jrI784c0|p<=k0-e80`RQ+5(!(b`<&7pV3P_V-@91 zEmPlUp}l#zyH3iU-1)wM=R^IK`8b_+8~N1RU61#~7wKFl4d$m`5y*e=_26y8E%wOy zVMnf~Y**;-sUGX?tj9yXK0ViO+0H06FR`BFBE6?`eLlfgpAP;(?Yy3^XZg4;z5P>? z{#^_&|6Ct_6?x0>QpaQbr+v7;-P>_b`9}KRd+uJJv{mfGqO~+X+)uOlZYgKlH)pOQ z&b0mwbfy>L%=`aFI^#WOYLYYBIQP}FDd%A-&!=8b_ww>`3ch;zdOY|(Y`YKsp7iua?@6wEdfdN0 zOuy#s)>{cB?lGZrzv1;x&Gckn_xxQ?@KdV1gVGDEryTlOi}8MTUEyn~ovf==+9UTt z`daRTjQPM#`ve-GmccHcthZ}E^>)UfsUpl=Nav!O`@AcG9a{5PWuQ^|D-}Sf* z;AqfTRKu?n0L;-ZYSl!oVXoH1JN^m7pQ!LThQC?i#B;AT{O<}UzWQR@6XEiXv&Mcu zO8{S6brc6HM;2E*-C2789e(F<+{gP!;rjs8WE`G9Yx+IK@hlJir8HXuN0abc1HHhu z`t`T?@HyS>!uNTcKbmul}QzqSg$#Qb%f{4Ozl$gi!DW>&_mD;WAv z)9-Ux(D&C|N~2~hu=l_UpCc!tb!Lrjm|56Dt0zY`)v+@PEn1(wjuTN+WfRn*DxL{NSHW zIPJmlqeb`j0RAP-1A?Q!xx(+act=k6_Hemq*!Nk@6f|n?6n@8d6Mlz{neHh1J&As_ zVDLLq{9B;~p?Pv}_?_-0H(c+&S-jjQ92uE8|k=lXK~jx%n%i+*n3JvP3}xZ72lX>XJlvZ1u=~1s!`1sPG$X?i%{tN&XPQ z9Lz&E>iSwDe#gE4c(cN>C-)a$mDk{L{RU2cv=7JcujZQ`Q%?c^$)Z7jTvtY;cJ~Fp z<4@UGveRi#->Y?smt(n=N6v4#mA`)Ytsac!c}cNa{b^Qts8)_!jN1^AB*f6MwZ zr_+D^-0XKc{maj7JU`Q4xA|J|uc!90Qu#ZM{vTWUfInsZ;g79+9H+gksPsqqc8J&M zdx-u$n{NgG*CdaBj$_YDHXjQ9YNF3c@?ST9UbXUp{w<@wTIKgj!jBP+>-k$&zmKaI zciiQ_W#t1s@DnTgA2sX+ zvfSpp>F?jyT?_g~g4^|5Vfx-Oe(*OFzOP_@D>ReSsNI~*nM|tawFdeV@L#EAG}iuN z@)>{Mu08Pg6MbXB+|OLU@A(D)i}eqBsM0Z|qQ7tYO8hF(xJUh5ExA!zM+oMAsKcI5 zE|NVZPXAKkZwf!J;OG8xbA_L0<(KiZEPuYAz>Eyvvl<}i?!@1ySt;hdGJc-%m-yOU z=m*J5Up1gpL-c1pCk4Kr$vb|XaviGYj+$oV?JzoXc40sAwBNfcdadF5iq7{7^c`~H z_`j9a=N!9!z=vucpYLzbpPpLb`&<4QpKNoJj&uF(Z|k{T-oM{L{*H5f&#~1+&JVrG z-m}0x|0#C;I8Odk>hhan>%qBZx6-UP{;wq%e5lz!*{&bQUH=B6&DZZ^iH<$Yiv_-3 zqBkY_AmP}%ziO>fD^XS^`~CUqS}UJ}jE+BNS^1PW`b(U?@ihGox9k68+fxkvWW&Av zIDVSx8!XzP`kkKWn+nDr){QmlF3j}=enG;cd@oKo^Lv?ou|4~sFXXvDXMB#W56}3u zR^A!Ez@BYSmVD^v+2LIM4oc-i|B`Vp5AZ{*JkKzF;76!uZPa>>p@J_e=vyb;^?7+X zo%%mQznU~ferMUr9O(YNm|Lto9OrrAX3Nj<1;WozJ$rr^m_0XZb#l$tubh|cr##T_ z_|3Ln?+X=vi|NbsTdV_u9{O4YQ{HNGcD+V_68M|a?{w<#l^Xqti zsn4T@&(ob6oM){}pJ(fZOZjMT9VUORtsj6M^5X;_qMzT7Ua|Z#{-WiV@rPBe{ta^H zf6>;`K>tDN-^mX=`uk4`cKQjjcZIce?7tzE2kpag>gOTLzr@4e+pT^cvh`$6$N!sb zeK7c4Dsi4qgFkSt9jBjT^r;EIDdo@g0{te_pXEKjd+gchSfe9`}p}%7GKwn|cN3Ym=IrMq{E6g_RySZpDj#ECbTYKSpzFBvjdAeU&w!2aBqj&UYG9)H6#Jf{qzgGk6?baiglY4ejl+sV$`?z;-^wbYsKkwwHy*}qv z-xDIHKHrCmZv}zJH+M?deLnf==!eOrYkhXj+cExkuTQVz4?j#QJ?b9zCROwmcBs?KLf_M;8~M?@*LTlpV%CJ#`lE6&+rF4z9&?| z_!c~C(oeo8)SI8OukurMQ&*q|C;m@dwQ!+c%t3PFZ=#X_z5k1gH{i_Z_cwO{iHwd%}?yle){)>!q2Y0 z`8Ri<;ZwBL;8~M?;$!cA#`lD*Pw7&h;Sav?i~0;0dho1CKY7yZ%};F3_37UeB8}@a z{Nb#6YY#sI#<$@4pZ4?TTEr0FC+1ly{M=6PMEy9^p7+)7Nd2%m{3Pa2`J52n*BRUT zCB3fY#wR+z>_D9s^H)mH1O6cU*Py&3$VTsWc|>Y?SA!m0zy(PoIXYmp|##r?r?3EzMt5on|=F7cTg=VvTwFpn(})yeRX-)6%?+ z=^;H}_!lm4*>_ier%DHow!t;hG1qy3Bj1j>kBY~2lD=?(*F^~r8u(r5^m3j&>9MM9 z0LS-%N%;C^`X>~LR;@aYC5PR7uE~HKL zbFQHK%2Q|@{X6?RVAo$?QfzIRCo+bzRvq2HrxQ~BJ3ZI@e&KIfA;k(tM%FUDRWt6a za2unvtu=e1^<|w{h{6}%6@n_!apJxZRtt&zh0jBNX&7?F(LsWPjs$<$tL{YP<0FobjoL()?MsHf)4aV zUmWsV%loj22uhn7XSR=3X&*~z%#zmAx0ZBM;@DJtg9~}`=W96O6LW9jYveyzuMH;t}7C)##FKy(}KSFt<*N?$Ap9>uNi9VF+%w{tpT9(i5TEDcXrTNM`Zw;Zp zS$U64RB|4b;LyK=@CI8|;$K7Y)}Qqgy=nU-Lur(B+8^x87L;q%KA0w5+&c@Jay}`DLPXDm8r1>V(P_?{~mJ=R~ zGI@H1_2u2r6xFFkbuHOWC0FGK?1#7f@;~jzIiughD*8kY=k)S)cwI}U)S@48{tYd~ zdAzT2*sm++$*oE|@Ctsvo}4GQZ11bWHm^VDp#_I+UhbamZQNnMULE$<;`R(PSx;{+ zV81?{hc*=XdSBz|UhfWj8*)9g?buuI?S%Exz6J?9fxZ46ZWSKsyBh5L%uAyQ{&5Ao zdjaoJz<$NDy1%A7BnNvEd@U>bd1he0;CnaR-$sp<=MT%@8(&ZK`t*7{?BdzN_i;sy`g-n6|Lf)6lirZ;>D*KK(_eJo|Kd+5tgf%m zPwX5Gx<592UE?K={-=%mzFvp_y29TuI_m(O|8>I|KYPX!z_*YcaXfEy?^8%a{s>!F z4@ejyoNFjz4Mq_=f(?OnwXV1$>Jd_D-{PD;aOHdF_l3vHQY5i+_m4qHoeu ziO2pQlH?iBbvpW*?1=)r$@r(4zKl29Gn3=QvY%%6{U^kKgvG+wx_#+$obtHO>~kFc z`%ItX|6+KfWWR6nu8%(QDgCBd{^whHW&A|lb-L0iFQ-2zedpUVN9I4*?z`xpmhAhj z_)8rB9Vh?e?VkBB;y*F*qyM=IKiBTk(C<_90NLI^pX>OG!oO+uzF>6l2W{P8Nk^aK zKQR6#@uL6!n)7ch7)2yjgIj579GYOBm?~jQhm5BX}=nd@EvLFI+IcE#f`K$7yoW)9N~KHF?V?SwD}r? z*wxa3%ec$z`_A#0v+M`OZzivZg^xWEXBs%-_rI`=xXz<3uNRixqOkynCr`RXvJNj^ zbaNF0yQTSNjf3oxY-a4K)!@mKZq)n#7=wMx$m3N5N4#oJADeh?P`+;e(j_-Y&p1n; zKJBI|ebvgFsyNob9dkWj?2K<607qGAwNfRkXfTz|`Saj${T*{ZD?M)Ws+G4E`WZ8F z+ei=Jr%(G_l`nAkTf(zv-B#5p`9_@rYox>KYw;rIq3+&UeOqPc(j~W7vI`e{u1W_E zn_HScud?;JaDInp&-%Q^cf3qit<1IoN4)U)^S)5&1P9CcF?nU(L}SerTHF>wY61nv_r zB7WDoc+ou-tmr_p)AJqM`e1*aE7^q$GCa0*amC*;H^cMieY4_U zzAVEn%@0-lvu8ad9`9!u%X??F!^@Xtc=oI(tLqdvV*jsN`9uXX_7~rxS-9Z4RldMc zR@0|_w<<&QFI}>Sl`XPS4)8}AE?x3y1vCB_`hDCm>hW>eoZ+ZD?2P&Xj&EPQyZUkI zjJkWgvH@R0&+=tUB^&klcm+?Mv{e3jUhwF9E@nS)q?bH{27a&N0S^5RdpXaZ^|Z>$ z`#|96D}dwsB*5W2aQFiJ&g$LG27HYE894Grs6A8h0Ea!m;R|_19RY`5g9iR{rE~tgXR5Xe z95yUm@LZ*H@uFudzu<|wYiWMAs+X~?Kd9^h4tvUU^h7-ZNBMA{4%>jEUfh1aFF5RN z2A;UL0?*feiyT>UFFg$m)~}}ba39xW$20LQIQn<`STJzVeYbR9lI-YXZ#0>{uSSi= z1X0j&2}T|%zN7BrHZk7g3_)ik*hhLvCmu#U9jcEVV`WQ0=h^25MKZi6rJbpBQwkoT)r(yGJnbuseVeEs9A#pjLJWv&-)Si zv%lP>NnfuT0}uK?%7d_#?3d^Tbk21R?05sW6be2dbKaPWf)Hk>2<+g3At5YHptkWx*GJv`Mu4 zIA8XEj&??NBf^G z`}dUp@$H1|L?2to(>^DQx_?Te{B|wq=$|a=ezqIPWqs^A+qXbh@8^;XqZ&Kc$)BX1 zNmI3xb&P7UO|*%+!%VI9>%>0p2hFvnqJ0nR=HCdl&W$a4reC{d{d4`^u3crf6*Y8x zx?02k>$Eq8*wB6)uM?DPKRZ7Uu@v7=H9o;`;r~t=WuKrL+C}gv{YEDXp;LZSwIeU& zi3HoOG>(v;qpNeCC&|~-Z9Jo-PgSXe4Cir)H{^*cd|FB)Dt|qlZ%*td9aD|xK>g>A z=J{h^`CSKCCi726=s!_c)RCTK|EDB4=!Z$e(N(nieMQ~RIG|JhCrWx+`ZB{L;n9|Y zewbu67Gwu`pON6uf4pR;r8IUJ2ORYByAaNHuAM^vp}KzDB9eEi$};4~sO|J|LH$3X zTlt-=o%*LHI^}$DfTKO7`#n{h<`e6!=smZzx)*vo z$@E#;*?(>&b*yUJEr|S&SB;#FLLJntmwuL?t(5a@HjF>G|C4Rc zV9>GeB2hn)qQM^}{1}KjLY}WWo#RRRe{47T3zdJSAK677{d|=qKi~H2R{v+o`nlc5Ols;a6Y>v?KoNg zyVCh8!YQ_slD*8QsI~hM@>eQ?3EwU7gDdG21A|Uf+K(qH=lb^3p&iawR6XQOarhHV z$bVc{O!Oc0J@xX}>-qb}q3Yb2ITuI-+ zVCUJefHyMO=cor3@FoQh&ncmQZ~<>7m?&M?HPkqWlSoVetRx1RUw`btz?R|qVGr=A z0_Hgf{iN@pAN=drP5`bD^a zkJb-=x6t`G{g_)GqO_S|P69);gcB zA9{c{lE8r^%xYJ1_E2POA8k`&kM^~Pn}`rJUl-5EjHgkOmpUqmM(GGRVzQ! zMbGqUu7CQpTQznWd1aV%<}E@`slVi(JCPo8vJ+Y2{(Uhkaqg|?sX?zS zGqEW>CZvzEvVxcUdV}TbF2X8Gd`71EtYZ$QR4P-drvpu0FEg zA6(BLq_6v$r|e(m$8-E2pmTkUXD=&aYe#$NseHW_JeH})nx<`_56`==vC8_qy<~g- zdU<5Nup8UR!R5M_dw(l;S}iS%x-VnrW_?}LskhuN-HWpR!v1>s-tds?tv-XV{`_I( zKCB&~zn(wR>(BLk^?2~tr~j>X_oT14^q|MN-ky5AC%&H2>*fDmyr+C3z5e`B^ULj- zYu)=H&VE&t*SBAfYW^GzdM<9*T5EtDb^O)}Cst0a;kgQ*A^hRmFDjhaj1Sk|t8ilf z?O|(}T;C3c`?~@u(8t;uCa3RcIPcMZK;OI?v#8Zvf5hSpoHa|%zmxbI)4LQY&cB>X`0N}1kb??%wK)@TLt_zynX_{Z2BP^P!o zdzHwt*Xu9pYY&T!_T~>X!*`MHOrMb6YsruDf8PA- zWBEIdz0MCl-Nrwle^V0hA0(LLn;QEEkNS1`x22V53}R_Io%c=f=aYZb7x){hJ7P6b zUm5?A#RAK?$9i;}_V&Jwk%0du$up)49{MAO#rr8g?1LUSV-AkvU#($-N*;SWcB0cA zAJB#VhK+Dhe>!wMzER_P%lP(oy@5Aa`x|NX2fnG{TbsY&Lp0Xes8+&z{$3T`V@YS+ z*KC3hvGy?3o|^U%-eB!(q}89}__Lwa2e@BP8|q#h;|S3G8DO%~ynT)|e(;v0kFk+V zXJ=20CE)M&=FfggW7Q)#_2)SL_|xb9qV`X8%0J`l+qemMi$)WWSDDASz4U*~{DI!r zW}NKy~0m2 z|G@V(`wlYyD35(L)57(&t>BVQevTh(bow&*_fPU;1W(b=^E=7>13$>}Kgs-aobo){ z#*Rw*j;0HF=(`v{{srDtM`t_>|6KnY=1;~SG=IRSTmSc)qbZT8Ky`94I49>V7Svy z6Ffsd9jd=t!)L@_;#_|vPJNa*{Y}PaoBtU<$;Q2WY#jZw&7O>JtA4u{UzRocEa6$+ zV?qBT)+PJ!=W7*yvdxc_^m9bZ@?M|d+iEU~`W@GWKFG%7pts5j$}{|F)oR_w+DVl^ z2d4J4UXl+w_PD(B?=3q1jZgC2yUx|`l%${fEOF!=zr*sUuJC8J@n2;#0{03(!}MKc z<>xrp*C*{-fj{W9HT0?9w)&*L9LK+Jn}1o~H_X3`UuJQJ!LPFXzES0OmHB_W^(EwY zd!o~J(SN(y`)zBl;CC7Sw@n`WL5+oz|G|RM@APljSSz^8dn{(xkGpt;+$L#wLv*-Q-$F@vgYU8fZHBM&bM}1}fAJ@sh zX7jNneS~C7dFt2cu5XU$jNgTRY&}aqx3AXlFR8v9|Ecw#*!ZZGr}sDDk0qS@1NgsM zfAGBe9j}j|NBer-=x^8z6?r=Saa(f%?)v?C1^jWXy=tsIVg5Q!{XL<6$;;pAOKeWA zlqWyur+<3h#@hk>hCKBjz76Pe`@;#GyQ3^2mCQ>50BfNa^`>9_N1Wy zY1Kkw?KNwUj^8KTV`n1&jA|YHB*9L{-)A(V6S&Lc5A7rL%}(@ZtbAUvYn}Rg-twz8 z{7n3gqp#M0e~wcg9(&vI^Mt=)Giql`{x?=X{(J-;&r@p)ru>}#zOCT^f5Y}b@^9Gnw@UXlALCzT^8WnCnE#u`|GquTgFF3A>r26Zoctr!F8E55|D%;} z#(!${lkrtHcLDyU@&8m$xt_n{f2{c5H2Z#L&(hS#FO&Wuf~l{_pX)K>o*(!stIs#} zR^`{T^Z!(s%l}8RpZbLVm&X4`J*PQ;&?)=g4#t!twnu-#eUbnpgZ=d5%t1Oo#VV`z zctosF)_-~olY`P);bm2=E{>+IjzuT!AqN#6Nzu5$b}(X3y~ zd_6;@p993!o1ZyWsKuA*62m0?v30L0R%i*cza)5o*OZ@JZ@u{``>OgR9%dP<1sZjQ zZxJiAgz+tSfY+3t>wE}5u|M`E5f8KUv-B-uW#VVR_!c~C($952grC?PeiAdY^fUay zw}_`%!uS?EYtqm4K7^k+R;b4VE&VKgi};}U88E&D&zkge{SV=%?5^rFVuj*MiWya1 zpAjDvTEO^*d=LF??W6a%e|xM@@8xsfUVmSSSfSWYJWT47m_GO!u|mOftjr9%&nG_} zeO32-!EXFvOO%Eb@mCww~o zru!$)wY~YN{Z^Hq@~=yMLi0Acc006s7(astxO;u}>onu_uebVyPsiWnC$U0%^Ar1{ zK4q)LmW=u=eS;Q$28?gP1H7jE^Gy@TGjljxw#B*0z@NW;KY_bElP!+B9k2p7YzR5>&e3XK6o_@Wy>A z+p}LWXe`${xJ=jfthB2AV%KjI9(g924?LCc!jxx}EwcC)I-v2RJfb~QCSA)mmm9Pw z!+^aEod?)`^BmRwRDS(Bm4)S5-~Qn0sf{7i+fn+7uHO8_zVMSaQTiGFcw1RJJyY9# zz+mXX!})*G&(S;QzMnD-KN-9KtbUwN)K6`swp2fS2tU~uU;5e7++_ZYZGBODjE7Zl z#MC4`VEjav_hGzWZDa81vsP&j^T-NrY2L1a$q)V~mi(xSwFw;YINx3Uzbe@EyUwog zOI2Qj2CmRr#2j~%_^A5`FIy+uUasKl=e?xyo6Hk2N8w+( zq{aA`FMFvf2lyj?Z3&+~>t#L1x}FCXy(SyHJb^A$ ziQ4d}E-?J?5DPYB2MrwA4JNPP0Y(q}%a=Kf{s$KQr?tHj4xXh;+#Y1LawWB^|Em1D ze%^mcr>9e%lP7hDDgTJ|d-|;RRaT=+4{*Nj-mi3$9_4n&g5L^ue&B|h!`ILIO$ASx z^lrs7w)LG#7C7SR(q_U2+ET#Fm;Jf22RQnKv8{iq;3t;+uG0CyqHHt#VP^?nKkv_# z{yP@@ccmXVVkA54?RnvXhW3cH3>-dApO)d%XZ@urTj!5*{_m>%;fcCHmTUHFQ!h~5 z-&#BU32;kut(|M_ikI%S^tis@;o9dKgeR`Gj=5{K2hZ5nwc4ZHboUpJ*9CC2f8gMm zKd)cK0~}>Lc~S}Yk)7_#J2Ww$`43qfGSdTiHf>*igdLrwx#P?{Co` zJit6%#XU0C^ys!|&mf-8Q(heYd{)xgXLloCFx1hfbKSISzkG)AXGEjd`gd+>oLRre zs$i7U55+_71ZvQa`!}&N*0HBtA~|%A0lThJeYK8=_9nG9KqcQ_((9%-to}+LkfI5M zes(GkwABK7mhME-kD%YCy@WTWG{z{SET97q(8`0|?9B(Jku^QV0aW?lroGHJTZ;a5 z4zzVVK}Vi-zgrdY6*f$~kw0-Dm@DI;el{{Fm!HR2CL)C&$ZxD4@;nQ(HfZxig=eGW zYv?ccGRnVBvDgv*4V8w?st6ir)?15?kS7K;_2kEDCm^maIK_lNonj*tEacff8t&EK?yK(n)Pq1Rg~LXivNqU z4*SYj6;s7hPamN=-?q{~O&(y1qI|ZObONLdtVGK8U0q`@_*Ir>5lYk5NdCyPkNp#g${l1vg2TS+v{yc)Sy38w9rW$hyEdh} z&c`I%ntJ%q-=y{)y)*Z|XbT}vtR2?DaIhx+AcJ!GpRYdS0$b?=f$Q*K;|Tp1YM1VL zmcqXrmn8IGDC#+hj%0oPep<1{u1X~^*vf`hkjwAdA{N60wI$XBbAj)b-LY_Dcmy5%Xopn0az@T5R7J6=?vMap4{hV8CQv2$sXbRV>?H#CR zfqtDQ$P47@--*O@eUk6fS?eaBNID_W^?x5r@&EW5RQf%hJUIr~e}`E+66t;~_4Eyt z+F#GO*fSUws6#T&c+~w(87U}-HemVRN8ezC!QE#0pU z=kdP4;ZGL)mmBQqR}}E43Z5&A^s9>WYl`%13;5Fod|kmmzkqKj;F}8mn+y0eg4fa0 zZLIJ;6z$*&)hk|(*rmg)ys}95k%`oTqLZ zKV{Ni+TK6P(|>>VpW4QJ%*Tg5^W#6ao%{19;~8<#U%K#@dhUF1n8g8pdA*fwdWa89`s24c&y~M@v+eR9IM2~%{;z@wqa+W3Hz^Hb-NJ1^XD%^7Z@L7$J5pU)EP+V@>VXYzXlnoYZr6{0=FM9BUPpOer`^@i{?$X9+D{#@)A;_!^=aRD zf6wb{Tl8(ebYfHcVebzef52;f+Yi~r({DI@t@g*Zb^SYR)W1t!r46NR)MMCO`cnE> z`hMOKZs+h{)yxLk#>ht++OOWxZ60-bpZ1%!a^JU`(zpHd13Z0)jrz6U{hO_=E$#Gg z{o3#U>DE?mqrbdX`@_pUeaxBtyVzg)Rr*_&Ls>p$xs~Nv>M!#x?J4an?JxbphVZv6 zhw@tZplgI{=jxV^ne3-DKF!m|U;B1V(EEz7oE!b+Tcvtl0u1-AI~A(<1hTJ6`Cm$a92E??R-7&&(L@5APo z+jG}AAz@#fd(zh%y*Ig@ln1cxYx!p&3$8`pe?=_~~Ih8alq8_;>JRS`7l=XCv6I0&~ z);0NlW)GfV7grZ&S_9|q_J@D?(R;h-y$y@X{fkM7{sr$n4~)*2{lGvzPeh zlt1ro*v%{wZQJV!Kd2{agL=yKfj=MJkM4faYf~T09eIECx7oe6*}rzOA3JGpylc?j zn7P6a>IOg7O)Y|w7^pPrk2B@K8NWHBhcoh=(ZU(6oGC5Ny!UeEt${P8%-QF}8mum8 zb3R8%xzP&gu{Rb>UD85*L;z4@qYab0taqz5+*{#%`>EFO!wO$!INvUktd8dm&)*&c zA8h-`oc@5}gB(fx>zEy${l*3jM6d`<5}l&lMWS!@_F~ygNUj--b2p zd#c8_i!wgi_Mtvn(LK%p^ugK#8*wrmN8e~0`OkF!%HzZ0AEGxj^kXmj93QT-uPNF{ z;7^(Vjz2E`;VOHlk52OY3+EVZ-`1)%{8IWJH2ekezi;*RA^(((aiaez!#xfK@1~A_&&D~Rf6vOp_aQn?dAx5U(UiZ_ z->b&^o=x^s-Xd$queX<|&-b;{nEE+hG~}KBo|O;yFOB~_iy2VT$0z=0&EEISfBbR$ zKWsD>{-8(u2>ejd@GtleO1Mt8=5U4V_4jeUEpKpxYtb99c zyb5|plHWxz`Y*Be^{nY*Y{l`*ZHx{2<<`EQHTyIEl+Eme`}Ogxjr~zRzex5+dH=HZ zd)fO3(+~YU`_|bXY)lb6=-BHx{=H}Wt{M0FeUcw87(Db-f8c*e`O#|1n>^DVe`D<8hS#!lwFG;_>2 zEc9K?-*(-@9N*pSomACdyV*C%=K6mno}gp@p9`FOWTv<49vSTq`_HiUL4NJ#&l!b& zuE&FIuKm}dPfB$3|0UtjM+m0m4%Z59^zA4de>A=;{j*HpAA}#7@a-!){6|*)yZn(h zM(Fat6a8=-KYUd(E`OKxCmFxf?Ei)7r~J;d{IF-1mFF22XQiZLzvI6a|12A;B)>C^ z|2!MhM8988cbdNcuJE}Q(+Rr9bJgG7Y4(G6)c#9a?zD09KUMTAHJk0+vLXzroNp2TGQ`1^lNRlHq)=P@y~a}zaZ&HAN7A{!u1SN%XGK5#9Kv& z-{tSLIRNZ&`C0@0dB#^%%jOQ zwQn~rtLpbrtKVfdUyHuy6TM9^<>~q#H+_!tEy+h~6YJ>M>vZ;j`&5 zkD8X@hT2Pt?Ynm+JA0PvCp}>JBVY7Pp0szRf8m0hZ^zudDm~MuISl{OCC=maxL;2! z`JwFbyny3dYQW*w_48h-d;vxeYfphAFW|7pVb=*9I$8U>c+nJ-Wv&09f%_S}d|8I? zSn#Uqbc&7Bw=};de;sBGdcdruhKI5F*|S&^?0Ob2%J86pIj@en4ej9z>-cj$zFyVE zyQ|qJ;Ps0Q!82&!t7;owkHG&Adv5}#S5fBszuh!pU%DYIA#IXQLP7{+B^wFp?sUSw zlduTNB1u?OTp&Sb^koE1z&mab=%53FW;8*?akgusGsEa*oJp9A$_0f^P!th|B#tr8 zh;skW_xaUxPW9RIY}s_N9K^PD<$HutCwfunALmn>FW07n}E z)Az3a=VRKp^px<*6|7gD*E#uRn#;28`jVBx&_|cBY5fJ|6xO|Wc5CS@_}RhF7Jx8wS~VuR?o9sPfK%;wYB(x zqduojdAgA0y_CoYZf-u#W%a(wqyi3|BirO7eF=EeMwNAMcTWbF?;+@2h2vch{9z~X z<{s(4xBCZHZz>o5fYpB_o4?P%I}G^FI|IBY(A<1%0WV)BnD-5UdBMpISW&MmEX?j`rn!6}vlgoqCUDy2DEsZ#COy z6!4~vB^v?SBjsjk~_+JZ~$uIlo z&#f%kjBMBpT=M+V`aqm7JB?qye{KECMOy=hEbn^+&(tZuGCS24@T~5h=e9{!^-n#l z?p7PAPBfk`UHog)Blw}Uzb@*5cS2UK(6}+bi?K`BR^S+0fP;r|KE^=C@9&?zGS7bHh^;85b?Ay=m1tuM2KUrVuCjxztM_Zi5 zBdkCn&q{yhZc2*X0!R5oj*0dv!O2Xml;7W@u%6}j$l+_q6YC9|sJ{_nE%ZNNyK8+m z}RNk6Js&EH~C$H8gl3LX8Qx5&{0wxZ^92G6jc#ir|xb@_*{Ef$&K z-32AIzrn$f=dFREiF%A3iGz`%e7@ipbXK~_(~^Fa=^G{y`#&nZ!I9HhSE_V`9jfxI zD;=6@V62sXNcIj0{^jo-pk*@uEQNi%wJ=^;{=Z7+y^Qc4-$x|gkmn1hEg45}L#O<` zEYdM1$qct+RsUWVF+4ia(H(UW`gx~;c(uLHV^k~|ZasphIXailwzaAgEgE)~;e7e$ z1Z$7E20^F&PPa%@`IWyVmeXcG(Xo&B8iu7dCI5(IE%MNLD}vY^=>+?Qtc zk{@k&_!{!Om!KYFL~Gxw{D|6c)60sjvTcDwp0_??wfbQYQVP1>3y56pH4O$G`*^Q_ z*g&Lc>!8oFJO4R}W1KM^n;1j?+!}8TC{0L54k4ev^$_)x)7z~z<|n!1>^L#OrF?rq zS8a+R=nE`z&{=TsjovBF0A2ly_h!afAO5_xBO}33YO@ZV9&?&S^5@5U6V_H!E9>e{ zHR{B)797p$9cBGbv=%OgaXII&#x{%P% z_a84&mj7>0aL^a}n-$_X(`Y%J_Bq?m%!`r?b(hnrze{W_^Vx~xB*W)=y;pIq=QY)fy|TUjC|~a#T;p{8Q*R7;eFO69jDE7iLBHBGl+yD&t_=fp z?B~6WE6DKF(T9GuNndMRyq!VGo&IF0%jM~x@3vLz@!kR|&PuHj<@43I8>|m3BC=|U zzIdk97*M;A$FAA5A*rPE6}m+p|DvCq z>O0zszNg{KO!_*ax}Hw4{|g<8^55!TK;%1#Z}a?f{Yl-ah5dhM5!;)cqJPoXqkPuH zzbDc0OL>>s@q!Bd1NLUq`;&c5^{}q&U#zM z&iUybnDFntX59x-L-Ku|B)B z?~i@Oe|!h=Vt)tdQqzGv?bG`khzt9?*TDA=My8$XS5)Lz8TAg^{rOJIzubOT+V3j+A&-B2 zL;h|%lCZrh&lieUIaT{8SLvU$71#IJ9QL;K?%RRJd!e24=;!=eZL70CndCVvPB3)N zpIeQiq+e|~3PEAuG(fdP+pSl=MjoJsj(vwY?w!LNCVc*a{UYgd>n zYR;i=xoK`Gm}?<-i|{aSLl3ac4GMU=LwnSQ+i{lt#@GnW=>LBEAq#wq!wnAqQ3ih? zgKssMwJnT(j0O11IJ?q*tf^sKppOGHzNo)8IIOm7ba=JVkcQ{p3|9YY^8EWfe-DS% zW|IA^=L`PROqTl^d_m`0hoyg=!^;0c27k$5)`Kw){aJ!9w&P#ej}=giv0t+vb^?Dr zga0Oj|2BjF&f!Mq|9gY^s^{f)+?4Wx|Ji=j+ZA^Fw*A0>zmvh=&EO{trVm_g$M2_n z;HNYA8HXF4XLFXnC4-;Mcz&4WKbPhI*kIPvEwSTIQ$Fy|QajS# z{)NL$p8qR{8y)_4gPW~)zQ>M7G(c!{c!TZ2Earv^Q&S{sO z;O}SbIk%~Ezt2tg_X*bCwMXZlUN^(no=>}MkIs1$W;*=$qxR^0_FrfEGmf+WrLpsf z_nhd@GM2u#vGdR8%yyn%b~bkY!C%gD_=(dRouB6&r@XDP(DT)gH5U5E|3za_?w>r> z==ShV!!JAcusuFx=aR*}VQdbbuo>B~8J%G>WnpvJklTjr!*eg0^V8cJJKz4JX|D6w z`%4?X_}#|BhV5G$JGB@AJ@Dsxa{X`lqZ3`0=Tm?G%XwZu-yPJ{`Nfmx zd3_H4;vSvvnA73#Qx7(FUiOi8=Q-l^-gTSTdEOS`FKra{K-)$A(587?hyC<{r3b5h zzqYBV^O&dAzH|P$sq?2jCwRSmqb$K*dX~IpQ0D{BD1Ywcy*htjF=}MLK5?(kyKmNaH~)Capw5%tGhO;Wxo79)U0u%e zFD856&8m~@uNu_(wRy_#nzUEvZUt!Orjt|)_1>9KsRl&1#@xK+ak8S+-LML(c zDC^$t-*kixjkQ-grvLZ3og?lT-Ts%iywcJ7=-keEUl`-h@;-CJTz{^2#rP+Se4gLs z{5j9(4(RY_e^-ouuH&HuA2Q(=9V6d;vip1EcYf5ddHyL5H@@|ij@c>yynooyanhVP zkDlzv`+45~^YbDKVsE9*<-zhwCn?L4CYzx+=>>Nwz`X`a8}>gPK~ z9Wqn0mp|X}bi4Z7ufO@Dj$5p+BHPvQLdVNV&&)yWUzXck`jY#|b1`JGIp9Cr^C!LR z&;82%&FkT!11Gu7$2Y#vv4>yHo9+Lu-@z!?-m@ZFYrq9*O*nHL)`atAb5?CKA0YZU z$e$Z%?K*4OS;5X)cH;T0WiQu)YYjMSxmg3w(+;f#XO7O=e=Or$y73MT(y~L4*2FjY zj9zQ$k!R&UYsp{R+W&m5Jntw_g6bp6uh!E*`9Ux3Mk9Ln^dokGa}S5LCBOXbue{(Z z>Db%kTF}kf^&zH_oN;z!hBnko7-Z3D%G=A2w8L=2dC!R>-g0cT78qqm+JPgr*kVUo ziDS8@{=nJ@!+AP%lpSgPL+r?kdCDJR7I3e`J<^f(^RiyX|*HJ8|;6p*)!OV zds*omhnoeX>^RCwZn0yFl}PVwwq7&Bjw7r@?$7wr+aY#5#7Z1($AhiJF?JklB~i{0 zgTN{K2>XpQsLhVVVmb26gz|Z2FwFk52A|_#vq0syxIHaa^5K@>Y$bCKIl@Zjc$AgQ zJ>O_6nQ{&>2z;!SaI_tHuECMA(R-vphuN{sAoLw$&`3M7?-TT4RvNs6&13iuw-PC* z#USuQtwiiT%1S|Qw3UGVV-4bXv}vUL!%PeHc%(s;(`NtCL!6#^JH{aR%Kp>4pGW`7 zkLAA0I#2Wtm(CHS>38t+Rt7D}JA}HM z`o052%`;-4ho`vIr=I3Aw(9)lh^_GPCFQ-GS5KtFuKtcy`>+Ll)E_NDduhZ%pXyKc z$PT_cy|?o!E=Bp^dMB@Me=E!DJ%06PANl$w_-pG=p{FcIbrbnU~}@M(Hdm`!nMR7=D!F5B0!X zQjAP`TZ+2SdBwNp>2=^pbEFVIhmeOc|rbtR>SWv2cZTPqy+iH6@*!T%}Y z(~JiFCkgMg*z<|D;+VD0$ah+gJJBMjtaTRNXjkv9;+f_JiO$+&=*tXmHU9HJ47$L2 z7w;x?ILB`o`4|~Nw%;&$N)81ok1}u99d;3f)^o{lUndW;fmgSEv>hEZ$ zkM;R}Ngv|ZA@H&Gtp7xNejV*I)_Q!aJ!6gb5#H(dCG>$#^9?%omUx#xk>;8h^tlGp zhq{t}+GmL2XBysWjUtw#IJFCg&*wv3rzlC45z=A_))dtM*Gu@jy;cM_@rKRA}cj}iteeQ)p|Snz?)1974`z5dO5Bw1ShO5Ru;qNp3gMA+PKBEs#bo7__5T9>?$N0rO^8@w^{j?W& z=tut6jGz1ElFm6Ke7tZx{v|Sao|J$fUKhALc8*OjgG9KX%_*lp1x2 zX>Vil&PwMO=M(rjwe?2-reCjw|5wAm=+`T7jR#+Jezn>ex1?+Q5{^CZqh748YqqYO`gqt^WPmSs{1NYOC0*aN27frwxi93Jv&OCn zt+jQ&<^+7X&Fs*RKRJF*;$QCk@ALHt(4&1gpM=vN)_MN}f1mfCbzXnqYh3?2f1ZAA zL0{wLfq%yN*Z2xA(ebzLYY(nB`dNui|D%7N3l=O3aT{iOPB>Cv? z=lI?b*V%Pg?-a`3HNJM?F3YoX&c}D!YqjAI`}nADY=i$(!lxU2Z$?MIaL(UH{JB5l z>o*hs2?po-@drHgBQKoxeZ+Py*7*GoN#5=oxHmBS7|*`x{xkk``}p%sk0Uak+?mE3 z;;jRv?;1nAYsvLuk0ij{w#j}RNsZ}e-^DE6wdA|X`S*&T@!k#ZUzFcmE@9r03?5*# zbC>G+>$UozdQ%-Z$_7>vS02wxgof7A#9-d#G53=>+CY9{f4oy_-`wiuXYL!c@Ht?7 z3!dHSr{a97j;PaWdt!6=$#<3W_6&b$&+?ngC5&&uvpfCdzH*@U#QyM;?<(hh=DwBR zT;@9^Yty@0y}!A=yZY_Eufb1j4nO&>a_(pNLwlCrTrOeSFnD%ndor&bs6DYi{N!8G zxu3aj<#(oeKWt;sp24#_{oMaG_-XbPe#SSaX+Pd=hZbW``JHLLsk5o@GkA94XYKWm zx7-~TmjtuE|CEonT<5r!kop^k;+xa>#X7td~-Vd41d7mo6|XrZ^5%W{p6d|1Nmw5nZi%AwbGvYo;1Eei}nl{ z-;gIC`1jeK`8Rsa&BD({JJFffb0pzEKWvWnBtIW-!yo*F7Jddizw5x_Th#W1v4G{j z>IGP{`}EAGjtx!qMmsV-k;}8aL^W(sJ?5qys4`AVMRP{KdwdK7EAN?M!)pF zQhVHl%l%HGSH!_q(d&{S&FF&{Z+r?^Qeg8Vz zKiY)44_M=gzRR4$$mie14w!R}^QLUMraEiyhS zy8An~RQG60=d-m%uX7F3E>k{Fq>Sh@QP0sn(D>Q-TGXvwQ+l0S(4xOXtHRM90{dezuEqCBw{7kHtltI=lt8Fwc2pcAKA9A zom=7uj{MC%2idyvVa~H{>wyK_(#)7E{>?oH*f%7Ob{@fF3pjX|EH3qZ`32li z6Mqh`?k;6lt{7_LlWZVA;Q3ucZ4a%ZTqob(-mt!eqb%}Awy9jcAG=|FtMl{S-GJAv zJ;L^bkv)_Z_5+7)l(o5Mbh3X)!Jo^nTRXI<6Tz|>cx0Q}n(u*^?KPsPH*AZtHf?-E zk-vTG(4xQ5p3yGoiMD_zVDv;;OBT0TT}9mj%O3K>U;5_qW%4VBH>@9H#84_uj z{fIM?f}Vf7lKd)N>uvXf|Eau9_(|;=9=cg%qx)OD$MK(ywO)c zsC=%oqs%(?c_1;9-q#_~(SMdbu{kHc-c|2yAM{hRcZ_Y=?&ClE3-QcI>40Ju82+~y zmHDp{yQ?S#oi*UiDUYYTRXS_PSuaSUoC6&y?Pp#|J1Onm$G$yHB4#Ai)d`6+%4bFQ z5!Nb4Sw3rH4y_HhXVGQ-9bsi3oMb5d&;*D45k`$RW$jf&@G060mXJTwde|6W z2Xw0C?qQ|dn;3Q8f>3*&W_vE2;ZLnB!_t1K7el9gc!GYoulk{{_AVcKxmKRO0KZa{ z&r1Fy-FvOK&+SK^Jz%C4yVOjwoHw|FD4*}v^8MLJjdfkUgWhQxW(Lt@c^*xQ@@E=- zQrfwt)$AB2vePM_Zvh|etA<1vk!A~_e~ig+ccFy!IzxlbO8uh~l`}N@N|b-7)yVK9 zL;Fujydlp!0bvv4!03#Qu2!qz@xCfw^_SDJf2>KzE=VH{rwvGZB;`- zXOEX-Obh8)JEDUWbiS=T%s7-L+5sy|`f=9dC)!i{@C#qYCpzN;I}q{wnncTnCiLUq zR4YH)4Bg0*g3caCCH>ew@+a9E0lr^6(^rj5FiDFJTZ%-2_Ketxy z5d=?^74#A2JzACee*2hRaZdDoQQ+V#pX#j0(>{k;=?gqZ`!!X^hv8=7^kP&w-s+08 ztgK)5PYQW<42Zf6`&eszm~n81Fp5oPc3YP`_0N}|p(zdRGd=}HcQ)}K?QvHo7+<6{ z?yrzE#lOeObcu8xZu%9+vxd>XQ5N$o^)zF6=7^sb2+PZn zMAyzJYq;}>e}u!bd9=gQuU;-#eOCNBSCy~6D){(JmVOpxF`|X<>U-i>KM<_`Dg84t z{#gzy|HLeRP6p4-;EoKQm%(a(wZ$o(FP&Tw!p_q&_;iO=Cue8*=Vb7?8GN3@^5udo ze_@ud8IsDq$n#~-8xucR9&bV0tF8U6^3&J#?oqrG(K~j4H@k}0RrOTy*K0?WzrS*; ze1VsK?0QXn)xIhodaC&Y;lFFS|ERu!>@4fEcl$+GBYR5qNrCrST!HA5N z?~qsqso`S#v1U`~vs|qj;vIupO?bRxQ1dlYwFcH~ivQ1yU*F#mzRvNO|FP>ytIcN1 zc(d@m#BBfhehhCyL}HCk8Nak$%pGU^z0ZDwynKD%~yYalrQ?m+HiwE>NxseasP50`4Zpg^Qey-|3<4t__^*v z7q0IOmH1;m&w~FkU&FuCd*>>{!#~!T;lJ>1Z!hpw?*H9Bzs>2`Bb@eGgt{r{rn>KlRxz@-NoDXLzlF^1yf6PEX+bB>td}HvG%> zv*hO&=hJ^pIQ*PXInMdCKBE)A|9OTpgDdId+};u&>+{NO1^+m|e?$Ku_kWz%pK#7E z-P0j|V4~wsiI4SrYw)p&&fE$4v9*6S`EU67BwXhQ_KF{Ty6F}F3F-VnKm5X{`+Y5V zoL?;lZ?WH1Nk8qgHN%moK7u~UVA1&=$vZqwA$jm_ub=JCFMP7W(69FIZM@yzHKu*; zOzp$@B)s$we3gGi<`J(y@C{xcU-vmb`ht#q!naxZcl#a5vqt}Vl4m}My?0jpyVJk7 zB6~&WD=>Ha{GRp&ZXPC-6rMr~lDj!Z}}F@q3({ zj(*`kF#0!q4f(&C{5O(3b4BQ(pY{qo&JW?pKVrX{eYu41gQ@(Z41U^v->yB+w>SKJ z63+GJ1^<4=59}^xTcR85fa#&*%NV<^u@ZTQ9sb0A97$ia-w*9aJS}4E@qG;Pcpe$w zXIS06pT+K`dW;S@-%A_bh^4PvJ3htn4z}3%aRtmbCE&3)Ml7}|cyrHw7O#`eb!+#x z_~%UL0ba6rRsjbO{9(h$HuQ@hcy+g6;^dLPd|3%^+IV2WvvLJ-d+{$>T*9lnd7dhJ zh{MOX1=g)S%>0!-EzJiM@P_s9E1x)j@DP&^m}dmR)6#rUk-unR2~#J*gD)YwWN`_% zG&dJKQ>Qc+Jj<7r@cgcpf@jI%mV#&9+7e#0@Q{LM`LaU_o(=0uc*){J3!arL4lQ^# zZ7ku{-Gd7ro-dR(^K3$WU}W17){cTV_Z(ip^SkH+>KphQeN64Be9DS^;B{-&F2K=t zz|rm&y({uJ_Z(8dQ>PqK@NC=KQsi&iSi&RQS_+=cJ=9ZEM-b)~zl3-pUna zKgZwb+d16QJlOQhFY002*68zxby}1y_4C7ua!0n6@bYEIs;^F+GPsaMXXshJjORGg z0~~z`ICzM`$N2@kd|8}3LoJ>k`j0B$l`CjF>4bmV*68Qx6uf=wkfKeOFFUd`zTp5I z^#B}wfM+{xZR!upmzD5_^+%fTsvkXD(f9xydU#$FJn%<88&$Fz^2M#^J zOBSpCfj4bDKGi?ZUt|N%Yvy-J58qD@nCCMa)=wz-* zzWBFq9d7ys^UTO1UM{QWL9(Z%c|_4hz)}Ce;V(AC7{xQ6Xm{Xf$Cl>N1w6ltXH04@ zc%tpFIbfbCMO`gfJj#4jJphMaf|bv6t@0c%;i*%`m`>GOOY<13TfytrmO7Cw>us#r zAN4=V`i5Zi1k5w5@R#RW>(%Y!J+|u+qnIg)ID$56>rUuJft1JEx+Pjdi;; z`~9HqUj>uL{qJD_mKy8_&aNLo@DlfHOiv!5GY7caW@w+XBk5rKkxvSFo)s)IDWy3U zSLcb3=;+K>`HV80GD#u7pWW#&_g6a5?|XoQ&W;pitR7qC0d({?`jfg(7$kdb9$W_w zI!}sPiYGAoenU>z_bv`Co;U4p#PLZU{|~kLz;Dui_KW+#u&>4LZ1*noA6Rfi`G=VG z+{-DkE0$8oPcko}PN<#hEA&;?0w1zB#Yp%&Ek*M~|84eG6gzq=Ew;lu91Qw}_AK*8 z+w)pAbiUDea;5sgzeanK!`zy5l>O9tW&Jl=eMcTK1b9ecf1}k%^eK*t`IdAd6Z@wA z(P%X>xHhOB^7u2vG!9L4^7r&ef#jk8fqj8gwnH7!=ULgu?EahkZlz&`FJa$D>@NCa z#_`9A<48MlhCs)EeeWasFHaNYLDXN}_Oo7TEkLqKXl*!vrJygj^8btNCQce=zczagtDg5VI@O1O? z3}yRMLCS+ptMV-N)I{T+G;E3TPqnuh&+r`qU?K`I1)$J>iqYbGCQxQrX*vCN>sw|2 zJ-9a9sb&2Pw(?m|po9fW9Sr-~$b!3ilqN7b{v}E(9iqYaeiN8b)_?<^pBMw^t(vmX~=)Tb|$_p zh<4QIUCLi#Z99)Ud`}bYY+2w?*f+sezg_IlN%anHyBLf1xyT|R6VsT|VYGP_`ejCq zKG$iq>h))&_3H5NilU`U`}92wDLvf|CujQUzn7SGSERglJ67qJ8^;yJKK%GL-?_s- zz9n&`=jclz(O03Pf1$O1(D_~jS2$A8`C3ufU#neiXS-6+-)v=HmGUS#&Xb^DX>W4} zov&R~^|R8T)PHtyu7*5o2}*jGS)dg3qpf!Y{Uq;;z3Erk_Z{BiZ#a{Gsr}U3k>~n& zmAyl~#Ev8=Rr{_o*~L!fedR^Px}zwc?~N?68Nx#2Im4)Lv@0xi44uBrT86NX+OGCr zb|DP<64P~o$&f<-)&9MZu%KqWp|}0-v>x|XiP-d@CHbS{Md?=ae8 z`yvVHBKw6cLBGkrDB@)M_onosykVCZ|;?>(mdT`7;Vp-Nw7((g$eT>0OWctihin^A;M*V3>UY{`vkiYS7Az zk)*Kyea3N(vb+~JCph%8QYNmMkgDY$Z!^ZT3k$in$b-<&uAbC;r0V(2T8y?J+VS!P zNBOI5{=+w0lt$V?y)pD(W~1XC>5CTg>|UU${&r^#I^XJ8o#Y$qeA7dHG3eJ?&ZWf{ zF)p>UK_h(7?=dRvPNHX3$KQKQ_XnIR%c|FhdyINpn*ZNmGnwW}|4gEGXmn8jDP8?D z{txmTz+gU zTb)NbhdV6U5gFW;!L(@T8J)pn9G0xE&w`KfeCZ#b@#`Ft4Vq&Ko}B5KlJTFAqfu1(8t0U+F;Vd48UGcT&a1L~jWOcCI?LBp zM)|rXsw|B^g0IVTmS=iCs@LosB}q?tHpkpddNihs=iM3qjTwAX1~1EC-R((M*ABt& z$#~xDu*&+wEdPBO{CUTt1|fR48F%<*||D{Kbi4-Due$d9;Z9INtG zJow_+pZ==cKzQh@@t~c#)f@TM z<7?#$xhnrac*ym4tjhPt_geD@(pT2+uFtn9r$0T_{3_m`e1ClX@kf4t$Ev<6UX^>j z^eX>A_(0{^=|b}L7Q<|PgizrhtKi?N;IY0d^)Jdf z#ps8p*?{LbU2|A)cCyrZDDfZUIO{)3e3q~00l&qbBEZjFpY-QRKKKLIyrX8TH>6K< z5+sgr`O+WJ<9%hGaG;-g&VKfr1REP@B>{R_QC%t z^Q6^Qc4=M*zQ5Bom%<;}2mk)YFZ?@2T=}Ks@AXFGzTrl@|7K5Q+N;F>+SfI{YH!7wAQ}h>+!(vvuFo6_6qNGoH=h! zXFgoY-&gQ=yT1GEf6$SCzsJ0>_dcs>{G+`}{BiGp!dtvN=HBT4g7ZIK=okK1eqRiI zgZ0f;d&8W0??LwahQ*)IPkWX4^M$E$}jPm{*;Sz zY-XZ!kJe>Bm4B)G%l(b;nQlM$RJ;FfH7V{@OZqT>%8C3;yFYHVdv40h@o|Y?^w}Ph zz`vQUuiO1OtiW${f50#G_PWvI?vy9~`Gq~wH{ahuDd}^4{U!P@b^p5EAN&`7qsxQ8 zE9swLu*#!9zsX}d$iLs|TK`t!w|Ep4`JgW_82s+kew=S5{&>+|ce_36pQ2M9XAyPX zyMKaz!y?l3$Eyr(E9mPz7I(DcoZs5B6#PrhuRTk-2M_#0gP}i?=!*d&hH#2 zQpY*{C5sQX*8bWfa)W=C{QCD13%KE>H8QB`)4G1$`gLG$)D&?vG6D8#CNzxoS67&uN;r|3Od(2 zdd0{*Vv+tVF*c(TQ`>-V4+D_o$U8objyI5bd|n$0uDM z@Modd-?iR9!7p|E3V+6y)3LY2FZJijw85L)|7-mzEA(rVe*A@gt(^<8r+A6q;LmNr zZ?O0^^jQWYe?yXw@-$!S_G_c~(Z^25@^_W%*Z7IQtNi@hT=*lr+n?h>|La6Ye~JH{ z$FzlG&t`wF0scRd{y5)+Zz;~V%}(FqQT~#Dv(=;Q+hXx_>OaccVm-gL_G6oM_NE_c zIR0In+V8nke~S}N|Af9c)hGS4#IN-y-QXW~|FnlY_$LxR!(h?hZso7C>%P8~eQnZ@ zf1Hz>true-_P!&-M%b?Je<3{TU+om3}@h^=G=2Z+iUtM0uiXyrw+xrKvpP zv6OdZ!mSP6{@as0{OAk3*fJ16E{DQT9f|ZC}J< z{W|;V=6l3I(;Cfj#h$~gy^H;K+1Da?fYBbiLNwNYe|!Gym3*^9zkXtKtkbu>jC%PQ z{@@$5@Ht?73!dHSC-aAa+7p|@&)9PqzqDs!>09i}3oT%L%YEKm?YYlu@DrQEPxjT# z`)&AxZ?WfY4&!I=?9TSw_ci#5{oyD3>gImtzQvxq_!%(11<&sEbHCT%CpL$lvF9+p z=slYC#W@-K3_}YT-*TUKSHC6JGtl{IdxsT%#-79BC$t!QVxM7X0pn-z?4mtuuYZrV z|M;H6#PLb}T~}hyVeDt`UHUEWJ<*=ApD;Kye9mF{e5L0D_ifMKWeelKu0HwmDYeIc ze9z&5{KS6xEq2D9!{KM{TkJCoE#Rn|X!E{)Hr4Se>KIt5ub+wF^N`?rwPQX{VBR;7 zpJr>}r}e#F?FlW~5Ly++&)@;xU4F9X@IZcIf3&BaYraQqv}f)cwD2=vd<&l4=_m8Z zf&9eg@H6%t4nM;m@Yr)Whw&|VcBh~0IXsY`HlHc{w6>|Vr}h)ZH)zqG0joX5vpfAX zH(!IF+H+WTYR}!b6I%ENtqMookiR?q zWIP|pPwX%K)IPW2XK&xMFDo?b>+W-E&jQ|E<89+>@>6@xVzZ4Yz1lPU!8d5po&n3x z(&ydfCvon9+7p}0_T1a&@zI{)kJ@nW&hXRP+2N?0-O+C^wFfE@Phc(;ejaOZm;E@B zfEU>ho5N4+&gXs0mmTH)@Lp%^gSl<%@dd2*EPZB=QhbI#_VmnQ`15@~^ZhaNeKP}A zS>@iBvEQZ2)&7{g-^x3b?3D?;xo3>quxQ~4#rujmJatN$kDh#=(14qp;gK)AyV}y+ z>NAcUb1+y<&Q4> z3O(2vd!cUbnOpb*T&s<9{v6)4aduHBD_4{-@7~5fsw-D4u=|&zU3Pxg0;^AzyJT@! z!83KrydryO2f?xT_(jN4m9ByguD16zpvEAxc zI?*36HbmQDTkJEtd|3(OOPrsaw^3FOFIjwswT0{fW=~e^X=^KCd%95AykY&xg98lRJR=|-V84KauKnYkZ1;w}?@f{Cd*1tsZ1nOA(jl++ zR!fei^yV9M#)5obRDBUw%0iy+sPk?qiSi?byxuD%%1N@PUv(ls<^2xtl^*K5|4H8B zU-g{MTbX;hCA_o9yK3Blm-4f11wy;$=sEwm1c!a>Fo+*Y_$gb%z7Bgb6nktQX4Fx& zMrRHB5L?$+ru}Qf6B7FM-XBlBEY3i-p$KVr-zyc1P)WH2@d)ZW-;}sG`zSL2Av&L$C?G4!|a!Pl-2MEgQ0UB z#U@r|;x|2yJ!MHjpI|FM%JYAi=Lel~M_c_&C&LnaV;m~&=dICM>Ag@$u_H73>GvmQ z@4eA_QPIH$!RVk?sf2CXV&@ za^xZXv?0}C$n#!ojA_Jns^@RJQOBisao{`FpHRzx{Nt^fBg_+>fn%+9o9gI5f6QYH zv_wwt|K*t;Z-)DWOZIDpY9iH)w$l$gNrd7j+vUTGfV(C=B5v)EaSm%piwIjVs zdkaLZvZg2WPt4#+4$ICdS^m^4e_969!{Q33_Ll5Po-Z5bI;{K-hxhOi{q^j}iS(}4 zv*TGFcN_?Rt$O~md?6pls$G%)pFMJ3>}vggfBDt&`m?K=U&T3(wVwR7?JFAPR`v8} zr>Q43Tx`E}7Kah4=e@Rut1uL^tz*I|ENFL}Pb|Gzs6dYg~A;FiqZzpMSs>=*t$*N1&2 zE`8u_UjA6$vtyNu6VD&+=dN(cQ(wZr+f#@b^~)<0jaJz@Gv{64SW5~ybJ(cvwef{wkr%ONe zDV*`@W$Opp5A$&^{~7mxhvhw$aONx}|1)W(WSOs$p0!Cv#G4q~W1ePf(0q>wj*NqM z*>A1=xbKd56ZhVEyeameVy~#!Q;Pk$0!B9O+d0PGUGT>~RXGd~co~Nij9l!CwsOTp ziwn$1v5AS6FPQzyVn40b-4o0P<)bs-e=GJXBaRb$bZy!=(fH5E%AHlfvFFzEWfROc z<_1M zr+B&8-DwllF5n(c@VQbp3-JwTcMwrSL_!E9Qz0oBMX=q zQ}7UbTD0(3*RME~;E`>o6gB`8L#6+(?moGI7cK0tx(z$qO^@J}E84Ao1aI4VQsEbI zx9}aCV_#C*E6yF@$VbnT#k0L!VCo1Pl&?BLXW6gXvva52d=x)C>(&ZhxAruP$IWp) z$IZW%{?aCY-?#gy=WKUsB_@3UpjTp=J2A0rx$HOK0o>rN7_j3a(d@D+oR2^I}1ceNX7Ic<==eDt#;prVb6tzO_%(edvV+g0rkQXbrK z?-BODzg9OMaWvNZe*dZ(o86-lo5cp=uSy5oL6MTEziMnw)|d9NC(q~!rvCa-Q!yFF#*^?_|4m3(`ANBuk+x2g`OXy$Jbm+g?R#xBmDs=Wky2)3A z*NRqxJ<1`wlgo#7C8m zw$?bx!6^S=^ZwXG#rLZGlwPr2zJ;X}`uR527MJ*|j;vo@_HKblP{KNzb%%a<*}yn|3(P zY()Pc`w{s*(T+;fd+A4>9R=qH*^V<39QLteW4piIAm0>&EZgrC+bN9aA19mKG>e^3 zBP8T$|1(XxBkiO%$?&La==jHz6J(WU^rB-Qdk&r+WIIkvaM;I=g{Pa3XL$YzUe}Zn z<)3ce&q^}XPE~%MdCxbrNE2O4X+QR{AK@Io@)0lS{rxcLXB!9m4w7h}xrsOYd%KMg z@38kuNQ@8d0G5J&w#lAnJ%faP@<~DG>yt62EU^5OoGLo?!}lqJUNcMQ_Mx+D-ua$; zl9w>g;n2^XYD;a`H(99nSm-a%X}@v4r=W{?o-~!^vme`aBHRD7Jr)IuJoa5?7KRM9 z6MZe{m-voqZ$iY|Ij2**sC0BXG1(Q@yd?=^P<{ zy~$slWYEx<$?swCg?4qjHRTPl<9U7Pw-&pS(GMHzL?+7ekGCFlaj|PzhqacjfKfhA zwvRVD=LS0pTVJs!n3AXeU2GP70FtM2|4!twuT11f&a7})bmh~RBA;CHo_A&NyE9mGJe9S~^9A3W@w_L4-<$FLVV3{C41Rycb4vz)AcJqq;16Z+N{8j+ z?FMt7vyUA=?C>6bpY;*vVOQ~*?b}UK{+$jt)QGLM{Y_4L(2NNNcb!dB`y? zHP{t}FBz}{8~(%HUw+k&{_3mB7v=SrAM`j5#Md94>tOG_!tg|1HTLp**Zs2er?*^x z<%PYa-0x=3v}$=(Jj#t@l|GO?As5H0d=(GAIKEzbmH+kPQEu5U)lW-3^nX3ir=81u zMoX>u(>T(*T|=*R8&ZSK=Nm4xXI4Vr!F_zg7kc5#Yflz9d$^okE1%&DFQ1vSXVBUH zj7$22j}T)2*#qlvk0cSzB4S94h-YTthg-A_oOzUDHPDZAec*>X|B-$!YrZ5pz9WC6 z((f2aJh24k=2vmFMPeP{SHQSk9@-x=ZZ?e0UR@*~4>h~t=DXsQh0qVolS*!|tc@f81p6I&6t{Fx0)Gz$Y%@X993-9l^ z=;$l)RUUz&5ApR-$|sHh9`<1m?G^2TJh<##?lHQOezr%EkYC~Y)_QxC_$sRr>0f2> z!B%_1i$2b=dmR6)&&A>A>zvR}FqpK)_0<}pKML>h`r6OwL|eb-`h>HG+m}7=LLXaG z6MYiOEPc-P^|*b)+2id?9;wN^!lxUI{-<2u_tSkut@iz7A8Sgut_lCK z>le z9w+16cIad5`>D{;Cw!^l<9#;3y~6lJA7wE1jjw&)=&QW_;TL{qAs^@Sp+>`=pmS~_ zf4u8k<@Q|bIOE${9%qGqR-$7MxX!Otrbqjii~e!zwbEyEcdtMCC;Y2ievR8F{5I3S z#_bc1f88DxImP%tW2+ya69)tDPV$`3!l8f0V{uC}I`)ng++- zSxy%|tU^cMvCdDt`6WAxB>z&9C&tlfKkVcDp?*vJ7hb<5{+!3Mz@KyeUwHkN_|H7f zIp65p?de-uCXuJ zP#*Qk`LxFMYdkIS&$+L{(f2)%`=Rf9NuK%yf7<=)@wnnC86EqCb3K0AW1sZb?Ma@w z5%^QdKI#+vX{Yb>`nbu9!m7I=#;i6+J{L;VEpXGvwe(V*l{*LYR@0U{f=mX!L z@N*6RP)5JN;DOS2jUm=N4KjGoB*56r+@B+%A010MVIe&`@GbV~ffg__ z!2{ga&!##iMjZny_4P9me4Z6tuXfD+WL`3mpVr?BKkZ%RUhN4j{DfA8@hy0Er=RTE zGmxLyAMI)9n(y%v?V0-qE&L1^--2g%`pGXd72e*49gztqN|n(uwHeQOD;E>uUVi~8TZH1o4Qro&%_ zA6k2@=@E}$+bi{px16-4=Q`I9{Mg28&7Ng{Q-$Fn|NQ$uQ0TA1AxnP12R`?!x%h}Z zRrs-u*Sk*g1OC`I*R}_L70!7A{)a2~DeS4jIZwdfx^hmzUxjlXV4g+A+`-JR>n=)T zzhLgIlp5=?+M=X$Mc|2^l0D0-H`U?i+JRnH2*-E7O}=hfp5oe4t^l^|x@i0lI_nZy z=S$j^JZn&54eqY!`YtpPv0cma)oPw;^halZg81^_uJpU0|HES09sgBtszueYa)^C0 zXCQIU5is-BfDg!Ep0`APbAnaJgIx>Hv$@B9EzhN~CZDJLu5mZdD&Q0L@T+_drFTz> zy9Awi5!VawC+rVgHRv2ZpTNf_9hE%ug}~YSpY)vleqge;-oy0;-dg*q*U57h(ITz^ zeUS0~(B8Uw)?ntEk-PjoN)crtde;aUPJcbt^NQ}Sj>1YRwwClSIz%d@%`0IO7 zG1f5ug{CohY3G)np7wwnYR@{%cpNY?$j6u+u*P8N2{^{!mgdLX10LD-ZHHqFCO_a9 zk4LsWFt-XbrebG|&A>4RqrVCVe~icG*W7IvUg_g2{8bqK-~paGmbyc>h`aoSFUwNX{y`5f?m1SLGl#(^}dLnyhG5nrIcqi zf4SEVqgikJbfx3zfD&;9Qs^J)SIVFxD~_NKv!@y(T|)CjUC$&>O=_>4G0vfq#T@dy z4-;Pz-W6TnK%S7vH`PHxo-d%sdVk6Hrfa=FPdCH!-gNCXV^2)_p|hT!HT8*JcfkHd z`GG4Z{;QX%Ckg&t&jl!#>j77GQr|VK%4dy0@T3`$=k#5}D*oY472K9!uwAX6!@vKP z^NQE2e|OpG)nrw~{Nibw9|XS5^0s9-^9#PU5cHV8u%pp-TX6t>U?SSV=0o2}t;>Ap z=o<1de*%yB4sVqs51o1AROx7-eC9jfC`%5nPfx9#_Ym*?Hu<$qvbZ$O^;4r_$L zk!OxN)!r`(I`#y9m(d3qeWtycA9O|>-qe5AXyyD+^iyqqr1{~2HedQi4P5>)|FZXl z3_sYUry3;sPknrwn)JhueSvSQ{mh@scNP57SK>eOH4Y0hy6$bu`JL=p;^jS9*u#A9 z=o<4q=HgQg!XD@v4a@l-_Sl!|Y`*u+8vbew(0p*H;qnjMzN2OGj0@j3=w+)P=(_8% z%vVX5+Q}aCL)wozCylq?jp+!^Grf!K$91xtA8Jq5m>+K6y2$5y%mWuKyt;t5Z+%|@ zx3&FI0b7j2;dGB)z#G<2arnZ8Z?$;M>;hi0So+D|+_TX0Z(eqd#pt9{b57|5j(m7p zny={i-0AQ1xy{J7_w<49?S8Ax$KLDt(*K8j;M-SRYvo?%`8f=K=tmE5&w?v_PDoi* zILabF%BsSlpZpw-vdE9JV$MlfRXEBbKgz1Yp`ZL5j-+CI&*x^8RfVH0@}sOO9Qw)6;V6rI^u)c1`pjhSS2+yN=AJo4e)L0l zB0uz$bI29hd{QuT$e3pWFIhaT&^fYgRv$R$0p8rBK1sQoHr9(i9PmSH-)8Z!_jx{W z@Go5~m_8G-RXAkH4_V-lr4NK`6%JYQLl!t>Y15Fc!XZn3$O4BfZ4|OqIAqBWSzu&G zwp~)x&!UAoXVLT6#!J)rTk;?af7A*50mBb``-+k$_@f@+4;X&n;0F%=@E!hu;Rg)s`0+DswtbApbh$U`I7 z2U5^^m+)Q1yUL;k9XZAEl+S!I?s7tYFTWb=>cjtBKk~e5$orI}#=0N;AM((zv9+q# z*^UIHUD0{dZi#=5Z`brPO6V$zx(xet@5CLJuByykxIcl8z3lONP?|YYezZl{$36r{ z8DAvkR;19cC?a=Q;$p7C{4Mmem%tHaoYB`%hdlms=QN6pl;YYS`gv1)j7K8H#eARn zN9b3avb?v-<`Rdlgpz&f0r62-D{Nf z!<*7GZ6)c{^cF97sfXJy^y|)TCZgW{xjg#!wN!mG# zNN|*|ccn{?;g#}vPx;JDeq=?Scb(74INB=myo-EZCO^6&f4;wsTyoex!F5=|f8O=I zFv)OGPb=H^BD-U`B;z=`BF~$=muB+EBsl!P%-$4!bH*{YBG1Z1?mb9YcC15X`Lm2V zDCLc_V?O@SzO$UF=+3d$7wmncdQ)BUx*sHW25q4 zdwgHAj2r5)vEPRD=v`FtaNY!uMjP>{Pm4!SG-P3$^NVMc!{SjN5RckJJgQsqs2;_W z&VJW0In$|oOv$pgKI$h$T0AG6*$$uR|HZE}PGzw!IO?~F z%Re>CKP}5YBg@x$rLxZQ{N2B&Dt+?R-W#JI=J6J4hq%oDsd80+t9bZd%^wKwPww}X zALVd{?dtiRWs^J}@Oh6X2*1nnSU2vN!QiZO4&26q6i*R9c*Ki#+O+~a#$e;{=WQ{j zK4D)+g|7HT&31M@*Kx*G;s`-UUy1MV5q6Q$U$&hekY^0K(teiQKGr!09{N9#=&h!e zwu1hoy(0k~{UyG``}SLmz9Z4ON<-gayIJBt_I4ZoTf>oO4xQ6OpX7J?Os(7ESMVdx zSbe|!EEV#hI(x&`8ipBuzx}ot zJ?c|94ysd~QVxOHI1#WF__T1+BiC;1X-S7II z@pvZo1%9fP%KgCo#!r1lJha4j`h0$k(XkIYbNDA+-*b*rpMm2K`h`DZ{_XH*7|$3# z{VV(jr~bf?HhrS2{zkig?2&%y3;TBXdydbTJ?IO2!O;gk*7ZT(?0C#+ExX_JN$WHb zZ{_?RlsM`8*V&IFi8)A@{fLo9yw%pO^?DvZzw2R-84+*Yu>P+Kcz)M63V7<2M++Ev zp2sWRn#W%6@qER_K2^ZAn)H*uVf~jppIGXK_0p+$igW@;K0K?t|DuS$jBIY#?UDNDhXk(}5?!Vi(XN=FGpO_-CM^aRiuz-ZRO#{MWTG>T%@RAy2At~krzfQE@4A}t|LREt$5B%{==*V(VMj~yI|Jd$=*zV?7z z&@cUDi#ifp>`$J!agYvOi|ZUOUo)qI@C%GWs~Sp8qH`Z8xx^eg3S3{yV$aOS!HSFBF? z+-pU?>O}d>X(M0rQRVC2TzZbncqU}iUhXv2h@>9?B zoc1ig(_xi0FN3=re*N(?+Im;Ve{2 zU-SD_V>B0tPi(2+Kd<2VdMfyJze{{*w#PSyyDI&Hs` z$r|N9>tyIpdc35>6_5H^Mh7hA6~D@H`qGyR{wI9Yy0^e<9{+kU!?FLR4Cnd_eT&^s z6E7lOh5Sz2*@61t{v7!1QgKH@cb?B>FSKXzH}$+z_Uw1Bs7-C4j7trbixX6lr^Tn~1HPTP-ufA@r@+o)G!abcQhlw3LwD#AoCx_u_s7XI?l!Z> zy7@Hbft;!o+$aegyo`+UEIAo)KkgdWY8+C;&FtXM7)G)hFkQ(gA^`!SZMgRGAd2u}o{qOZ}xV(oV zJ?)*M0MNPq!d9LM(ZyjckwMD(RJpNU`p_9jt z@K5n615&EehkI;{)qTT!{==M%H9AqgqG!Whn(}jb%Fn+K4wL4vrT>b4K~bvG$N9QI z*8Uyi_Xo^@m}f`%yqi4I*6oofKbNO`t?PrTq~6}Wo;m-v3`u0?0?8>U0;#iXI&oAZDQo4#=4?hz#(6*>Li!`tQ7VW zTPH$KYOEh8qWuqfV*87WT)q>d6!MDymmCvJ3mhTOs^#k>;{UboO?3M2^}e#X*ediSp4rsC0vE|@VV_&NWrrTxFg3h{6+t5&I{uWWJlXwQ=1*V!Tdqn#@F z)#I$!;Z6{bUZ^1LOvR-?fRb_Q#`sZbOy0ZKQS^mjc{;661X<5ET z8|gnY%Rf8gKPSsq^k4kvXZZ^=evKgFxiHJW$l=!?52ogJ6}KEHKj?AX)AYQacyP$Y z@&7h?#*{n`U&W(ds`&%q{mK3Bnjdz>k+XfEc=cT#Z!<>gx_8;{pDOrIGTg>4Uti|j z27?n11K(lKe8DxVat@~}o>$^=t=MT-VE7q}F16niY5gPmN?h^hD~!IQ_9xDdKJb_A z894GI4Ss7u-&q@;a67m^zc7C2;H*bP|9u6n^_$S2v?wxk^b4mvt>1je=vxw+&2gTIpS(FU*0=%WnI<>41D|3)}J>lLM+F`x1+xj#QP{v5}@ z7ZaWG@vp=cPv4QzDX+wzbjr?*&NZpjztiLOUrlt@FCrf}>tE?>&v`uh1*?x8e!rvo zdco>L>mhS|f9Iz@p=*7p=-a$L@#ibXv(uu-;g9eiIDUZ9Ua;S95*>Slzvy(XdEl=k z`UHa?a{Hv8_7aZ0YOfMkJohWczti3Tht9px3x-o(@C$#@apq>=lm~s1;d#8D^Xapx zeB#NRPl0bUe%2QX|FUUN`+?Jc(8qON_CZ(u2Tpw-QDF!uAlV`FBlzv;3szQ*~E|iw9iA1zvy)On{ec{-tsF(-)TE}BaeRJKX80- z(*K)8XKtG7*ZG7$FBI{4=+p=Ln5{qO@qFl7FZqz;+X{Z+(0BTM-wQ^^AMD@T}2U-~VsH&DU}S+q7C7e*m^KR8fRP0bS>T*MVCp$!14b4&WPx-3fT^pH z4H#MAkOj{9f#V!R)}pCJy#)*p<4HWL2!3<|NBzKGg+n&#D)>V->Ic~>9I{bY$O4CK z)DN;%IAo))kOdCes2^mjaL7hoAq$M`AYY-v9V_oU6U%R^+o6bM^?p_{(c`Z{=l-p_ zhk!Im9y(t`ey7j4k>c9WSm)SaKdu!(<^E~*t5A&6}>{$8+f6hQm z?Vu!2`PyS(m3_l{+xmNEpz1XU+aJs z1E&03p7OO8*MO9GjzEg?wSSxP_+O<@vFPz}zTS7T)g}J+-a~-BNt7jEjYh5acz8Lb0Y<~fE8IU}8b4p=9 zI|#fnGVRFxpA_<1NndgtQM&szV>T|)o3A0UOi_L#Wb^Z0jcMV>bat}dv3pH*lF zlak}Oiu`^y;xVQuHP$C4D9Yc%Mw@-pNL#b>pjK~mj_^OR+d=syRpX;PiLqMLK`ta% zV=LO?Ij-^<<3d(rns^ukBme)-_`d34hS!7YO7VT=pP1!qR8W3;TItkw|F8UxjDKF1 z-<9R->=*yZS^n=L*3UIGkNx5iG59!E=~cWxzR2(I$UNi!#psES>3gx7hw)##vsdf6 zibuWvpO$YGLh{(rr!BT2)b`P|yvHl}PcxiYAF;sTkJzX1_j_zJ(KzfPw*Evh%06i; zWRPbrd8_??Q@g`siNt=uUojjySL2*cEM{fmht9n2R*ywWeuUxBx6~f>SRD4=k#N=` zqd)L?_df7=H(vNht$f9P@9@~@qh{YupBJu7IQ4}-@UVZll@Rul9gHvDl zyN|&+o%((v@lzhL>qm{k7s{(h^s$73Elr2d6} ztLQ(%KkB&p5AxtUeC-l++MoVF`QY?l@R3&j%8cIT{va>?@`qUT-#R~Y`$ya!(a|TI z{<6dGPabuBqBECLf0F&wzxaitAAafsdx-Tu;<4Uu6|q#|j~c$i?>`>(SgPpEUG8xH zQlD`6wKqXd$6nzdb$#4RppWv2&1zm$uC3SjQsUVEYO!tWGj_hC?+%Z>s=kGzpZl;| zJyt9F7{gb({f|07^#M+M!9U9B#C}Cb-%5}DO8#i0-(k4u+S?@jB^Ipyj{T+nkDGql z6aCyPeY}uY{{V-MJohq>6!aZ_|E2OCE9@2iQNtCRe$@Cme~`ysaOxMFYnABVa-2E9 zKxs!7n}%O)8VpDc#Qb=73Xzs+j_ji3%W{} z7&P*+et+B6$(=7hcz}JwkNl)UUs(e3zkmt18-Pg@?&?{V7r+0fzh+NTeA2P<>Jfyu4&HCdkG;6Jin{G$Y0&v zQNZCZv9`80$tvz9m>Bxz9`TbOwgE>zJexMoDB^T2&2#&}#7q}0R6cRlTCLrAa`<+O zv)k%H&(C3aLO*(dBd$kTRXEBbKlE4O&`*92M_J@YSrG@MtSTI3ksoDM;m}Wh4o6w! zM_Ca!q^v3&Wsx6cRpHQ2ehx=j&TTZU z|JXYdFg>a&?^icXl9mMMK*CNo5+DJx?y&w8Hj`rmub zJ@?#u&$(6aty8z?+bCPbQI`BD3y!k%Rg|sbC`*2n1yi=AWn$rLFRU%`eJdTaUqtXw z794#7e_;5*!5{qtfAj$pjO#9p4M2zHL{=&V(Sr}P)|hF1wS6tgdOGD({pi29xA(?z;`E~> z*E0HteK|^M=k;#nvmSV?;)~;`uGej4cd1Tg{mR$2%JyxeyPU1mT4ZrQ+FPs3O?9Vp z|KaQ10{IbR9sT3$?d*>+*f_S)e?}WRBkk`Va3|>fpO(jd%CDgqi`{d9LcV_wh21mw z_27F(a~~J-eLbIFLN31=o6omW#u?TBrR&wS*<FBR_`aXXMj=zIR5+F|=a8tY;sR zm*K>3N{%ScTKR&6W7kS~_J()q^3Q+h{M%r#NJuRuiwJ?d5e z_jg~MPXAQtJKEbfQNFQWogezkV%T+NOPj-Fr}aK!?oo_SlvM8{4ET7zRzEt?{lqVZ;NC1OXtUj86o80Yk}RjoF5;Fy6~Cc!L}oR zpkbFY$nYj6bC)FFX9nItV=mxu`R?srmfzJ}9pLfj1$ z>4sfSE#YZPcxEL$`y|-C$?M%O$)9W3^K*|f9S%(L4@&swC;9FpUiQ!=|F8rvFx-^! z+pP7Kmez4&547KDeZH}?ezP6aK6u%vb}+xw=&N*{ySsD`yEf=6Uv?$mRQy;RcMP2U zIXCwB--%K0uD(B{Pt;RAZ%j_`SNS5}eaP3HH&IL6-)XD2i)-9p_aOHEY0T%Ebey7} z-l~89*!+-JJ(uIq{qq406Njyn-)!qrp1xXnPZ#NBx*n%{1fOPU-y;}8^Yohh z?wNGi{=r5ky{5P(KC3G+`Z3?S{^dG&q(lESO?{`Sj1GIwz};9$?{ED>dTVP>f149e zhuiqKwtLd|E1_$Ul@EFS6|;(dn~Dbg*_=*)kbW_{N%Y^?{pME_`kul^8GU)N4t}!I zzsZ(c`;hPHrIzN}ca#3!$mz%@{a<-{s4(d_^6}e6*yZ13@{xC)@?4+S>>eSdBaif( z+G%emwPAB%-?N4C9#iWv;OjGDh*<|e%GULl+qxy|vXNe|@~m^dKc{2=)bDBJc?>gq z2Gbts-X7NBJ&kQU-S>#$o(}oH(N4L@M;>YPr9Af@Cnt2|MH)Ky1t)7=JIZs9e3Y%5 zyZ-3wd&n#=GE%~{&9WTL*{rZ&;8N+ zt$wE?FVZ~c;ojwBTNhqx<^7(Ubz|>;?{Ct}ZQa)U+taKgdw-Kg{%`Dl{yJON_V!Yr zr=h>bn2VEjai=re9%cN#M-B3zV_(Q0UeIqU)|KI>eb5_3f4{9$L;p?woekE-U4Qgt zj~w2K=p2*o=^-W``qD%`d*&Q(X_3`GC7ro~J$0f#(AU${|C-HJ?2*j)#X2}?+Dm#1 zm3O+gH-1l3&s!Zo6d_`?nGgBnpzTfhnKW}Tf2=9TIymb}={h*HGFJMdT`=_E;Y=-l zXDHeAtR7!Mjk>AV59dm+mpQ@avEcec=d_)y9c-+fv@P1H{cSt76I!$rS{2i_;Q4d5 zlk4Ng+KK+r&TE%0?bOb+ZP22ffoWUt{5jjnyt%P()Xr!R?SvNX3{2aC=g-;B&E7^k(K*`r`0CZ2+8OPkozSA4 zfoWUt{5jj%`)#yS`xq7NoHg_DPVIyiZEMIL?}BMt@O0D8?2n&sH?jLFslCx7oo{&; zi8+@e=622;ab3A$$#D-do{X7veUR%4a|?T=HDt#|7; zVmg$+%edxc+0Fm0cK+^dv=jZKop-Jn-l?5w+n_}|14rM)n0IYwQyuN!PCMb#@!z_B za$mBs@zis-qMdqQrBgehMcbfNG3^YV?#HvKZp!PQj~6M9clJKvjknQG^pEkBuYEhU z+q7-aqMdNw!qn%eQS<C{eW(KcvR?BnS?|I_WU$ zc=MNk+xibHPd9$>ISWf1GRX&DzjW!U_3u8e7V@jOZ_A}7pZpirE;js`hgZ}>J~-rq zLw<@WyWp@TRu|8xqpm8px>gLopM0xJ_XsmM&$r1JYbKrrNr+=#7pH@YA-@|T@)9b_)@T;QKkN3uS7VQUj;$B0P zA8zk$sccZe0HKi}mTPP0O->jM@G*cKPp?=J|~3 zBt6req_aO)Z8Us@m1;12WG(?7)-Abz0Ux8kRy}WBsPo_JkJ`cCGTdnRz69SdJR>{S z=sVL8@xwd7aHHWt2_7Qcu3ESrT%6~F7a7*>yuynUd}+?Zocu2nu9*JJSf7)(J^3G| zw>)u)&7a`8CprGX(Epgeq_M=`x&C6~+3Asyty7-5sK94^$nk&PJg@bxO-uZ5H`a~k z>S-so?lz^wk9_$;%fIx9Pqp6DazTMd%s$`nS#xe^U3Tur3%u>u&NJNJ|BlvAy?kzg zdu;3Yzn*%e^|kuhmJj~WHx?TH#~Yq*{mIYHD)4)DcKoeR{G|2C`Da@Gs7-&@I{UIS zY#sw2bgE-`MqP2HZO-Mv=P#%~QetNqmp&4zotdRBWjx|hlS$RTI8zcQY> zE^a;MR~NLux=F89jKy>JUfBNXrH(&0L-I%VTE$pAa_IT(uYTR}Rzogme`&8?tFVDB z?zp)9rMnzY=zB@~bH_HD&Oe)Rar<-Qnpa^nzdrMl_Lmxa8QyN~CGFXgUaJ_3)r-$= z&o*^@$o&i3vw!Njig7$)@VV`;9@)$A-LIb8{?g)JtLUHBnQoI~u0Nr6#|p<^Z2U-V zR-V6NtB>mX>o$4TOXt@5wm4q$tMkO~_F2E@BJr2_g|%*zQ%_x7JA0wyhhAT-vW|Z{ z;&PRB`>fw{xym}e`=?jwUczm4>Zza5{e#=;@MAu&>$ux0_=+WNtLwJ^qWIlbPr3Pv z;&=O8_RMv)A!;vvH~g6ERrVaiM}PK4m36yaxBX2j>vp@{0XM6x+v>7sZdO^xYnqp< ztlRC;pIxr9ZmZiJa7S(RF^-Y5=;noHZ^-ZeEw|gdfBN~_<8Pj4`RIJ?*5@0hU5ne? zZfS4tJ?fUb7!Tue*rkgM55DpPwHsUfejxkc@wHd3 zUu<@co@VE=CB_I_!hVp6{a{y&BX)%^kdH55!?YJ0e)Wi6s~Ec;=eUnBcK8T>L7#_T z&@TJ}dj^|5%f=WBYz&)ce6e}_i*Yyql3&nv`~rWWPw*G~i~bM)VqDC>WY6?-*fZmc zJwMm0c@=hh!X1mup6MU#8NZ<4@QYX9)hykvuWfheIp!mb5kB&O?k7*V`8nCA?qh{N z^YHVsPsiII@XziG%3ss`qWeOQ%@>3pdi`JB7lh|sw9b7&xPH&i+!utKr~O>MBbyiA z`_x~!F9<*M`Y+rUgfF`1SMCcrHeV2)dg=!E1>uKZ-{8I=JmQ!)+!uuJ{^=X;3&Lmg z$#lOeUl6|c;7s?HvVY-gMmDyYFXY&K!T6gL%jx}a@4-zfD_>Cl{EkgkR`zfFJyh25 z$VYqX{#L$VWqYZt+kc2FBHDO*o7}Jrr`@`^y$@xFJJ@ogV})QLooKkoQa;;1GdUogspdfuNm2+4clg($7W)l$ChHA$A0ir=4!^# z{78Ps_~Li?8a9Bhac!bM@j-k6yER{s{nJ<2Kl3~ozu=n1_=Zn0Uij2Y&-7eHA70gW zar;Y$c8BA^HuaYlQIe zZwwQEiS2r!{I=(J6Thw(!i#s_UHtAN1MVHJx*Q+>#&DH&{KnOLs4iV2tn3~t>-hQ8 z_mbV}dZGLQ_wFUT)%8O7nvr8=NT`22b;uB!Y0wpY*K!K{^1w&Va)mTZP+J$W%el>rY+bo z_cM$a{)_$7Z*dKx-^?#`O`+f79*lm&f3b6HIP9E0!OpqfVS91C!}iRVZQhvR^M>XM z#*4Xv-$Us$)s3Zx=oj8p{kDLQGrx{G^P7Bv&P2eE*O@r@u{yKE${3xAeIKVYzpaPr z%rER=I`dn6SDpFIK2m4)U*Ah-V!`*+nTYUFI`fNrcb)m|yqnJaf}Wx?zm+HJ%x~_A zI`hkWlFt189-%Y8qlfFvHwpL9nP1MFx7Xh;`s3;I4$_)kP{`-EFXi|Rjoh8J`!Dqp zb&Wp!E=FJWNvA#RmQH(zs23(!pETKdf@HGhHeNk3R_C$m31TS6s3*qhJWf3^ROg}U ziD5bqQ%~%w^RDWNkvfl5Pw)$OFZBd5HhZckM(aFEJ;5*QErdw#t{&M<=iSsJQ*@r9 z9+|B3WcA2IohPbC_&qsEJwlx42=xfRtcR;d_Rx6`^~5eZ(-*{Q?4cfjzJn0?Bh(X= z-%*JC$?6g6*+~fbyQ^nL>AbTLdhDqlLhk`W=(nqSiuMf@qFv+EWAwuyA=*D)Jx9L{ z7V>@?BTT;x6A%5cm&#_6HA*sR=M>fDd#@1dQMFfod3P5>S>@Z^O0w?Lq)0Qj-&UQm z-F4b^vE=khtFI>c3WY$Wg-DN5&tV^<)nnLEAN3aJ3F=w0nqJO8fRu&*F!>2;nDts)uVj z4;3Q6RXt6=4ih4OFO|j*C#q+L=sZSR4AgmVX^S6>)TpC>qyFBG-H%A@ezr<5Z_m;h zyXTDEV=ve}_J`eb#_q8f?4C1r&wPvBW9QgCc8uL~PUmg>1iQ!Hv3u+XyXTzRJ@$>= z<6qc4XY3yP#_nh8jNNm_?y+0uYy1g&=e)E2uwVRubE8I#GxiTZ_K!U5ANkln_Kp4H z7uY{~V*j)Q`{(+G{o_yAKmEh{B=ZA%MA46o-E8}7vUto{HjiLOJYndYpRFuMYz(f0BBR`~jlFH&Q)F z`GG>n+eOuL5)F&|7-PviH)gz%Rs z>hU(6cNHSPT|HmZc{d^QYZ`%BIuBRxbH-1&-f+F(`Z7&g4c2+4v>&K*qyFBGpA1j@ z1pCKN81MA@fIZ+R*a?2Z89!m(#7{WmC-?_`g5BUJGjzsJICtkK*du zK0j_Ix%fkG^&kE*!P4#ON$hckdJy}^KRDwbem%l7xK8-jkf*5!vCq-!LF{mAA<|>i zlla?I^&oaUOFf94Z7W22vUvn{#r+}v!LD!2<2#$rk5G@1KT$nK{s1A;v($5xA1H*p zsp>)M9VA5l-s(yG0jTN8?Pb1RXvM;%uvtL?x8}oZ=`w{{~9KQ-|VHHrvG*o zB7cf{oPK1sA|L-~(;2TJe}bgpA7gX>;91FFr6)`KfjV!Zzx4M&qtaMioU3$^IT}9K zm^D1BXU?AVJ#~IjNtf>ic&s}y2hP7ncByJ~{76qW-W0xCf83q@$Qf*p9%4>jw)F3` zZ=3J=0RMBs>-C2`_B$s{`JPsuSY@a46wb?g8hu{2(a#$0R{wi>tRZVSTxr_;GEvz| zL+@c}l3w2RS*YaiwD0npngd+^!#UmMWf^JO*JSjk3Vk6Zo~hF#tWrT{bDe$r2?Jam^I>1X7No#|Vfe0$1d?ML2^ ztYuz)E755Uzu4lZLP;KfEbF45nb{5(v8_f;)D zs6a==NGM*SEsc?YM!Z4ameYyhnI2fr!V5fP@Uqs(56rXjC>xl#f{+s!Ie{r##cA2V z#0-R-z{m-VoGMPs1|}XLN;47++?Xcpk;g+kCj-u+t60AF)8#Nt6XgS#Xp^hbT*a zl%)@&EI7)7qbxc{S@J2X{+*8R5Fdq}fzgw81wZ*w7xqR>8f^qeU0~`$4*1R$9~aN? z=~djf%%%iH^r7s3mp0AhCbwnK4A1I=e^5>kILsa ze8lI#`&M2ioqu9ubnVhIf85wIAD;@ISAThF;n$C^cA1O?7@0mU&JPZm;E)Lpnc$Gg zxP;8W$n^1Ync$EK4w>MP2@aX`L&yw_OmMUv95TTn6C5(Z$Yh?uZpmk!aht!)@}phk zgPDKe58cQIM}EjBA51>iJ8T1;W1d7$@~JEG-FG~nx*{JO{L~fs;K--0$On_Z;IK7? zJ!2=K1NKwJ*cJTffW3u{MLs%2J~;BxA@aeIj}DO!CST8ebxr@K#SmV;oQoizmxe%JM=J2&O|ov@jHZN$B4Q+-sN6=ZnU`?BYUrasfonsWYu@wv>XHE4n zxh7@#ZER)3>HKctw+TncXT5_p4i0`7_o#bYLVwmfSmWSmtV3_oe=kpeu-?J?C>mY-4j-y)M_l6H@k2=3?I6^+_9<22avt0INIzcUV zI`Ua3**&Lb_0D^xpg&JvhU(1GPk&YUd)P{hk@fEY$@e4b_r2qT-lOh4S?WiGBP%Ja zG4M9{cG_!vTOrD$pT|%-75&ok=r=*@4I_2t*j|4r9s8e%b4h2XA9mN@*X)R~WbF((_0P`OO(>2Y^=kQz z?Y-}N`_FR$^{#sjvC|Lx-}^!T@^r53-@}Wq{PK+EB-x@Lp+9>CMQK)>y3+ZQFFO_; zVv={Ic)jf3BRcKODOjKXZ0432s-1>UPOHB*N!^+`$2i=?8L?X`F3vdo$^l>JI!UbqgE=P`nQnub1X{Q zuTL{6tRw30ry29(o@L|MmgA`ZeC-2xUY^Gr`c?XQnw39pEr*FKR1Hwbzl7a*Eyw?b zuZR4_*`?WK34OmD2mLAOevWn<(^LmTr~OZ9AHs!X=-5YpY5QpZMcKuLO~6yF z|2rzr%Ag;!Y;71E^;9Z~+W?6IsaEs(*kXJ{}Z zr*EqBW!VMdh@+`qmH$|Fq00Ngxk~@G#{bEj&QqT7rKtaNnrnv?^nRMD{0RCdvQK88 z%JZ<&gSyZ^rJb(*I8diUD)i50pG)K)(1rf#>@(W`xIC)mKOyO#%_SV9Sv1v;@x4|a zJFzG}Ky$etq5tQ#E`3d&hm|boLcb>aLY{Y+&RQ?GBg!vT4W;};yU@RoeNj7Blt;Dv z=OukU@13nSCw$+x+g)3g&l!QT{5; zp63=G*!jI7J zli4S-2l71TkGR&B^arw4dTPYM{FCaB{L8Z?h5R{LQ~fmMaYXs6v(IM_dX{|w>8u== z^arzVXWy_~=7)`d_bIXdcSx_}@7>4*A!M`W=lR2mYJhpCEsA z_I35%O2}DOr++_ekn+%P*8V$>SWc$#f3IDn{=Z*5KB=7M&kEfS@ zr&IRNceC&5O9TIC9F6sY(fW`2pUCb}@2_%#=%?orLjFpPNO^sln`>Xn|9fLV_ z<);ym`X2WrF)AJX;xdt@|hW+a!3~gl7lCt{cD2LjRo; zJRrdX4ZHjyhP~|2glAZSeWr3A|J~y49iH%vFzmfIGRYs6;L!;llkiVS@+T&El3}mc zXI964Z|XWsOZfes*L7%5@@FJ+W+j;WJpG!n|8o+&zhRd@H^K7~?AJ=?VLpmJKPbU| z58^!Yl|NgaIa_C+r5X(1WBiSV|1K{J4>Q3WU57rU^A0AW!SIfT8x6;MiSP_i{yw^D zJ|lcl&JVsg!IuahB+uh{?D{+({Az-KWw_CJ{yoWmEx{WS{F?;-Ho>nO-o)hmXOjO$ zg7u79hhklH{;vf8KEXab&eLE+<+w4yn;3STH%;<;B)DgSdnLFz!S6Eca(XBEeG
~gkB^0!WKzXbPB@HPqF*09UjKEc`-O^4_2oZx{89-QD^5XHh3Sd3f#WOB^41|9fihZFc<2ch9fw z@~KOV2mEhaJ05i9tlGy1UTpbWo;$NP^R|l&&-lv3+S7N{3w+%~$7j7Xytd%d3oQQw zPwrk@_nGqzFKyhZw(0HX75M6V&NaMx{Fb$Q9y{Cc%3Zdo&3tyD;Y085ReSm;XBGJP zU!G~0_h~QQ^bC7m2wt|M<6pkJvG$9XOFa3GGmQs1i#~Q%fxka_p<(LUq2X-9=y1aK z9FMuaf9>m^I>++CZ!S33@b6C=Qv3YBo>$h`QU)Lt?0=+Bp;kVuN8aX z-IaqrKChLw^Zv;xH_vTFChy5C9O#($a*sW0ZYyKT`&#e$568U6b@1X@0Ws z9q>KZy6-G|=CQ($z~M&^z5a0FN8s?Ib=yBs_z^h#sMoY_6@CN`KU((8-Gv{4!;gMD z;;zDvz~M){-y41e4nKP6^{*6u1P(uMp0l(2&fPz~uka&q z_z`UkKLUpzedgf@3qJyfAJJFgN8s?I-;Q{+@FQ^e5q%zh1P(u9jKYt=;Yam*o+|tZ z9Dc-D58ZQ-`5G9X!tbz+(_V9o&200Y#b$@(V~6E%HQ5Ijrrx-`xf5WF3JKjUXU(f-6!Iv2$ zd>Q|x|M6e^ntc2kUn3u1!yl1@KjKHUi}z0PBW!^8$M91y@3!HC=o~&sTkydne!aix z#(R4B+9*9|jqB7kBX@3#>l8TrYk6&lwzxKd!@uTtY}XdoDRB7L@o)5Ri|Z6P{A<*s zTeZb?3LO5`_WYJ@ah(E(f6edc(-zk$aQN4~2lsA^>l8Tri+6^@zrf*N$G`Eewzy7# z!@npS{sj*IqOR~SaQGLxg@1v=zn(w6Z(Cfaz~NuCG5iZ0{`Kf_{o3L>1rGnBufo5; z;a~S2ylq=tr@-M~^m+IfIQ)w-3jYF!f3-coV_RIOz~Ntvb@&%J{0rN_znI&>_!Pc_ z4)_k&GW5qs@U@ObTeNZg!nWz3ux;9oZDY@1>>0m94t~cq0y)?x_D@;tAD=}Zd=}pU z<2%?k{ex}en_zqsAEY1fL3{*#@Dcoial|k17cl;UPciQJ6n+ZEPw^4#1Rued!T2)s zgY~oK2j&6#Hs%2^@3^{89ip-Gd%SB#&Tl(sc8PC%$?x%&*A7g4>cF9+X#AoLgKFj!q z&w@*zJuvav0}G#h^Xh{Np9PmbJ3sN+`H9aSVm`|~)u=}gv3HX3O~wx2bYDKieA)eL ze&S#A&A;5X4@_+PK(lS^-*lG!yPwW9KXrefY5tB6!V^A7y`>MfnGd?J)y&u22W#eo z?wc}O`6hnHxZ`&|=ghS^$LEc?Hg7Nw(C0A^fSCuFPZ%TS6Xqx|a}?KEY`&a}_OZDL zf2S_|ou6}m=pBpy+w@KB*LjO+!FMU5K31kSu^1nZRzk~^-j$E{!WD=wuK1SDA9|PM zPc8pedWT%rLpy(Oq_cj(S3P$v_lMhG)uWo;xcu(*s>=Ce)75(4e%fQxh)`ARp(|Q(o;18tUvFq5n#P}Ga=HmG!m@U_7)<4wnl_? z?RJgGWSut`B0X6n!@Bk)jSNrac!QlZ?_jeAy{|^7P3OKsq}w!7HJw{EQmkq7CMxOa z8i`iR-`>(SjRfV|G!n!k?5mNW{5~29>KUhzU=5u&(Wq~tMgqNfx4K>Dc8vu3jnPQZ zj@cRs*2iaQBxuhxjR0%ydus$}?-Y#y{la%;Sj!)+5uks@tLMG{Mp}Q)P|wrPBh|z7 z?iXe z?6{_p!%y%c(ybanp5x5bNV)%PCklMq8-2D$%IAl!enh=9HB#+5?<_>RT_ff5$6#rS zzYH;br)Z>T*Zvx*{dC?>Bjx_Gn_7+^?r!a$s1fr18Daf4StI2Bwx{*q-i1Gn%KLk? z^?##eyj}lce#L(ncl?KO$A7RN{0Do-f3Vkd4+884|H1C?AM6VM!LINh><$0HZ}1=N z75~A0xz1p>_z%~Ee$p2|Kx@u;5@+I&IpaU@;XjnafA9;6L;i{(~Q<{zHFqouPm6 zANqT={Dm|A;`8dJ`MCDT$F--~*?t-U=Ifr4j@|96k*Mih(?~F1vWEe7$_^2vr)xy; zkIjV0pQ4e$A17&K@TWdPq$g^Gn1`oogs{^sgh-FqNVVxaLnGC$bBhq^c8wVG@+^%Q z*Nv@&NbjSO^XtJjmcNfi$nD(sI+&>uLQcCz$o+u(0j@(kS-tF}LA^Vve)O225sK@N z`vH6XaD6KM#{GeJ;PF@AvtY7D#;?!3ZB73Sw|?7KGn@O@9=YF!-;B)rdzAHmqsm}~ zah|Lz4|dJWr@elk4|G+-+ zk3)3cNq?NNK+cUC2hR8lXZ!_z{DtydZ;*$-ARm9BKCU;^kH4T7{(_$P3upWV{qYyt z!}W&t;V-lof1&;O3;n_MhBN*`KjAO*8(u>{a=oEniJ_;TiM6NS`MxdVz)m)t*(reW zA(EW&BBGt^%@mEG-=}OUI{w1E$Nfvs+@5+#F80ITE7<9~%+6%FXZr_h1l|6(&i$dE#t;ANpZm);xqWV%`_p#0 z{cfN8)egBG@2K%1CUQWY9+=Yy<@|&5@$i^?#%4PW=r(dpo~Z ztL2(h?(O_eu9n+a`oF8spSxVO{&zb4r}kS_pQ^k+mi|`!Z#Vx><&*hwG(6d;JsI?Y z3s3qU6&GsHgf#u_O8Uo@^sn;tGm^Jne|)!x^7?0K_F(Yz7|q{V!-XdNse{!M83E9jC}rT@pD}z{bo+*`kEiwW23B3d6q8g^F1^^WXzJJIrMJLKlB~)bR_%> zO&{v>s6+UB8b7}3$8Prh!e}q=xRmuXE0G>xdu}j8QvPtIxe8~tCy3KoE8-X+{=-$D z>pNBHCZ*Y9%8wI8r@y#=;&@o?Py3fN^l0zHY8h$n8#w4M(#-!v|I@#ecYe~tERCkn z;fKz3CO>Ta%JCj!?d{zD8?zX1+JCrWsG~jfH|^)3&EB3HZC>~Op+5#E{FEP{`IO^o z>ksH7Elv3`W)IZI7`nXMtb8f|HoLAszfraBq?l-~ha9)%<RSOy*)LajMsYgl7E+~Oe3$^^mRJF6NCS7-GOkQ9BKA^fxlgm3 zuNHm0(v*2Eub=uN9pg=UgQARglGdjr{Ls&_^unS%^^MW^!oObpXC`#){erx_PS)O4 z;^*Gg(;XS(AL*;JpJ()kryo%(es2BYHuH$|`MI^v(}ya(PWN1_uW&ehkdT*uNag+e zvrd0V{QWiJ(D6^F6GK|ozs~AQ)3nd|(Py3RV6u1*s$nPf>QGTM)x3=_CYMGaZf3n8I(<5|mOMOr2 zUh-6vze8T$(;azxp&x2=udhtwVP1Zs(Ra?vuQPca)?V7PPIs4AXRp|O(V?m@=qHFD zds>%||BKe2q)!$9o5grX8hfPw*C~E^r`(=NZ_pcXq(3TrXhHAD1`2!q$lH+UGv3nk zjUWA>ci4Lk&VQ2C@AZZLW%*xQdp6kpp7SHG!|nq~zb1XqKgP$?8|;1%I{HFCP4$nl z{&D+XulA*B_rIz?QT`N_|GmZH<6p1k{a3g4(!Y#H=u3LM(jE5R4daFW&<`_y+INzr z*<%X*I`TC7kGC}A_iMZFr9ADSJbg_%>SIr&@k)1?{9oI9HYq*q$MxA@?`)RzSL{BW z>wyltKR93VB7L)ddabIY{rUj^7{33};MWKCm>Q<^V6$JXcq!eaJ*8s4kMscjlHu6A zf$JaiQF+?S$MqC`?GP$1=4Q?Qx%>h8g~P%1Y>a(>m+>O~W}c?Kq?zBjzInVeyIbvM z{HzD)jn;-J@BE~P8GS}hr#yRHv2Nh)@ja)?_OjfAdxn~ygrG)K~HMS@}%-Tb& zeNSsY{WZw!HPR!LW?iJG+ROC^I=}y#jo<61y`CPX@A{XevlmrgnO>LA4?*|&k@=1JdrpIYe?8LcH5+d) z%52FG`cS2j*Wcv({0yD>k@CCdbmnX3UtQzGKca#3oQ9Z>%QWLRGokO6^D}?KKfFkv zYH9e9x2OCC`tG7rp81#bFyr_6lJ+w{xW7R6`++p=^0?mOpKt1&ROZ7Gk_3N;?ps`c z{B@3cIqJtBNgplxc=6-Ea~gha@0p<=^8@wy{1EAC`3`$84u0kb6kx|M|yx(I-Jh@0e!Tk7t4PqTKzsBES4wWA94Rnx~HYNH^@{n z=pXD<-uoB&Gg+hfpR@G}^rb&;R)4%t{H{O#xFPok+C%!4{Q6D$A@Qf}J=D^&75YU=r|oAxh%|c&hP{cYfppnkmw&O9f6?p#dT*uChw%;mA83!lNbi}` z@mJ>ebFI8M#ZUkH9+~WM_)x|khhATq_V=;QZ2Xnl1HF$5o|cv6nGb%Dr*~{@(b^_- z%0HGNA9e&#;lGx}SmKlbG* z_fTBYX%9tcvH#f}E5>xe?1dIQfy@2Rmb6uI$^#xUc#6pcpLoKAE|@*lf(Lx!2@49I z7uHVef>R#wg2Rq#`||!Dv;FFZ3_hX@PI&^ao&7%BKM(#YPI&^eN0GPX2-~YK#VJqV zjzzu~9rCL<GN&xI{2$Nf18e^4YTr9oWyw_p(}IICLN%OugXHA^I5|QXD+!P?nw2 z1&0psgbs{L=l~8K0;2;sbO1AU=upMc4`taY#^Y^q96G=gI9|qb_jN6_~n$ zpSr3zl^+<}j=BO<7dYwyM_qxbEBL9aic|T4%RNDtB>RIpPI&^yzJR4Ib>6cOd+@Ql zEU^LSAs?TG$NSuQ0!M!EcwaeBV0gg6<85@F!0>>Br`#jZuUWC5ANn}<>qz9IPvn=_ z>y3PL2!85{{J^@U(_QT*x&!i~x0PzxjoP7--_;g;PDGSIQX?x z>i;dREbL=B`d4QK$q(8`uO3wHFrn1uwpIv7(0RVk{dOEKy`1F-ID@19c%Bt-n4uV*RJ&lWB)_oMa(PH{@f6g9y9;u0REMOqO=;;4< z7WrUV*8Xb!ll3&`8{+a~uJmU$s4U;6r!g~}X#WT1IQoych$zj9epNp47Q|FcGA^DR zY$bc#rqF+1MHjFSpC9P&783n8Q>$&?)IKwQ43d7VrkDD$hh9*L{uyZ0vVYmZ&-YDm zLe>8ERu9(nL~4dfVWnd``NI~4ep9r^&Np+J?4QG07e}=J5d9KopFTg(-)jr~57g7O zzt=t@e(WdxcQF|B1GHKmRCX7v>c{?ntoOtbZHfBXfsnnq4lpS^xfmde+^o?54(%Wm z`p?Rm>VtAYQ9j+H5AEX!{n9=9x}&Fi^mRu+QNNKtnD0!}9sNVv8{#ARzAN3)Pth94 zX||#-%{04K^*cjP&(4ZWok!+4+Q$xSXX_XGdA90DTre@jdlmh|4s-td-3wOBpJ#jE zIjyPQRsQ+f1MNa5+kan6F71OI(AbAcVlTj`|B7S}AsDLVKcU^dzi707)N7WgPk?$&+BLY zWe2g_$k4H`{+jCgrz84@J;ZMJESm+J>YfPt3ftq$^LEv#sjh!Ig3biVZ6=(kG4yFE*DU{ifgj)T67^ba~M;Mpuk&}XUszxOQtpO@b$ zl=LrahqG_w^qE;x-JkW8^pR?R(1~K+Hs=lbU)3IFA%C{Y?^mI-cPYE19-iGN%3%Es z)r?A{p!*klltS_2pyFB(@{iCR$I61Ex5n^5V};K6-6vT*54EEnvwNw3PSL5+VEUi( zk>4Z1y%Owe1BVKE<%} zpPuBOk>E2E?AKZ6_iLu>e_q1#al_s}7bN)?Cb*v9ixPZsf-gz%q69Ba@TCd9EWv&~ zblonueAoFC3C|}DyPluU^I7BSSj6vfU-KMr@BFqCPdL@q`cfP`KRNd#;~%*A)b_o% z`IzCGER(zK&q`xv-zr_zJNVuzKj_4M`8%7$x$A+7e(7oVWu5=3;A4qfhXRJRQ$iS#dak-{ko-)<}00F}oW?g}!f5-t`N8&=_K=if>4e2t74xPDgN?~}bg^h2M18n5V2%8$y^w2%9&e(G=PXFSGReZ;_} z`Y_(e-;l2fm2}r9(j9rs2l{w6cC3uA==sq3jQm_=>2WQ*XcKk?)pTU^7#Hzi`jB|52fk9{u;}$ zw@72Z^w&{2oiyW-rneUDS^eoZfcf8+!jz9R`gt0ET4(DhM<(=;x2=9J?xdJUeyc$L zbuMo!VeBdNL!UJ5<(-awZ*TnJ-$c$J5Bv1_1bv=O(vsVW9`ewK7)*W_Q67De@4s)J zQm)T`Uz0rM6Vk-k`FuzHo_7B&)96o(Aod$Ed7kcPY5%QI(&r%A<|~(n{+?#OSeLH> zm-5jcI`bjp>A$;(nL9x8J1oX9mFN1nf0p_%-{P-X!$8&E&tlThw?k_@j7M3Yk8j9d zXX`9SicWupyhtNYHl+R>p=cwg4^jFk@#`>t`pfO}W!2~YahuWIUud7F-Ts-Y{JW^o zn=PhqspR7?lt({L->7u6JyE$Wp}Rcz*BC#)S$|Z}n=OVA{jfjUl-Cl@cbox-0 z4}RJ^AWw%qpbvEHYrT3&`Nkh~U@Cq~eJJEO1L-?QS!eke~&k=t9D z4tv8MVm#oF^k50{H1@Y4e`ljC@AgK_Qa_8Ss^$DqANpoV3{zV{N8Y;p8A-&ndH)eZ zg?&W~mZy>LF-s}kV}8r>p%2#!V!CEqeI?!XA$@@89Tr22Jlc!=19Sa!vildls|!8S z-d~Z9>#N655i5Ux^4J>2AxW4wx3vlmoxBfVD9pbn4BK_%EX%Q2q?;=)W z!piuDEc;>+>kyb&2g=9yF~JcBhO8@hFZ{p1@@c z%3Vo3isO_AOrLv9z@-HyR^W~m59VKDl=3H#%YDz|*(o8%5d2S6|-+ z6C3gBFP9bdp1ttqoaZw2$?b-TlQ{8&6$KA^ModZI(35;HdV)jG7#H+RaqysLlts@f z4n4^Sqo?z@p5V|kc+kz`A-q4qp=V(91c#nrYyds0IQlcnqGuI{p5%v~&f|K5L(kwr zPmjrPJ;9-8VDtoso?(aRnd0D~Kcg&qR&nS_e(32ut|vJ33?B6KxDeM99C`*uPjKiN z_K%(^4j%N3vgldGp(pvFr}Ma;;LtO8URe8Z;R_AfLtQYw7CeE&CgHE*lqWD_hn>J* z#VJqV7$f+rIOPc(eFc9Nr#xWBCF0luquYHezgx_)f#IJu^UJv}U&da%hKcX#+v3>c z0v$8HTo;&6z?60W^0MG43y!kjC>xlvZu4Fi9A&{#793>*Q`YU!%YvgUILd;fY+%Z| zZFpI5lm$mwaFk7P#C6fPRUG`}gNF=`d6I9-`g~4Z@8ktXm_kJ@U)jk814I|L?I`?193* zC&WbdC?io3B6KcJ>t5z}CZ^e%ubz+Y=pf~A{xTMj#b0$W~OYcKgyT-5u4Pi zl{WTv@zShPl(ADD`$Y*I^(bBH=idjNr{{&Sdbo`k`xW|m>=K3j*g8Lle*S$=|K+1Q z=X!i$HTsXpxOrJEkFcV&?$-4S7CQY$TvEHvcGRPEsUML+N9b328Gpno!uCb^^y{I> z@HLULynp%gP)It^&sQNrKO&os)bF!{?5z+=vnsGdA)nZ#;&(++x|Dx{-mD|~hZrG0 z2I=JcFVMd7>z+>a-^^wCH1^2#qrB6xzvCqNgL=E}XnTT6>B0INSm>90ebmO+OPBIb z))%jcKH{MDaWn`ZpRaEceZ9IFoD>$0!_(|EneEss$B05EVQs1)^ z{dS9MvMifNVwMT{wbrR6APmg^nN4Tk8Q*KGW z(Y_yeljXH`V;^6#*rH`dpVkfiX8V5NEk>W%4gE{%|8n$3cZuD)OZN8#EA3wguH`t| zccbj%_B=0>1rfW!5%jx~*sJNvXHAnM=(j5JthC+T{cG&< zpZ<;b73QkItm6ds>!p`vJv{Qc3I^UX!G3je$y&$JK}%v@cR4;sI}fvM@c7*5`Gb>u z)@7qE)->HRvb--`zF)z;tY7avf28qyz4%v@EoTAt(JS+Pe7x*b%lESQUX*P!>^$vB z{_G@wAK{46IXLH`j}OavzzYm}e8zhcd_;oZo8Y4pd~AY`OYr**dtAr|lKc}B{K16h z&!HW$yX8ewh7#DEFzVJIb#liD;7u{?8#KH9b_xl}R`Ii?5v#HwmhvHJOX5wPF zcBJt;Z@1jr<@>Ar?&E@@|KI6&oB!^(RLAL^PDgt;CO7!vT;-4aIB$#|eARQc+@G4R z%73eLwH}*>@aNL-`@8@CoRc)qNz&)8ejS5e zv*)OB5BQpRuP*q@xD~$#A+F&9J$Fv`W?RUwqhhZ;?zc&Medsqu>E^sC{L*uJ+%x`K z&#qJc*Yfn9c?tA`9{1SFPTK3w&CB+daXDUpnf7Zq>4m1h-*Hpk+aLXde#rCt0-mea zjDKX&g5{R>{v~r?OHXf6)HrMSJIp!_yr_57EE0m-{~GI@I0{ z+v_IM#3?Y|2O60tef@2(4Not#`q9VJpSLu&cAfD%ox38x2levsd-^$(x0&cK8b9=A z`-Pd-Px~)4I?v2~FOgpq>1JCQfv)>KqxTl3JkRBV-_yrS{yJNOc|M`{G5&@6@9k%A zi|f>%L<$j?Lj94BxD-z>Q-6CL$%{EZ=^-lV^yjR+w-}5uJxzJvyCkKn9Xgm#F0k@ZAO05gK_|UlZSdceJm+`%_)2-k2Yv8A%JVyw z^7sekxj(-!?+^6BAAJ1QiQnzxcB8w!_;}NQKK}iLUM%R%_8j~=)d!vO@Oyfh(jJ#_ zdqUs7Qos9yj}Q7#{zcyw7#i z=kmNh%GXT3mnS{l(v$M?j3?z=ElvGi-ua0ua{H+j^({31X*s`6x;}Q;-dE@!>8L-_ zF0XT3#9WIDST1=TnseN~8IRZt=|agPO@9+-Ewv?4*z}?PfucVze(Z(xAf-2U%+y6R_PSyI z@0k}kR_A}!A7|#duj%gr{qc;X-0P-S`??QzM=XQh zXK%0Klm~ppl2?l7W_PYw*9G$oEqK7M{_-~k&q*izybDfwz;~|rUGYrviPf)n!6{GR zcqR#d6{kFbd7k6#dcAl)Nm=q!p1|=;5}qnfc>>2XN%*Tc8%6(sBd(z#b4=Ommj0}GJ{g#2#SPi3mJhySiDUM8xO2sCET8Ab zH%jIlts6bBD_Mp<;L;?R@)(9?NbPjKiNJm|?d!XG&F z^zrrn1c#nrx9v9ydqC&lLC+|Qo>d%rk{^0HkLw8zJ%b0`{28X}2@X92)1TnbGi(pt zQXD+!8D-J4ibGHGLr>>%J;9-8@SvwZQ*}MTp=V(91c#ns^XQr4;6cwQi=I^+dXgV{ zI*;oK4n2cs*32G-Uo1Fm(=Hfa3!cDXlkit@$`hEe!%pC@;*=+Fj1l}*obm*YzJkAs zQywtm67zgubQ?Fer{$*@e&+m`XHGidnF7E1OULx*6-%D8eCC07AGWr@FRpdWSiHFQ zUyHJVv4@Z!IQ)^i0#jG`EOmjSuE5k4{K&83RDR&_De4MLUEpXJIO+;aUBORXRh-HX z9DYGvfvGEehjxLZuE5k4{M1#&sr%c!N<;d0!Kb^8DQ^o=LsD7!Q*}9Jb~c>2amVWc>==&hNrxi*}g#e zHMhjU6ME7QRUAB_Cp=XgJfSB%RUAB_Cp=XQ5Bk&3#FfAkxNpmb+y_gajhGj74*tOK zM_a=0f*<{ZKQR2!F8BjSp9eqf0>d9|4EqoHv@7@n!yoMp8-`!E%vz7(4%m;s#>;p= z@Z*Vfpufh;{54+YJ#G^A-=D?eH6AbV*La!#x8r5lg=cXxzW!Xi9ABbcE>pzG6^d)& z*h7CK^dz0}XMNy`B%YCcuChEUF z*{i3i-Zfr^op^k0T?KVi<+BUVO-Av56LK8&`(8Tim~(?sSSy>TsF|q$)?}}qrh3FC zl>N^>Jhxa$|5uft?zIDlKMN_#->$u~?y#7b^s`g+K>IRET@*` zAI=`hzMInz?1uim?9uEWbNZp(&>zcIXOHLf!@HqBkv*AxKc^qv4gDVVpshTMXL{Ck zFQXr-e}hgB^W23a+V=ys??KO!^clsjbS3@4?CG4Y_ID}&RQ3bWe`p+y_5F38W0>-c z?>Dsv-Wto{dy`G|19BYlpA$#W*-Po*3jG=N@56asR-akKUPk$6M13}=tN*){U!yN_ zJgaqmj>h^y`tKTqe&5ngOaEllOsmsP^+R$T@_!`z3OZjTTu`Auukrm}o|n~UN6}rahsK z%z1;BI?UIUH0Fl{ExGri2g6e(O5r5 zXV)O~%ZuvN=sd}P>@)JY)&*w$KJdE|+&jUWCz$7l!Qa=gOV)b64m9~|yc@FteT;?E zCt&xbcPie^Wgc(xy{;1td;UoY{$PSnPWV5XA6A@TU^|=>&f! z!G8bcaz2;je?Gxi8+M)je$4s5nD8u3@U;oPE-CvrN&XE9zA?c!CHPB*z22LX{96)y zYl3e}@N&am_Vy%yMS|~0@SO?%is8nLb?k^41V=0(>)0s{p1uC#_eEUcSB`JAvVV#D zYi+9by)$uz-S4aPSNRby_^0*H|NXea?)BS5_L0VuzSC*0=ESXbwUh4k3H~_$Z!K5t z=VpX1@&IKWwPQG5LNW#3c?@ zoYw~Ze&Zm{(&-+@;%Qw!^KS+c2j%qmt)xO0w;A#_L{ppXL^ymG7@K@a`uU()+H zxuEZ>^e*~~{z6_&~zL!oxPj&Vbjm$Bk#i&ceY6NdE8%0r~Q$RxI^dn z@>@wh_35zw#@_ut+2h*i|436m?eX-FrH}6q9@98^@-Xz-H34JqR zzt8hHQrhzyqm%Zy)0B?9SB$>ivx&Oq4u`4-L0!VuJ5htuS~r|94PWVeW%9L z<4RMy%Xj{WGriSTTkf>-{KmP_^8O7z=;#}9ras=K zy+<1Vpufv>hw1O>yVQP`hw1HS?<+ev;K1bAszm+pD_I$ zbo4LNzJDL-;GZMx_T~D!zEPjcclsjrkH^t|LHZz{_934%@<<?U~S%c3%q>onIXUw0G_VFN& zmH7^P8-rv^!yo%OIY0BkXrmKn>GbhMdJmIN`#cVG7p2!_6LLE98THdX=*(xN7gXr) zwlw>zc^oL?;c>d24*AUA?7vmZ`5BK=K5@NVk2ctTQC^?ZSuH|d$ai^V{~jjlE=EUR zZ-1m||0tvLjZvqMQ@SR89aca6U8ci-p|6)bpKo3{Ds(jMn~ zcS7G@{K&`u7%#V{GOc{0<1f&W2S4LQdaUR#TiWT{B>Z6?HPyGR=6~9c{0}E-$(4NQ zi$r(%PWSY71s(hF{RD4ReK9_vFKNbSruc7^yr83RnfCqFNaG*q_a5;xp899^KW^{D zxq8~|y-d6PlySs9-t4F5al^+TE{|jFF3y-|4<4tyhvH(hhWF-aovi+lhyM@|oTPUy=tmoUYOW9CkNi?! z(!M_-^<&S_Ltp%dbeqcWQqViHNlJeq?|=G({$_lXZE?W#x7+J_l@EJ|j{SSw`Q4I7 zI^vW){bNfHkf2uzdb90Yk;+H^TaA9F_&u%}I{rZahy9R_xak|kAM}B_{`d#_qc7z> z?fvtz_&x1$%_$xEFX#No-%;|AkNwhLvvc`jU+7DJh5a6G^wR#2_XU*?{-bkwkv>Z4 zjU97!(;IQs+@JK!3sBc{`s2)X|2F-7U4O*bL|pY9D~5N9tA-ZwcH_ow*98-A7d(L@ zmKs@AobrJCw(L;EEDjmGeHTm&U+@Hum__)jIOPdU91nHDU&Sd;;D}j-zlu|yz!9?u ze-)=ZVEQED5d#xjcH#+xi@0ZfXU;HjrQnEr);=JeFmm7-H+F}jY+zy*Pds7gq%OzA z%)PL7kmVC27{?K z(Y{f+-C_@M-7InNgr4wJaqxtm@KkZ|gr4wJaqxtm@KiB8=pXUQ@C4R(f0MSj&l39! zKROdD41Zww%eJ`R1wZ-+e_;5_cDe5aKWz#A!0?xCbo&o}+7#nm8A4in;@4V*n3u;N{ z8?b!mb*SmU>M6f*%Dnnr?4rf%uibPr7cN(-T`{&eBKlUIjzZ6UVbuRBa z4ay8T>On2#v)3T|8Mc}ZTZ?Hcy}MrS73kj~WtA?D9Sp?y_+EoS>-wEo_6lUbK|j#1 zb9vuuFqdCYOZ{f)7b0I;ovS_jd?&zd^=@^!SD^1C=&KA~$3Q!Ue%0@gI<@S-uHQlJ zT%J7y=UY^v#MU!es~;i1{EiS6}i0F3Hp!Eg#3-gKI@%qML%C)W%aW@YpUy? zj*#!)5xr88$sQ2{jrS!&el@l^o}WQS|0T8?-(?iDeE^&4pi;hnCzNl2va0R}GfK#> z#xAoS$`SHEqjF!=Zhsumn(F$e13L4ke+QIrecq&$AM6Vn@~g4QtXFb`{A*S2OZgXP zpf%O?Pe;i2*yCF*ud$AWH|ejW6FK~4GIX@-uc@woIzqn39(&$CIyKexPe;&+EdHuz zS=?z;-4j9g*kaE+Sf{4C{^hjl}LSo(bl&Nija)*Ps%={Jdx3H zr3?DwD*a^6!L#cFD*8Po`?w#09QD@Xo2ya&Z?!wa_noRMb=TPBr&Rg}IbHUpuX6hl z<)2pUeUv9Mx=Q!hZReP;qK8!UTO<4Yb}lok*A!jcS^nKx;rwBqH#O@To4iJ)pULU6 zZ(AEB8Tvgd|BUiPgR*wY5p<8;b`I)(PengtwttOX{$rmJliMS~y%PMc1pA$%%h^21 z-_kG|#r>J{Y-Kr)`x*8cw@dQNyA`eWB>7zFL$`s3z3eWAUFI;uUawylJ>O$09FIuK zj!epqPRjcIsq>FZcqSxe{W*&B?46XICLDWKGC!j;ed%{(9%Jh<8J_R<@0j^G_zy`i zb`be)PtNaS?=pQI-s3}$PWX>C>^$!`>^vVxcuq`sK9unIU5?lF(S+w?3D4<+I>FZ@_zMaCqG2z4ZIXXog0D~T-z4}3!(R5LB>zhZ zUY6jS6MTzd_V*lYv9$i3+rdQ~F6*!nhYOB4+}~Ys^$OG^v3FcD|`6gUas1&(GUMq z=RdaozjS_^el=wgKYO5_zejq#@@}uB*HqH}{X0tdzJLDxJ5NXaqsu$r;`++RF;=kr90wUr+J*{h2{(an%?(rC;XX!V2)-c-y60hXt{az>H=OVt#>mz>G<2{IH zW1m!yzeL1qCNJVWJWV{T--8jqMtvLXd!X=dP~Ft;@<`8Bd$NWZ5OoCI^)2J;W*Qa! zy?m^kWx9{2{q*Ot#zT6Y?Q7}jE3Lnf=l36^J>C?0^e6YBPWSTY$NfZq$)~?JGx|dP zzf$u3`>u-=e@B}5NNjbH;*)~jB*fw0o2>Syw||z=8PAU5yDHwl9^W=g@;zO~8#8|N zSDQ(P&i5=`-c`oW_ftLI(f4U}`=b5F7V;v#nem@x<@c97zked0Dr>-A%k;X8{*5&K zfxY@Y6Y-|LPoSqCkbeGs-ZiG9$FB}e3vzC5B?eTb_@8)U7XOI|EI`TdJfcmSy?L+!q8$ZhXzOcyepUZc9 zApM~AFTb6yq#CzVNGV4s9+iRrp2l|us2JD;hMP8b27j0ES zuL-B+(a+QLe}~2H!2g#y_Wuwo3X@A9QT-7NtW!`ZLndT|RXBtHYi~+$;W6 zKIxFRPcGl-8|+&cx2S(ZzRM&1fcmS$o-f=hI_0rHZ-1GdYx2spub1F&KL0M4zL|}m z$M^Ys%XoO&=i4&v^DXHM6i?>$QJys8w-=Hv-fEW753+Pw9{r&+zY#w=xk5*O=q`U< z9`9P}e?Y z?bLqSLpcv|w( zwA*V*cYF2t!ZNk~C{;PUm~mzE3jc;g9|<)80Rx=6lB;KYB~S z@BQ;Yk@kIlp|6vD)4#0W-K%suexzeO7Kpwoq0{~{?eXxWga1(RZ|wN~s4~8k-&#HM z0w?JFJNW$`d$Z z%;2x$lm|?|5r0DbPhjG~1`nQ;$D$A;>X?|TabqXv{Fmulx>E~$-%7_Ght^t@y>F#s zCJLpR1W#i6Ii-ngFN(9`){&%o#z{ODQ5p(pvFCm6dz&nk}oBtLW`wkO4* zr^o!bp5V~a`CZSz=o$RzS;e6z`JrdnFnXpqc<4`X=tfLYibGG2HF7<{p{Mh^o`KOb z_|db9Lr?NU&+r}eOmXm_Cz!J9e_1PRILo?Xd@Xnahb_Th#VJqV7*qJGIOPc(eG7jT zr#yk9jqq1-$^$-o;r=!c69dM4&HS8VpG(^;KgE-iFy26I33mkO?rY>;Q<@{b( zVCo8f>Z)Sux^HD$e!VDh)Ww_+rY>;Q<<};!D=>8hKXp|xb(Pnz&at56`}lf3n3zoR zeJng59QodFo)3gf$;Wrl=j??`)Ly^dEjX;i#6!k4)MF!SrcdyrPwzI!K^>U^l_fHYpsx(??|aTY_f|hi2s-o1{QsZ1{du}hRh>Fjb*k!D zRp-{dH}px}gGOf1$gHJ9X6Qf0QOFFPBQt1Z293;G8kw=K1D~Uf;_NQ^iSVG|r@j#$ zG~tvv!h<&ap|sUwV^6P7x9F) z*B6)e%+JcUsVX49BEEwxeVy#9NIO3_*jcAMyXIdF+FAN;vJCXF-QmvD@24}E2jnLr zc9uTQ^$sZBFu@nR_ptJ__vxjxl6~^HhAQ>(E6RV6&KM5LPY>^iyaik73n#H$JtuH z$iI`3QGU+k`q|ydIgg*Ljr4wQ*W((Lx^vDI={dn@-oLPY{x0J=Q~O?>e&yPkd_Onq zr&8bF3R4YeL!|*yQ%}_)K{S+{{6)lxc%$l1Blc`Jou4*gWFR!R25vLm(5A% zX3Oi~oQ(9mQFx8LIrvJ8VWb_RQAd0m{W!7fF&4eUxnDnb>v86*l`aNB1Hb2=w0^~>HS=8$uKx4Lq2a5-dIMP-5GDh`!}k2bMOY^ zI!gbK6sAP}ocQ$^i{2rA=={VQ`GXI?&0f*TRln-1rxhp@<^PZD zcg4Bh`s$J$-bwm<*|Hxg(x0xAseVOz-bnmF9){DH(-F@*iytVy;yppJOO1ng%J;|Y z*E(D4SF@ZIIUVWKbHzkWtcmB1#}DhB27XoKEHbi`{~P5H*D3bi0em4pedjUZlliAB z;yJhc_595|eyZ3t5b}Aa^Y04{HR$B6ONe+*6=T1QYg$f(eBP=2PuW-U(5Z5{6X*G( zpV#!x*Kb$|Zw%h?ozt8O#x@$)u{ja)IXAqmIQh+8-Q~s+<$FzU?f7LR)~Qs#k5<;- z&&?JLJDmG{Qg1|lJU@BMJuJU3R+iu2>HK&hU}nubYk#aa4nJMQ^44L$qWnKr><{v{ z9?w!#%%oBN^xP~dXJ?CXto_g*@ALgv3-Nz*b2{YzT(LjZdw;o@<*{>fh5Ucf8;5^Z zyw#X@x-M%G|6KOG-YZdF3vx2#Kd0DV+E?g!V{yxK!IY2p`Tl#-0t@n!+mZiE*~_|L zR$eFPWXOL>vA@ns}LZke@%brsE#dV@qD}IIi-zoONJZ!OC?wfH%JkLG+wkSb^ zo(yO#;;G-OdY|-9Erfsbw3_iN(!Z+MNAfUQZhTGr-MZ`XdVxR<)fHL`a*-bSuM439 zpX#ek`RFOj2d`iC=J6S{pu`^wz;J0#)0Vx}~)dUYOOi+cEe2|xF8 zy!1Rb$mRU~jCTG5lkkI+aG(F3|L`Q7c|GL#9O-g=K68HNzR1_x(ZfOg2zUJU@JUHH zxESZJeT@4VSRb!WGk$EBr~fAPOTzQHB;411UYo-ZUkf1l7_N_hSu3IB3J|6{^) zcM^VYLf@b8_}a?*&w~liR}-Fx6Z(;a=W9v$*Ax013D39kaPGCmd2r}BC(eD1ln$Pz zEu)Q}Gvf<7jx%~^?`~$KznwGOt;Cm}>HbUot(E>SIRjquw^BN=tWNtu9XwDeTFI(Z zn}5l_^LG{Rn*V?0H@u}jcdnoR*Jsje+v~sEzpH*9;k)Zk!B^}4|2 zmq}iGo2Alt90JH2(#p54i^5EZWe)9A5yz}|F;@-vY^LW+z* z)X&Si%IbsP_rk{I*oAuLWXQUrjew)qfe%dGX)4#$`dg}XkIX~l}pXfB6{K+rV zv-9*nwV`Z{cGc0I{Y7rh{n5XEpZk01KGT3A{vqpsE)Rw+lGWbsSKO)k?<*S~>Dha- z&i4NGLPqO*?oeCqn~{Ia@e4{So{FWTeP+)w>BD@}}-Q$@1} z@p$h)sefh>|4qqz)4ujae8@*0{*Z@l2>m`MniVSre%1Wg1|KToU$FNbA)op&-e`}lxu5Gf z7b(5RBmYhN{#lwn_>o8aY%BkhmLB=b0;NpWAL6kK@ey89E~j zKI8A6rw5 z-v02r|A-dxJ|3O_A(J;m@jofj`!foZkN%4OeLewy-5=!-KlxEU`UCvONFM1UKFSXs z6F)kShoANzCqMP4e-Mv6_rw3Dz0>3DBp!M0N8fMQy^qaF{@ARxCgo>*gde;|K7Q}t zZ`$|3z!$~`c#r&t3co+oMLgq$c^<8S|qrQP3_`hlO zonI60wrl#Ij}PV(^c{Y0pYV6j*DKy%j~Bx!H*qkf)W`28CN z#FHQKCn^2zt{;dY-l5$_blW@ueX~J7@1xkh{P$g*lZ|H_I1~HE6F;&uQ*XYxy@|Lu zLrYvOO<3?iBR$Sm)mO7>oQ{gT^P*VJt?WNDh`$>kkF#}NPQRs-){{E!uAY=H>dBd~ zw4Q0*h>Lm#O?>d+zEkyN|F*k&Qs$`V&6_s0sAtp%m$;~B(9|t>-pP8hQ{G)YDRb2G zj;&i;)HCWsU5JZ%22I_9=bfzQ9&e+blsW48!2S2PsAtrNdJ-4)44S$H&pTO9>=?Ui zPs$wie0V(Qd4;lNIUrnZK`rW;){VHRXV9UWX!9NG*-)kQ zZ>OH{>H4eYPu5wxYfqi0F6yawKewnSaZxwoYH8{jJUegChN=}_|Gd5MartT@y-(-i ze_cKQ{5I-I`J+8G)*eawZCW?tqMkuhx8Qjv>&ZHDckM};qn=l8llA=1w^2`(uc)WmrbRu8i@Fh4OH;Stf&N>L&#_t>$2wlsEZUPjBl{%WBlSB+ zzhU}O{%B8mvzmTe)NN98!w&S?HS6{KPb&*wxnjNQnPuoAr60I|oz}pA_f^87FIsiC z(Kl}@Y1fzQ(e<5#WCo2)=#c5py|~PHh6I^GBNIAgLWj(tkqI3#{ka#H8PA^} zGiYQ&hfL^@88kAXL*`4ze8zZaBWTxi^{cfsa^Uf2nY;|p@L#lQ)mLljkk50BDINUr z+#_j&XYHEokr%EUZ1XyK)zUwEX1&Ib^Emzb!*?&5HUV6LzwyKWJT9fXblzCmylK-z zghM}k|NTa9fBB|@Ub$j}WV)Q7kN)^PwYAHvr9&p+Arm@eLZ@G_%fPbS&5llXY5X;<;-_YSa)xS+CrBQxIkpI?f_w$DZWwA)C< zj@D^d?m=;%6iw5Qh^PJ2uMNn%L;CUd%n~uWsx7}afc)_pPc%)m^RU?AxmS?NZ?Y$w z6qsLrFQ6Z;cY>_T~Da0q7M*w=()nqdokrgnn1T^PW6B``UXS zT>QCL$L%{~Q{~}J`#l5=W_|FK&prHqZadDfxW|Ic4}a_2{f(YF^ZJ7R#q>1~Kf2Ga z#)GZ>uROP)XJ4}T;Xh2d#lo*V|Ad16@|lefBOm_i`~%th{NRmF){XZmPWdXCF6u z;eT$ZynOlXR+lfnvZ3<*{l8>%zwH|<2aWRZPyKdd<@O)lYW$1VZmisSxQBmo&Bn@m z{`EbUZ%6T8y6zIo>-d*9Rz7y$)ka@EU}NQ$y>GCz-|oM$(&pT$#{X|GZLBP~(diNW zHdfyCdFLOcyv~2qb$F3vre#aZoYp0+V_NrAC#kMd9R|%D6Fkt77CK}?M_$lT2Iwdo zbd(vI-kt8h=;55NY>?Z^(7fe2#)uEMHvO*B{ZHYmEywQs%&MFNED;9_s(jJ*Ao zGg#V96#gE{nK@x!`EdIyN7C;nigf)X2mb-ev9Da7QwC4be;4IKU+iM~r!{B`G(n5B z7DbDoAzx*6lD~~ThwZB>blO(h?5KF!1--U2%{N&4px^e^A`R9~e8q?-ruP&-a|zO; zzwfGlM|`-uy{l2LCIj7+FMcuzje!mare(YR+9}fRh($lfhO>voh2>U=D zBL5>+cK5eK$8`m_Xyljj_E7xSRBPJnB%Z>uc;uyiUq2B4s!mfpZ|4Sl-t>1pav$zd z&qVKje8ld%KAZb{WsP=DER9G0qmrac{Ece6%%0FXUVh3?fsr5O!9E%OG2-#^c|3mR zc8}*hl+W8*={1G@T5+p#{_vv@?oz#``bIqKflhgOXdl|6NABmoKke~I;cvG3;jdGv z*J}mDdhHS2H`k?eRLyqZ@6p2Fs6OZM@DtBEribFGAM$Ar_rI$6=kxJX#(RBBKjZo} zrKkL)r|z9}A5)I?FWMvgD+Mjce>9JuR@Z2KoOmUuBOdvWnEyw*58A9TfxKyT|CGn? zE&n6BZ|U-zGuk8kw~61|)8lWGeAeQ`Q(xj)`~On+u_HbF&*uI&#LqhIm)U#kBRli z+Ud1x)?pKD^8I#7V^4B9wYCyuhP?wh&><6gQnSmcrBgXUhm8Z7K_e47WI~6`S~`^z zbl5nM88kAXLnd^{tff;qL5Gb4nL#5HI%GnJ%vw5?6Li=qx^#ZBv6fDGf)3ltcelN} zv6fDGpx3VXv3Tw_`^$s(U$O)3<#e7XbCiMp0F4~#SWAcfC2Vcd9k||RhLFQ^P{gHdWX+)C%(t@@W7*x&uWFWn_rSs1!c?h zooq!XP}9|JC-PZOv95|MwWpv7R$so-f4ex?e&MNazDaBat>a)WSiI zEbn=I)r9w-z~gvwl=1j8oSff7KFBaUp+_dP_ptixqE)S%{%yq7-mUZCBN_APSQ@{Xm%w!A6i`6KYh*C zRJ_}foy{n(~y!j-H{8*pke_k~EC7-pFlf^fhwy4hx`N<#tR@zVf zQ(hj%YQ&SCF^ylB?N_Le_CDrcFDcaL`|?#3-^=cX+TN~+M}F`VPpf<{-;b@A9hw$I zKIz#HQJ=^kznAYxD<6LF19_Ccm$U-@d|&cB{S?z*_>qsS?`yvm@xC&6QlZ{{-d^r! zKjrOJ`n|o_PaT~R--DF-{*e8c>)ZLaXTD$bbJM*0z0vkhC4Za~4*qDbC#^qFKW2{a z)A)^eLtDme()Ugv;X8AH1V-td|$qQBt7|kKiN;R z4trnrrTR?owjsW=rGM*xW7Q~ef1dso>$hQ|7wU)0itQBr&d?9+F87mbTI?r>4ee_C zL%o4rc;Ba>AGrU-g09OJ7qs>bM*BV__LiIh?ApYhuuJD_bkDqZK~HL)Q_vT!T2#=; zfj{H~jU4uYAtz|$1dW`akpmraf<_K|zmO9&a)L%q(8z%fIYA?b{a(lk8aY8DCurnA zhn$oy_h4&m55`^#{@8=1do$?Rw-4ywWe0jdf713X!tdNVdj~q@f$q|INx?(DAwR;M zzn!%U`^G!AcG-a*Hk5qZna+a;ou_p0pu-5SrGp3k1WzpuPnPwyGNd&8!-i^auKttK z!9#gcI(VX-q)mA!TkuCY;i;vAhjONL$dB@qHh9o;l=JE}i;KDhOA>m+^ z&v_%hS7L);4U_Ic>3_p@s$t)}&#=?)o;6hE6y+=5WJ{>uhl+U8?{D{nT&nI{RlD2W z@iM*JDEg6vtJs?4*I%A$$MfU9?k4kYBYnBHjgikUcf)d3x>2^6?g1t%-{(dTNv} zeG@NCzK$)+KT~h-JHANW@?Eyn&(F-14D@lXkk5%3&b^eE+k=P)Y1(P*kILi03E#h$ z<&QT3m+9Hbm+>7nHpkji|33By=Zqnr6EoOZ%IgRtBYq#*=o<5Q#^&KUW5n~G;N;Yd zVvlT*o;#z>T90$l%ZC_MmXGsDo})*!OXAVrY(3FAD-XlzpVQ<|yxYL?KsjI>SHusJ z#^!5|;p(TK_CZzXC_l7cS~~0U|HQg{=k&G++UFbR1pC=-3Ngw;z`e& zVDBr>n+(=@hOqA-fip%UY;3qZk9T_&A%hh^%vv)udt5h5&peP{W>0i`(JBQEQvC2@ zU84ZAFP8G~53^oDdf|=5L+4jvKMX(Rclq#Bo~$nRJ>pURGjjVH`Qsm++qdv?rfEjL z%EMpU5Alpt{Y!i3D*3xw{d`u(eu#eDp6K-_{m2@7-f%nrGD!Lvu6MDoS3L7ZzV@*C z&>rEZytGH@A7S=3{KNDncG`n^ZJmC)tUl;3{OFH9a&2KB9d2{RZN~2UKwr1#e(KL0 zp2j2ZvkDs_`Na3N_|V@J+hI{2;^|M=JMqsjes2%=Q{I_2uTs8hl?xXyXllo*e8*9t@%S9 z<7K;g&7Q_z#=AWH-7G)WS31vLNB^2uH`3Ong9`hy+iz1p^6|q@f2FO^k1n(SBL6VS zLtm5+-Cvu>Q=SfqpLp!Iw-xbT-_+kp{GU<$NXbY411){%!}+f*^fg?g5`Oac^7#78 z`Dq_-5BFnF_Vx(>@EZH{aP3LCh##c$NW+u%7^M0Q&v)e5t3AG3!QV~%frpf*tLekn zfbe^~w@2ykZs}JWKj{xF5*UhN7}yOFvZh8 z#Iwc>{o(ia2z^9*xS#f7O?_KpukUB+y*!cMwMG2!tcT)1WBKvz&?))1hZXo1S87jZ zE{nYk>)xH))7KRCbe%P6VNV~>|7x?VVo#sce0@RdS@?qf?zS%`^fseqTQfVL+ho`1 z85k%L__<23hYcD#vdU^Yk8pIJ z(!qlcBfORl9`qADwY2kiUrK5CSFZ4WmD0gOc~UxfqMW2nc_>@(M>*lCrGtlZrgX@U z@{=}r&~w<+yLA4N(WDKUwD3gP2#>M_9XwGU!lTSV2TzoN@F+vj@G#!PR?c`2n(-bq z<2`8F8k%!wlr!iBg*6>pM_AJ}sR)BuBeCv*<_bS_#4}I9A}$^Yg2Wa^bPu9 z4T#uY3IPYXLjHf%o?cqhk=nMv<&ghQ+tW*HI_2AIhi~J&)AsbznojvT7na}9-#cwj zFRkg6ue-e;5-Q5~x3Q;VtqFU2eHEJg>EHirPyg?*r^j6c?CA|vskPAW+q0*$I`d1< z%T%GFeg4;;jy>IXPv}M8d92DQ^z-)Y>77YpSBI>j3K9B!`}TBFc)IxSbAg95_h1#{ zDrXRXej)7XeqYq>%U&a=+4~`r)a=WU1I?Z*Xs?0u_&pb=-`dXZa(wUP{BCD=nmu~t z>o#}i_ulNZ+hLr)Z^GX%q5B){{LHseX5aI9_#sKS-x2a~_N8G@58HYhg|Ww=Y|z8? z3w!z~g5_f`GTLajQ~Mn!4DY&NZBNI3>h@cg*T(F(lqtW=-tG1yLVD>h z?CHi~@#xeqz6%ic?o|qEYxd;Q-d@EPTAbg_GW@AM-Qz==T-iV4yegr+68ZQW6q4G< zJ>JVp{;kd48usv+;wJx=_V+liTH1S~zB7c-@caDH(*7IvbnNwIes1q>PtnZ2-BbCu zyq|zQI&F{bvMQJNH?Tj>%Hs^a;fI%%k9@am7mAE{hs(? zipQRb{Vx1rpYLt<<;yId@`pd{)4k0e>ha8Jxz39AxLjenuqX`OQ!q@!01#7U|vozA5*^-`C=?zk7N5 z%OB^J|10)%`WO0bX-|*)D`C$}?dfgJ{_X1>+V^tvm-h6Yl9$@kJ>L5l{B0FKQae@p z1NL-}=Uzk4+`f(d6#H%JM?QY|!=6t2>MHE%z0IC|nc0t7w_Kjbhdn*~VNXx}-o9mh zS;K88(oeCq-bVS+Kk4BQf7shM{y(v&_pGs}_f-8-d%DMWLlb6yZ`;D2PWw{c(w^?| z-X7SaTO0p@mL5OxBl8n#t`GXx+p(wjl>M6a3Hx^GcYAtovu|H!@z~QZxAMBZoAGja zVGnoxmVUR7Z%E?%DgA~dJ@pAc^~L_a(eiuy_Viy#iE%!i`5^4++`BnlKinSrEz@tF ze%Qgv^XcvEy`!}dQao=&;43&ssX=ar$3m zyI*VayL5hL2YTg-Yk79q!iNpL*4haEpzmvQwb{GtvVUm``n%hlrY>dQ;LN!9C4Vm7 z`%=`4{^PWVhaLz=56B5yEpmeX?aM#2zDL?Swl-LwOzB}mZ&1FiExb$T8+6aW>9uRF zEBIHgDCtSf*XsERml<^QN#xhkA)oM&4;}KMLq2pWGwA4($gibCKH(uBI^;u#eCSkW z(9tK6UrUF4!b3iE$cGO3(5cLzqfa8gmJa!ZhkWRe4;}KMQ<*^@^}!Dn{lAvJW2?6p z;m}8#W!qQ5tg~v*)h^DK=&Rr$pZ13Y`I%>y#B0+%lh+9p95^x!mhMq{dx90 zQe)?L+molK{{C(v6RCfk!u2ci@00Olxvv^Me=jZZXuX%>2G|On=Z1I8pL5}nnsfPX z*DCXmcMEy0yj{qz$bX>j(DS~){HjI{k-tBgKE$HcIyTSZiFmAx9&0T5d4n?lA)LoyH@7hMvnf zPW!y+dAjtBJo@ox=Vw|h@(1R8A^$j?diPk5NaK-zqVAN;m4;{M>3ZgOnn;iQ6LhM3 zcHRQWPxX&}I4|ioO~;c#3gaR@^6M2loB&xX8Y3qQ!^_)wqkt;nOn()CpwH9{boW*wf zKnr)CgA&^HQ3i<5gf@g?P{>5MRxA1@q=o#A(7^3}@=ms0JZX?Fx zS)R*=b{lak3vZGiIfT%y>iqTHi`!PV4PV@N@eRH| zfc|xRUo*n<$4l2$=3LXpcs}_3mi(z4=yPuSaUt`x8-G;DgbtbTgiOLiX7HzSSd+f@ z(X~x?{B&LA`e&W)^{sVU4?bhz^PbvuIO}NA{^q0WDo6bB3A1be;KSEe+GIaAdXSwN z4;w7&htjs{V~*ZJ_|D!{z#4$F&aLHQjb(*^k9#_dFz!wGy9O9dwelFLZYw7Z2oPs~ zvGSL;T|)mh`OuelU0=$Z-V3O$PpyCV{L~Wtpvy-6%KuZh6)`($|*D zHBCL;IvnjA{Dksu2-3wF?DU-xv?Mb4(bl_?SDSCh|DVPm<*F^Os>WsC*u6ux4fpz4 z;2+iaUrPMzmFBe;{y3YBgi&UDbXlu#WUHKNI`lBNMY=7|LS&nqs+RI=M)s`Im$vU2 zvUcLfuG_5NygZ(@h5P-Rev~Kty|OFJc9#0tZ$qaR&Xf680dC#$3Hh5oi@EA#e2zvy$NtpuBuKYrqUt?;DD;~Sk% zNnY5Z`KBED4L{$E^Zw}k)9R+0{D|MK{>3`RZI{?qr`r0ZS++geKfXEV{%7T1X>0E^ z-rFC3;(bd;e->kVVLOcW3)}B>yH~Njur)^e#o68Iw$FPdiSK0j zMg5|^LS9z4XHC4fSHxdz>%3CGS=~TNn#)JOu20V&zw6WeZxs40&o=wsEXq68&R!p* zw|Y!b{Yg*zm;UMbdh3n4=~<(FbCvRq6~Frzm@U}-<1C&v=h&ot^w-jVvE8eI-}9Sm zYp>=)Up~I@(_Xi!JvskS>hofo1wCH6S9|&R5B{u8-L>X}rR}#t%-$!n>;s~o)(^L{21>Igoj-|YZ4Sq1kK5&3 zKmW9}y=+{rALuAg*ySh>bd)FT)s!LZ*g;2m2#@mA(or75qdacM^YT2lbX-v$=qOLv z@hA^;lqc-llp*ZiK}UHAkMh*gQ69pfFIv^v?15Q^4c6(OJww@?Uc2V{f@kH5>vfj5 zi}9y)lsRmJlo>k83>|F>9eoTs$_yQ4uBD^Qga;iqbNXa0o${2l+ryo|q{ALgA5Q78 zVZvWaW5a|$?3vO3v1wEH(oXL5+BF-B@QYTZ^hcAi`O$)B*wB*BvXbX#&)g`Uz9v7V zbsk9e@O|^KN#EYLGT~R9^}T@WdFN1G9@^3Ai&mBNfd1aTjKSyw(4>8Qn~zQSgB~{Y zdOZ&iICFz!I_+|thW}^JIL&+bCsH24V}?Fb$1=(M*H^rU8QJLqUf=x9f1+Kzq& zK0}i)b&UQKH2Henz0W{LzD|3-(2*~6-zM3p(9_XJzwa^ z7drBVj(njbU-TdOGL|FXpvl+AxaSKU`8w_SLPx&PkuP-Q3my5=zR;7JyA)#+{l_>B z`tfbFo%5vh_LtYI|8zF~E}b_NG-bPalZVqcg1%$xO^F<*X?N;NUbS@OMR-a_zJy1< z(2*~6}Br8J4?^~x30Dua3S1NQQ#y!fmc){j_z-7U%KQ((SfoJon)E zvIiG;x6*rH)Zd>q!4hnj>fiDn9Cy|B&Lh#Y+nr1KJyiOA@_6LmnJx0HSLW&G>RwD%bx)+{uHNZ+Jms64(-H6A`(iic_V8{=JoWcG zfCKVS-tFX1(UP9{eYLa3mczv!a-vaX{RXJ?ee*E%6uOA~xqsLzk3UUr=rZDY_w?Z8 zE*{$8iu^ChKA2r*A^uILQ*%1fug=zFYx6Me?d)6dcq88LFb*`1OZ7j>67v1sKSL~D z|5Sf0Rb~DIbyw&R3-SAVE~%71M5Xt89e#f?bQSpzQEI!lW+m~o-~QQq^o+7!Q@K}Pbvn|&TX)r>erSg>az%Xl z{%i$HKUh*q{d^<)X7()$@qfc}I?|6%-YiAk+)h-=e>l54yQfHBUtLj?euC@|O~oBZ z@^7fZf_&=d_b4Y5#8p+Oeq}sgOXK}qT*9AfZ9LEVgwEh;;-9W4KX+&sc#!>%Gq(}X z9n9nNyGt;P$x$xK#~nz{g~e5yo_mz@iX4XM9Rf!iYoz~9wk>-+PrNhyJW*)_6OmoX zd82&a))zq@&BM?@ZToyp?{@u05g+f@F6;lT?6K_IlJGTgjS$~Z>3Eo|XUK1(-?#L3 z-^bn}{dux6UX;g=mJ0@QMfql{75B_TE1B;0RF5g*Y2O)kkJf^$ZALj+q(3ivuUjz{ zK2PmDvL=2;a*y~3#WmH$a|Q+6^s7PlyZwst)$4>yjENJ~7wJJ<5r3KxKQN8irM7;2 zk1*y8M)wJxyhy)P=L14MC$Y!X#LrMz^v^Lu8rM#l|3bU>!4p*{+02f9=s}c^_Bm4s z9+|cIZET53SVDShW!s>1m(U*+=v?1iwy}6LkssD}*^$=JA=v zQp|-B&%4>)lgBf^#7q?Nm*_<36?r_^Ut9k7X74N7AGXmsZ=~l8$KG0BoM*joyk_%; z>PU?l;?d9f*#+5!ij8ZY#t1a=)Nhm|M*H>ETp**JT_OKES;IHvVT{At_IHdnZm4BH!Ccn)-kYaBR&K5SKcv=Qruzea zY5kHdHZs!t8JUZ+_dA1)pP8bGmswR>`6%~q>}s#EczjM1PrqH8U9BEiUi3k(h+i#^ zh~Hl)aVC3o5&z-rDy<+^=b_A(E$e@YRv(w=vHR(?$h4aDXJ~}=RIk0ndg(;`Jl;;H{lI&pnYeugQtezwFUg!~7yha{oAYUSUbJ&-+EM(5w} zEX#ju_KED1N&LHWI?DISY;*Rhw~YT(_UY{A?3V1->|Np$7FB64(o_ChvX3jKylUlt zI@_ewan)CA`970< zRx#yOEB{Wtapv|Sy1rT)|E267vb&0S-rw$5l<%(W%h^}nGX5*sKW2ZI{eAW&!vW3p z)m6fTDBs^_UsOza)yn_J>zbkvU`rHtW;A`X? zsNF+Db+X1-TkN7J}05QOwNCP60Y{w<@^_lTB6arRc;&0zTW6|M%NkL zKB4yz%}I$bh`(db550HJ1Kl~HyNE_Uyti9;z0se|c?jQ<(4P~HwV{*TtrqU|ojDKT zUr6Y`6TMXUb)MXcO;PnmHyd4N^rVEIoX}GedTK&XGuq|MNWzaz=;IQenMwEw2|X*J zXD9q~L~|zT0+o3|9uB=Q=Z8Kyp-)M8PD{cUCE-hw@TCd8ETK7Ubc%9o=Xz?Qlq_WA56k8 zOXzAsU!KrcB=mb6pj2lMPCZ|sV72zFrlkP*ID@G34KMvb7c~~+UN%3Un_dK(2jfB{aAcShtT~K zdO$)COy~oR*11mcADV;@O6b7}eON*tZnUR8DhWS2p@$~)u!J6Nw5L5L2_K!%V~o~G zI+bl)!rzqeR1$h(PEWdOp9*I)xi9|2>~58P&w9}41--i$^uPYPd*#?$e{11qeWgc1 zUwZ6*m0sT*qV2-&tc)g(eeZ}hwJv-L}^gkT#`hk9S zuImlD>jzz*(9NH9JwxCAhkYv_I;^|p`&93eZau}@3!V|@csoMh^i^+n=x+0Rsg74n z_~$v-RStfzhsjwn@48C;_Wo9v&x_t?fwy(%?blYG>hEp+r06sIct5#B^cUy2&iDDP z&bq$h`Wf`{wUy7!@qTr`=pXj&ZFzlk?sb*(`Z&*7FI`*t)m2{R2T#1N@}Dnzz1|Sd zSMT-uKBzKmc)|P0iJ}KT=z9CS_`fjQb$h7zU%bk7d#390+qK>w=BR96zt`L1P4S=b z5wH9ABb>6h!gl0Ta25813WrMzcY=6~pqtT2_>OweUllnq4HiKqt zq7%ZeXzjX!W^AHEXvQYGg=TD`f9MOpyID^)}L+R-+I2Q_}^vpA)~x6!P8Y^4Lxj7fBwPho+|S-jr7|^_c;G&H7>@i^?t&b z?W?g&pXsVG^6vTG7L3y$sBa_ZMU9c~s1H*%#^7@=b~lY;gxyLKcKTc`SnBPlvzozj68ViT^cO8zCoQ|(J{cG`D_K@rOLCL)S!>)hE=@a*R zIQa9M7oGnN#?c&auOCQe<67tcfa?3>)!xUzljr(-`(7sb2QF~_uc~a#YrQW$ES?8@ zdmAxk|9qnBgt0vPxBFMV{`%_1Ez0Zk`Q8>|6n~(BHtc4?X1Va+b>Q z@{8WqU{sI$T|Rg_@3)>WSocV8uRD14XJH`YZk}X5D12tzb(hRz&*)^&Vf^HZb(Lv9 z>{L8s!I>eR!{EC@;1$nCa7GQhy5Sp78x3CVfBa942Cv$U`=!y~)eYZp8oc`Y>;Inf z_oy6q`Ey1)Ui~^xyPwYD{3cJke`V~sFB$##Hgw{&rcr|#@pL71c(x=nl)rB20JKqLg-80K+@M^=5dJ6}yf?l~|p!gds9J~rT%MPl{ zexbF6gI61dv@sgI>afMn^MO~;j7{+B!Vc|>2Cs%Z*4Ak73OVqAR~@!E4PHHcLA`~8 zSCj`H@QN}+gIClA8oZ*8(BKtyhX$|E2{d?xuAspybO`Nubaor)4&tj3p@d5&@DIvX3_`1OfZ(d0mg!vloQMZ z_oySd2Oc8F@KCscZUZ;aIk@3?^-_UXve)7kfU?{z8d3BJ1z~gaK|O5!KK+R47YH{r4f1BfvWpRqaBw<XgwfypRoXjK!YJ*3w4RL z2jPqz@Q}U%9)fAKZ(tgI08De79AP*KUeQLe)}lO&N5{8ehHqft>fVPofq|^|s5|RD z@Q|^<8VNi>4tN3<(MEwq=nX7lZ37)^8|us2W{Yr`z61_CJ`Xc|c6=LV_y$H%hQKJ~ zgHd1+Wnk^Zx)i;EpR8A*!BsF5{eYQItaiPzSM_;egv|@g7nC8^PWQ|jW_Zq8i*W&t zfp6#&d}B?8o&y`{17IU(XXCj~&Q=DUuCLN{7yR*@D|9^ndd$F%M!$C7y2@VjIvCHt z&0AM_yzd?szFFa~cj{_1XG!VLE1o#X&e77(=RCB)X!`%l^Jg2)xCq+!9WyMPakT0e z(~V|)ZS6YVXvSU8jK_&z7-`{*)1a|YJTv(y3ui2E8-AqGjQ2Os7+^Fw5H$F(slJzm zgBw@9a)8m`NxzSDGa8%;8vL2_P&*3;mx2bbUY=iX;o#Ualk1EQyA3*-`Telx+)!z? zr}J>e`kslN7W&lXUh4X$(Ox+lCX zp#QOLNuSlYpY~kMCcn@7_m$oz8U4>+Vvjb%=rzA#FXr^v0p16Y^UBHIH=q|j-nDX{ z&VxdKxLUbb)dzp--Hy_qly-{n z5WW3D`TkUP9{SHeD(#eyxSXFU?Y~{+?eYup4|veqrLX9t26`RaQcl@3>GM+*esw=@ z>t9Od-)(mtZl;cXojy(cM+*Px+kI89bMABfFIK*r*LYvLx9^RWcirc@x=U&QLH05F zz_H?ays!7?&8o|_FL?N3mGd*RU56tTe#}5G!)v0439IR2+mzRZ_j&pE5`FaxUY;+D z=Op1C?R&MtUmED)zfc)w2$#_9reoy`VJrH?KoX>{_wKva}V+S zNcKJY!yZaov3>oF#%Zd{<^5c5YbF2Td9Jsi%J)A8dcCd@PRAJ`@y@Q3w$;Llyp z|G;SQCus1e`sF7r9Q+9y{CTSV6BZ8s1P%V2bK5^zIQSDZ`1AGGzhU9vPtf4c4c~aw z!oi=Q!JoUHf55_hf8;dyQ~mP277qRd4gNgU{%#8ge}V>oUK{)+3kQFK27kW(`WGx5 z{0TbjRDnNkzjFM6hw%me1P%TmlW_1SXz=ILKfKGr!JnYP9Lfy;=f3B4fd+r5FEscQ zH2Cw}{tsI?_!BhvgRbBQe}V>o&@JKMPtf2GZ9zEr6Eyhq=^uW_!oi=Q!5`Wbe()z~ z@P|G?IQSFvXFukBhH$Wm{sY~qjrTEVaEbDROW+B4fhUZ8+KaId=Ac6`2Yf(p-~-qK zKiC5PP#*9HJRuxB0dtTK=74GF5KIH>pusx&Kl-QtgG+>iOW-7Vfs^0~`Tu3(i1;Gh4U&-uZWubC}jJgkPY1!5Qif&VWCZ z4g3KEkr@~W4F-aHlnvYi>uBG=I%u#CY@wWB3z&~gFduBEzF<4Jgx&&|kO?kbD? z)4)mU7&r+HPNw@x)?o3D5NPm?cZb~fN=Kt7>%ASf&+cIKNUgzUd}J@n%c*s5? z@NmPB-bRCmL4$`)PxrKN@Gxlba7*I>7Vi5Rr@_N}X60^Y0hm=3?ki5V{un7HtMc^Si1P{SU+7X;&d_gn57~|+I z)^+F#tYh2}9`imlxCeexe()2Vgg@4P(BK0&KpDURaE~$s?vWPU1EZ)f7{%D9JdAy? zn!4CJQ1}cT_)L9cO-No~FPMh@V=V_AYdP90@C_P#V@*iD;2{``ZUbY{Ef@<96Ali8 z;q+TD9K5BRfw$-cyam(9H!zK~U>aCT-N90@i}D9{L4#djDRm4iMGjaBUQy=2D`@bF z^&2`2tb-1$qh7IogJw=)zMwqJ7hp2&5|~Wcz+~o1!kH_rb$7a4cxYv6&X`IOa4sc43EOEgT#R8XW6$&vXk1$ASjOR`;G};ow-%ZbzDI z;o#VYAx=AvHCwpjnA4796D{0v%xTB5MhkZwa~d4$bI*7S2giaAyIJ5EwiL!7I0g?i zI2N?ySfhnIjyVmEb==Zq;ow-%j$_Rh?l|T&I7S_j4~_-xI5x$?9mkvo$Iuo0;8@V$ z7`i1K919v8qb&#r$ASjOI&L}6!ojhi9mi%`xZ{}9;23=XIpA2(j$^Ye+;PllaEv|% zzvI}H0>{WJ)^%GNCmLQkjx`#N(O1zMebsSnqTv|0LE2d3ZE2io7{wZo@Df9&7>0md z=o9R6tZO!`13!@uemXWb8#c23fggNhjfbwl8OOKA1m9*FzOk-D53#Oe9L2g0Ixq)4 z#JY}f#_7)=^uDxI&4y9nBxR1ZAAKOO z5gKd+i_leI5&W^PLnq+5WA#MCYVd^c5>FZpPryUcmUuYZ@X#@EN`iq?3IgPc=D+&%R4%ow?Q>NyzPy>wP>tX!VE93q#eFGtDcDavtjc^Y!O zT%IFnl*`kf6Xfy~?3S6AB~b@?7Iox%=xkNxwRs zg~P4aDPCNjTEyk)L-=^kl5{*@h#a0;L_W_yPLa!dP|2S+o>HCxI!jDBc}FSb<~hR2 za(Q2Avs|7EoGzEA`=-g|ImV%Kd7AN9xjYp(LoUx3qCehMI#TWt(k{<)Oq7OkTPqfK zm^6H(+#{vo(Q-#i!#u}xv@|?a?jF)E?igu!tlY8E@DRB}q~TF=M@hru-38E&fPp5WdmkI#%vb zX%2Zj&xku#nj^m<(j57ZQb}-+l4ht!MfJd)EH3oitP-L3=}L`ztfbRUjGy!!ef9FE z<1GBU=W8Xsb(XvaxjqgVH;hAE#^GGKjKg_y8He;=#v$W{aY#R995SvLhm2Fk;X=8L z!;|GQ4o{NHI6Orz?goH6defnL%FE?SwXA0rT#afr(}JWVd+aFJZbAvnS~WE?RL7t3WFE|JSPTq>7w z$oOL%GA`3`$oOO&f@6$B#vS8uwp_;H337RJ@GQAQG~yWVJY~ap=V`1ta*tMzIZ-ap z-{SJ7SK48?+Q-LR8++Dzu3BWCYBx_U(j>P@EmDzNQH%I^+*9qrINZzn%V@R8Lirb} zMNXD`vRZ^^c1}`@oFexWwaBS*PgRTfxa*payM3%bPEm^-ulVEDBFD)+PAxKD?tHb# z0=Wy+BFp41Q;VD~_jI+0kJp~oZ|S=;?bk(A$YjQqL4^}HM-Wabwjt5Eq;M`yvmm}2zv*n+y7C1rf32K2^ za%ZUpz?}(d0dQ-GDE#Bq5_9CvQA?aC_e8b8T)D%feO#WZC48PVj>|K`q_0Tp;N3WB z9Jf(gN8V^@oO~BbC*Zlxg(@?+_BQS>wA&4!y<9fK4YZmWpa;IYTU(=MmzFm zb=r5Sv`u?YSMIozRXX~`3{l|IG-;du(yY?sGP}@^Myi(dui2_K{f(!b!K+!)2JQrD zt0MOpQH^rPOVdqq=SZ8lt@PU+uKBxC*)0uX&kpAt%FBAe@z>lCNA2C^%w0mR;h8p zA=+`ga%q$c+S1;Wl{@ZSm2R=zd7@Z<&XKn1FEdqo+|jBHcsD||1n(xP*5LaBX_|Rx zzO;dRoU}zh9VLqXd91X(OzsKNCT=VJc87PM1Dv?K=id?E7|-AvF8Bssfp3gc@D1Dm z-@u!6UlsVqxCP(9C-4pYVLb=lfp6d(>p5@%d;_n*H*gYsV_bu8-~jl>Iud*XPrx_u z7JLI=!MEjd!8dRKd;^ETH(c-yyad^B!8cs+ZJAu~4crFbz$Mmm;1~D?{(^7dFZi}Z zF8Br>fp6d+_y+!hZ{Q;M#`-J8H*gPp1CPNsa1MN9oeRF5A{TrEZ^1Y47kmSE!8h6g ze4{^)SBub3n$;q{?rLZKwxSkkQh1YEgnm9I!8c!jb+CRqOD*E~)5-eZY_*8vTxT0! zbJQY^S6y?Q+{eZ-Z(4O+=x*a}o?67$H~Z$}en0ECr>jMlEC1zc5y#`6Y6seavC6NH z_2XsI{8IUsO7o2G(bBx**8m$Yi=_F*3STVEFOj=Mn)mhI!G=E*r1?gL^QHsvs8KE8 z_&CULWmJN1zK%TH#_>ru&oJ(MJ$JHNfN?oQt-<>16t#ro!O=M$4>g=PO)cU2Z#F+) zoB%&28G?W#O(v&FnrD2E(dfkm?T~w%v=5HVlJ+UjLTMj-IE?lSpki>2bC zokmOR;LT*E#sz1=ac~w~T_Ua1?%)tEt1$Y<38KLHMrj>f9;?#hj#6#tPa{-I`q@m? z8hkuS8mAvFkT!66p91~$7*XIH>)MK3R=2nlrCs`WEB)RM-qni_)ChNX>2?>tD>>|Y zDG#eif9F3~x$AfThn#SCmG7>?BVDcATJ_b_gjVYY)f|fwuD_X{vi)WHsO5jV{<0is zronP$=JAsJ_mu;Ew^x11uf3#GyS?&!_ORUehLX=$xNX&Q_LSR7GZrrM7X0m%axeQa zcVVw;tN2X6c6m56+V1<^a7kvqqup?64P45J%lwJU{K>q*{JB^zj!0s7(6Zn*WDNpYD^aj{D>zcGK}GJi6UGk-F#Gk>y9VE$yC!2HSl&-}@{ zo%s`c3G*lOEb}Mx9rGviAM+ z=1=Bv=1FLC)^1M}$!X_)e2 zN1;9yX_fU3^BVO!Mil;~(lUCODJ?UPus+9~BdxN2nkvmQPmL6Xdy=&5`sEE(>_29k z{%4Duc3{3|ew!qzwBIagmv%itx#EsdX)1C@iCQLiw6sfqI8~*^Jw>Hwo_E;t8HgLAmx+?jI0xijQ~bIb?e9JmF}u`k-0 z-Iw_RoWlj@z*%q(9Of;H%on_ki+N_GT8sX3oLbD+&&*GbgFdd?+FP$ys>N0)e1%$U zx!mPyG4SdnwHV`X4^j9Rs^xsY&>_dKjy5jlsO1=cqttSZavRlhjI(C7Tt)800tbD4 z2M#(ubW{6*!`*FspR5*SoPvYk062($o?6iN5xs1Dk5S7we)TmxI7KbvnD9sHsl7O5q?9ga8u@f!K?O;;=6u2c(vTPxH8 z;N)^?oqVugknb^~@Gn#=P_7fz3X~Ik!(|si`A4Y*s86F>fOQ*Q465A#cBmytTE_wsx*(Du`}b&Q!9Y4W8|ZKz&G0G6mjE@Rcdg0w4~C$>>8HJ z<^7eo;Qd6o3sfrlN0T()DED-g7I&FSPd_?SwE=I>P%Y_ir%C(t!^zSDF4l8!8oSJL zx#Kk&=)cpXJzTz+w^HtGX`lW+L)yk|(65#HCg|2mKM(-RaJ_|;`-kwiQh17!5f1*f zlbqIyZzn0pYoE)*<=bw!Z6w{-p{z3P+ag67yJbmDF-e! zz$Jh16Z{2dS!aT?;4gSXdT<6QtP8UI=982*Rdf5AuAnJeXj zzh}w?f5Bn!7ragF(99R$??kz8wa#3kc<`6`1N>!v0)JUQgTKsY;4gT}I+OJ_b{ggj z@D~^SWnG=(FY_7r%RDzytwn#GqZV`AY;FB>g<6b$yId{i_*2@cmnwXzS`55BO)Um) zuv@^tNG<31UD|Veomb+o<4b3?8@TWH)tl6Ejq-O%P`JQQp@ydc}h(;qEFP+%J5>!AWov90WJP zMQ{^5N^z6*N#058T!A<6Y6gRqBw}O+bTX9*pg2&({cnoebpMaa-A-FkSF1X1&0dBG%2RE4~(se8A zRdADeEM2#P$E;fytBv1k-Rk(se8;$DzGK|(dfn>y)j{pX`lF+byZOnwm2naK_sMEG z#!+W!r6PBdT5zJ=i3x5xUX|-s#y9I$#trLM{3oa-9k&ipJAo6ua{OnWV;xnVZ*Uyk zaUIJ#Xs%j{@(i$*9_1;|BT>GJT5PG@rD`$oXNg)0yf{NG<@kJH;-02aLVKO6)VSq37K=Rd_grg#*30yhB`O^_3I2lL zD^&~n*CJ_mq1-8|B`)a8Jkco4(my9iyQj;YR^a1_(iQ9YSf?&FyscMQii5TO){1{C z{Hx`!_5ZEYw^Dgi-2ZFyml!Vl7GPWZR-^j|3mR7^{`KPdT8;nN8vpNV{Cuk~(_6Zq zRO^$Tc|O1DdZ`EStv>gU)+qMXcp2YlbDR4oSo%K}{Ol?0H^ZX+J@YCP9 zHs|q;=Cgmw|MslRZ=B@cp6CnzbQ@RHVY8M0b|Dk%8pamozt#BNKU@5_+Bh4lQeI~9 zx7fH~ZKQElr!iIcuc~kAr~ak?7AueY=SbcyCcpHbZ{r#NDwTlvqeQ3asXzYr>)pe| z4`~s9uKF{$l=0qV^^dHM`s066b4IiuSmOR??d{sc|3)`MVk)Svp|f4^jDF0uUae_nLtU-}=@8;CvqzvuC1%MXT9zcIOf+<%GumuhbJ zH(_6z*Z&ClUsa6f@A`c$@l*akC4O{Q#$RmnNtz!1(to~Y@GN^>=`U9KPEvU$$nX6# zt7Cloc&5Mlw_trdmwq45rQgT%lQv$qD-H8f$m3hKi^TV6HDV8wexa6{h##S zzgJoRXS_su#smIia(>1u{<$^jgCBXskFfYBHBwyuzBxa=iu`;$Qy=^n*Wu5 zjH2~w$&TV2ZN0fk{tIm0qW3Z0w-@!rKhFG}M3wQJwB}+oc>dHk-9G3 zy~I6Q@}2)Yt&F&ywDC>(oj?4y+xo}jy}qYddcM``?aO#Ze)y?>>34j=ze*z)yovI- z|5lrai3eYZr|(0#ycqv{3z+=Q(+bby!I$moZweQ`=YN;NsDJ7wztVrMR+_ZTDjUzV zXB+wX7BS-wKm4ix+&msUSg-HLo+JO{Jilmf{G`WE{`eXHeA5|u;a@NRdo2BvMf?Tw zPpiql^gm|rbjQ#5r+nv&|J7VScd7p5_gdm7zdt4Zy~SU~Uu@WsriZ`upRctu<9WS} zXXJxr-rq8tzdt1Y@av1e`S_-PX8M+LR_Eip^!xb6FKeITeS8ZU)Sstm_Ub`O=_TSR zPx#U2sTM!Dj`2qN{mfs=r~c))oMU_=pYk+n55_gPj`^4LC!4=a@A(a`V|)`oDT&{n zHEIXJ1^+~g_wil&J%9XOzq0&{mpR%ia#0?S7w+fd4|y?v#(2C?vkdWr>n^hVZq2`M z^Q2tQKk~zme#npU?EYJAT~2ue|E7|?sZHlomO{?t?Qd4pZOGhQ=afspVs1UQh6i3L4Lkf z&G>?!{8B&Z!%zD68b9r=)68|x+P);>BR{^?9rBjv^5NgE@qMBElk@t+Pkr$RKlzvb z7~g~I81K`REBl{mIsbNz^7rL_#&6_5P5Foa;3S^%GgC~<^*K#a$uIR&U($Pd9)BdU7`@fH`H|pl(^BevN z*===|e13EPH2Jlr(WRc0#~)<=GClQi`SiazvW0N{+{W)48o!5_pY&cn^by}Gzb)@S z_`wJK?GpamlzyQ3e_l5wPw)Aa-|8M@@#VL}4>dpKYchFdecfN??|zp@`N)5cMmZOL zkDu8>-i7)6H&~oas_%ue4Fvx+K|t5R~z2kCcGIg|74|qEKd)=`==?t zCuIR*e6P0gkNl&}ANj|4Fa4y4-^=ru?p-kdd;DsR;!EUzz3|6)kN8`(Bk*{}`)cV+ z?ryIJEfVK79pB8_p|yTKrt~&P(eyW5aGAX<`wiZ?7T>0SeA}@tzD-|#SN9sdZ+n`3 zBb9G_2hF#+gD2?to;y6XbjlNSd~Y58S~}$kI=+Vve=VKz1kLwSqs+B*$`f>aiyZm2 zbjkyL^QNOJjqkZ_EZ=EGceOM;7p{pv=Llp{8WPEeKntRl7)yDh% zZr^dkQyb6yYVNhfRU6NFA?~%rRU6NJ7w)yhRU6NJmY%ZJbG513y?OmF%g_C6?y+#y zSKFJ*zo_4Sb|=Pzsb%0C@o0tnF#SE+{zpwCo-ac6%{dyX-0x*~UCQTvx351eIJZrB zJo34J!#$hwYN$dZAN_OxhI=;U)lh|wc<$eD&!)T@s?ZV7{TuFemsdj-I^wy1!#5Z|;3sOn!4&(nN7Q^U2hc%IhrC;WCEkNux-sO~ELB+ZoEd)!q#-&UQGuZVV*za{k4 zJN!p~DwX|jlhEGA9*!*_c)aC29GgspGY7gxxUWQLE0c=dq+YE=K5hfzd`Fh|Mq>P% zU(OZZ2KI2)JQ3b6p$8;1>xAH8j}Y{s2|YNcFIsh^z4LV5Q((W-y}sr1K)eez<)QDT zcKyG#A1(WR63(CVTsr-oUg>9K@cZ+hAP`~oa?v$-Ri69#TbKJU%}>?fGP}uBTF1H9 z?L;pW{$JTX{qpxOW z2l9BSU#)4}4|*Lr-3!d|{tjb9dOG1LVz$D z$$()9a{@AxY!V;{qCkRz${-{Rf*64W$4>#!%ds{E9n?_@m_=+_Wk`AIt)|7F!%j_>jj z@m*JRZIIHFJoHn3@?DF*6AP6W-<{hfzn(>=yPsQrzJqCp7X|z~2LD0TyX3t1f+D{3 z-6rVrza#a_^BwrE(C4qAkM!lcSAIR$_^ud{zJms(^jH4(c#!>FKzXSQqJRREpSWDq z4StVCd)D6t&o4W@k7tEjEVW;iEg=RaAvCTZI(oUWy{n?4mw)6h`?(4AA_FxM%+i8q# z=2?|?(kAcEPIR`Nix(~Gu+#QnCp6n>jBVywm3Hzz?a$6fLx0;je%#^?JE7UOu3~X7 zjBV!W!_MNBKW|q{?T}Er-z$IK(%& zZ7;`8_~Lq1?@!t}{gr3*skH5k{eL^`gl5~IH8FOYr|iUVAXFx4CW5Y^O1{nP*knNjtK?@Q@3+vUkO;qdt3elC8Tsm=H;`nx>C zTQurz+qUuJdU|2mDf@+s2cJ84WO`ncRuktu!hd?;u45+bOMQ9ZzWcsD=F^Yuo#XrO zyR5u=_UsfsXZB_BJTD4(Ix+W-(s7zQUp{G!(`jO-Nx0MLjg_Xtg}?aiAGXtMVy8*C z)9j7wbes>?EzEk*`1~2d!-vfeyNU-b3m#*K!_#>7_j;G-{k;0NA{Xm-1M82}Uyy=Z zevb0);Jcam_Vo1XS}oGo*Q(zw>L(UG(r-V9O{Whys-&+L-&|ZypI&16f^`ju^wkn_ zeCF{Ftmvel$46J@iRnq!wPvKRo?fRHFy4#K5we-aIuS=Ag{3J!_k+(eYzTgBDcUj33n$vAj7Z8c-G9q z*Us?kG9G$TQVuOX_-n_0maMtt*N6#tW_w?lteCLc! z_w7DyPC4b0ixb}G^K;5y{;%^McxZ#)?(@{#Ipw#m{z$?fx@}JR^>?23z#k5{Y@dz4 zJ*T|=dv8tnh~LgBzk2Sz50L)9|L2^t$mF*6Z&h+58oICYxDK7Z144b z9Al$-u-$RV6Q@aDSr&O{9mrejMxI+|%HoJpC{KS_{8L}Lp}gRKi~pj@*OqHd6#t`(uPqPz>*2>7~uMp3fQ?4$z-{SpA|6LbfU0(a7WIb72ULO4K!rz>7 zefj8Nl6%?rt}iEDr?>|$y1u;T2jY46=r5O#{apCoOXrpg|Ezko&+O~UpZ!qbBSN<= zUsCuUbLN&0tR=apPQIr6*S{!yjZ5d1UwTITFGN`!_JVZ2`lWg0A5M|nrz3pn+FwXz zw|dvr<^F#b&t=8cqq&ToD3 zit>RM#dE?-SCnV`NjzuI`EvQpkHxcHl=ZK-SAL#0`-XDTFxj$T)D7jM*GjkFUvgRb zN8Q-=YVofYX&&}<@&9h|SIS@9 zsPIQ$`f~Y`g$m!~r0dH?UCRIWN8MQeTjJR%%6HRErO!_nUtf;;gY@6;(i_Sb?~&ZG zq34o{XZGaF%MI>O+$ZB1xLH*$8wLJR6@K)KSCt3eC%H?bzMase^jDjGRr&4(iu=vL zcRntjeIn22EL8YKmtIkB`g-v{8u@wsl?wmU&U4G(UL^i?XU{E%+@SD3N4>gwP4WNm z#ku9d|E4^@zqqEn_#yF(hc4c(%JlGg;hJD$TcceWg6*G1>dtD7y!q zRQT;t&v*P6;SVgnyxilr!k>yV9kII79NTq$`J?-k=J6+9TP_`_@YkMnZF$74;{QcF zL$;kGp1bO}0bApCW5!xnj$UZZI%hOv-7};0tcOM~*6FdX`~%^l7cTNQ z4i~w&tZCmQe)OylN&l~n5nV}Toj7ee)&Zg|>&dYKm(~{RAhD8linQOh3-?W--|*0C z{XpA=OFMH?gv79 z+@r#Rq2bcb#N9eHNAFDnF?!F+S@a$fh<4jKa zjhc_RL!j-$zggIedvI8YU5AHdw3?3!t8j;gMcA`-HLGFAKwE`>P*@NjAz|B~w0>wv zpgqDrBJ9N7G7x-k4-2txzd+-{WxqP?J0mQ7Yq+cz#2pqIqTd05&IxymK>LS#bRb+> z`=i6%C=m8-82@h$_vAn)g}ZYg+`)lP4VT?&Cxp9wpm&73Ss>yc92OoC?%`qGY2m&h zEX2MYL)%H=dUgY+3XBZ@=JCI4xO)WpXt?a&w0pQ)1==QD)|(#~?zlj>Zwt!~4fl+& z>b>Ez`yl!c3(bxV_nbhu2Lw7HTxLt)ZW`L18SZX@aGAq_yJ4V@g?mz<4~4sPpk2Z} zH4yILKzoMEK26xgs!{A^7vHJjjt+#&YJ2QGEi67g+&6^9xRb&X?AS37{xU2XAMVIN zW5eAw(6-@j9tivQh=1%K5&zS}-6jw&>pZcWb)LjOG;#p@-y1oA{l|u;=y^_{mht+hNh#!eRH4>hWoKVxElt-?vvtwO1QfO!aX(6iQ(=U2zNqQ`2KL&x9Z4n zrv}0u9f)*~2+N_L7FOa;3eBg5dwL-JWoV7PBjbOsaJLPFyKA7y;eIsGhr``H5bpFq zXN9{>AksN7EIvM5_GiI8G_1nDV?)FDgnL{d+;ajEenR}q?oq|r;s0RRjr*}cr2C;j z$e9x8BjN56NcNtX(wPui%g!Uyda_Yr=lg+8 zFOT#TUv&Iy2IC*w^fyK>b;gH(9cEfo=>bTe{6XGp!{6Wad=$LK!douAUb6+<^EejMgeHt#8qT z+A3O5YWmu#^-66~{Agvjz>ZIwmUgVJh@b9^nm#bKnJF>Fr?(L7_?nR_dXk^+l$x%- z$U#IwyNKNr|1}-Vg^f-VE5Y0o#?)71X)7MpOJUWi?&8-QeQ%#*|7+0Rx1KPkRPLya zFA0)FzTs~^tNzyhq;{CcGb~?g?`MqZgNq>vB0sM7Gs}LSY2?Xj=^3(fdM1d*Gh*jh zvEa2W^7|P;D;he_nC?JYd$)7k(?hCS!!tthc?QJWJjBRP{;!sv8SrZ@87ZvndOV1J z2B5E>0btcv#YPu?+{5)VU`EF?p!5Eok=^UU+#lxAeY0xjG+{^ocFt(q8PAV~owaSy z{7f^JowdzT6p?o-{kW%EE4ru1VYu>d_waJXJ1X5`@~z~5%*J(jl9uhFu$k0#^Cv7 zPmlF_1LNt_E^qVXc=4jk%1IMfPjMH_ukraa=7gRKA3khOJ8n@3dwl}wH?h+vJja$r zxMhJY3v5|n%ktU=WHqtVCp^cNMYv^wEemW}V9WBl2xK*}()81- zgv~>FjUFX_u=$(VJmh(f%};oa%|pKB*gS;i*gV*tWAhN6V|cKg`-OYW_faRlx_vL4 zKjZ55{ZbTHwfUc3dSx3=nS4b%O=I%GY4*lSpKzxScKTqa56;sxCf}TXZ>;nQcluzb z4|e+CJWXTr+3EMjN}q724|e)srw`84G^SigpJ$OV&mZvOMK`3pRd|gjO_W^1M~_mu zh(~1sK7U4yb6H^OF!_mG>UK_L{$ma~@;qFMXOg=P`D@^*w7@ zgfCwv{f!&%&Z7D5RIfB&Eb-oKX&n^U?HBrP-P$GGEpO<&AGJnn-FBNgM(-n(RTpZ{ z(pQ{+OEu%Ko7&^SoUYKWLQbEN^G&KS9JPz3AM&-rYm?N641JB%wqLU?pPqNM#-a9( zze(za77gp0>E~nbaM>2?$H+ZvxIF$(k32JAY(IPTz0t|{5r0_fZ8XDxRx^FA;WAy{ zlK3p2^+uJzNG@1VB)<_fcB{L#_-LSMSB0j(yzvBs=5pe0V^Q&;jeX0!}Nt?O^T#;h-T zzQ(LCdcMZ2FM7VltS>re+Z`4?f`?X$ZC=#|^ygcb6Q2$ZIv4j}v{Tb%`{*ebRpB|E z`u~pj-Z?6IwvQA!YU0p#eA4GE!XtyuMfyVkaXEd?928aIL*yhn>C=OHeDomF55}bt z4#g*Z&d|~+GD?4V;;Pfy-Wo zv9_KegUEvAtv7i#^cR=uGg5IJfiJ@K{t(<1f zKD|QvXNnoc`Nah*q$h%?z5cnsloP6}e){X12n#%yNtixG^XoaL6!c6H&%lg_Czbiv zPgwjLW#RET7MJ4cJs`Yk3KzeguL|Eh;~$dYp&7rPl;T%?5#BQKbfd(RaQM;9e(3a3%KvP%4F;rphyAEn2MS%!T;xBS*3mM~!v1sea~^>&;(Hw@ zVY?eB}4E{nFq1?jG`puk>kmDLvXF#25XPw!Zeip-qSX(A4@tzoAM0Q!4wH zr1;CDB`_@ULw`2xJG4qq{#l_P?Q`r$KJ+cB^utN}=aJv&gMU_}XZ^`9{LUZr!_WId z{P>;Uw|aKvnl^Yr~F>X{JhVglisXI zZ$S8!fAzX)`)9TDds?!0R@gf<_>ngz$ya%jzWv))^szywymkyf`5o_@ls~fH`B!ue zZ_riWEU)Mq67&}$zsFSZdH=D0TU@FBe?R57{Lz!%rTn*lWR?H;e;YmRuJ8CMzX9>3 zgnnK}?fl38Z14|=FPTpIIw_{pcmB)2Jj#PM!n2ir6S}rc^#?!sy*%=pv6L5*JoZ!D zGQPe@AG-EeQ+*MCt?$S#>LY&IGUAs#%C99=eI1#;51)pU+d(hKm5Ji;`htY%BN{($-Kx)@z9!)*lfT>! zpER+?=g+vN%`<&kjVDc<+vXoVs>bSHl`LcW*63?pyh#0QlP1>q{`;gSJnGk~`{K~E z?w1p`o`hRZu=NC6Pw_}Mu=NDzx*5}_XFb8z6Kp-f))VafG$ud6))Qt;+}qV)t@Pq6g_TTig{G)7Ob^#of_u=NC6Pw_}ku=NDzx*5}lX+6Q#6Kp-f z))QWbaVS|G>oi4m{YRI=fU*$t{i*~I<=i77BG``1Ilg7pf<8u0&#TU#v=_^V4tpQ&e-ymEhs_1ijTmk$muuAUa- zbDjCe4vfQ#A%(AX8u|@M<6r7EX5?<|qNf#3TR)9|?UIdBVT)GJpr7Wf??ROHZKJ;K zI{uquL_o9prQg7Ye(b-f)e$L)NV&TOvVE*6*tr@ZIWXrlb+JnxRQ&bnWCw;k}7vMBI&9bA$fqcS6jJpIlMV zFXG34tskRric4ssC)f6~*5IrZqQ7k`Z2AXcEx`v@LTB`iRSKsio{@1kZJ+K2>z9x3 zp&)D0?Q;7a{s<7!ApQ{;~bav4GXrw@oAuC&Uh_wkj2eN(| z{Sy`aB7XeW`Z2yIDxvlKLd)0qooM{;T0zqp`}<5y?nOU0Mh8C=BY>YsJiEk5z1A{W zzfTs7Ac~59k$(Kw`Z0DWDxtmQf3Em^@dc66zn?;+zgqmhP<*lYrZ>>XisH)ROT{I{?0C|##-(VLv7XNQT^YT&UusA1ZZ+dy61_UJ+w`Jn(&xpQHP>bI z@fEgy*A>?nUtTHw%f(lUtBbkCyz~^`KlD2wp7+-8E5%ho_0`>Kra!m1CSulClfJOH zskpf&$BI5(*6-%xtHmuVrQZ@KNzE@76boau6l)-h*1@rE$@<+IJABS>$M0@6(_auh zVhh`J)=KKK{JV;~i+eKqp$+;y#l6LSE2ZC8++W;Y+)>;WGcj0GSG3+9ZyoD*e{ow- zeRa2*>EBV@88PdtN&i~$_2L^9S#M5xtp5YWgT+HDp?|aZR`KnX&>t?oQ~dKv=#LcN zExxxBdPNGSCqeypC(Qk)_N?bkDSWLgoYtD-s_i2lwFrgj!*x2ePK;?UI4-@MROZ8sq#61+3@WB~ABw@vkdK{PH9+t5956|!s8CDxf zan&AD+@ms{qci-j48J>J#XUA*#XUabd2fbK$nc2?EAB}NEAA;7kJ>lV|9x4w-s`FZ zAIQR|W>{?t#XU0%SDQp}&&k3+l;IC&_#+wqXu^v7i7fn+8U9p;&&}|82`ldTS@;DR zzA(cVW%%NR6<6%TjHn&rV=wz9KkS45}wy^^^k&2;`>kKenTyW4kJPuyqC{A&9DUyt9+ z5BsB9a-}iti7{p?ujV`~X!xIO`}c}D0Y%sE8~%DPea_h2I?W+adYs9-RrOZot4;JZ zDq(!RkRD^$T6f49ep^?)d+fWRGlm&cCJO$+)!a>HijGO?6au?`G@>Zr#Up;Y0d`vO|AO)M4uIO^y^Mv$>jIc z^j(Pl`$T-`+!IQ_olBi7*JXH|MdA^)S%L!$VP zru_UFbEkr{Ncls2^uzy)D!n~B=ntp#psW5o9JMr$zcBUxksr{}PjhzUr@lBpq2u2- z;=_-Av)cOF|7fvyMMq!ge3y_vPT%=S{N-_1mr0*mp37hI9!_x@Ru?DX@LIbNLExOEzt;LJ|$zX@IIMwxIe2|IMg zC;H2;=fzryKC;Vn^e26u2NSwJ9is=_ZzH?7-;mFD4s*7sf7Yk=yMBsJeI1$jM|N>P zk=_nfeDa6*Dj%MYocZ~))Vof4rmMcoPx*3hG6%_Y>IVFArSw!k?f3mYvP=3}zuM3D z>;946r=vV4bbU5@M5$kOeDvdtPwM-Gu7#;TGN-G&#gDywC&Mp&7SczV^izD-Puusi z>V6;Dh5Zw{ewMydNniH4{@dP%>GMhYL0=xVm}e3EPT%@c-^kyCGCKKZeWBwY-$7qk zjgCnFn0eO4^HlXs^_Be1{jQI^UyeM5IkkEpLPwve@kZj?0r{enK4(MQ*uIoq~t_ z{-GW8hv{SN_xkaGdd?v2n>DK#uML;`AD4@|#gDlco-^n(G#M9X9|F(IVD5&`CCo8% zM$BW(Sh{(dIOj2DT;2Rlobwnn#%}&5&UuU(Z#RDv=RC%q&xO5Bob!Nvh9>#tGc^V8UK7T{^(oX6O67T|BuofWXGlU)%#5k&3vkN!OUx#E!#m$1I!gwh(EwTU_+~Ts+!J_!m~WOWQs_w@!Y(4c17J zXc#e$LrjmaL}2Cc4s>pSG0VE40-_S6$)Vt8?Czp8ULfRo`m5(xYu7e%@8IHAs(l-`dH) z^1sJ}?D_H7=XV{pBM+C0TF5WXu4%vPIQuN09}ms@3He+!p3TNQzs&gfl?ScO6j6KTQcKTd6+X>Be z)#t)NGsZUa^kHZ5%AdEZ(Ldx@LTJC@D}Uay4ovShMeggp;&b89pYzeEx0F$SE*ySn z*qme8e0&NA_r5=+r{8I{*1g{=ddJRtRd#YNTz__=KlK(peJ-5s%x&{oaL|mMH!kzu zcJ{Qe?d8}BUtF*1{Ykr|KRe?atZiqkiR&m&Xf8u&O^lu9>AO68T1ol%Q+eUz>Rp}+ ze|2_pE?j?hqQA>C?zMD|n9DP_4VvvV#y0b;N;_#s_Gc$L+fJVgXFF{VexC)GV{9|e zsP+B0oCqih=GsWacO4Vuf-Smi06zqg$~i;gI_H z$m(?lnt9mMxZ+9Y&W#>*Z_>?s8gph^6OSKvZyD5`vEL*G(@2S}RHui{i zI$)<`Ogdnv19m!1eE)sYS>ZLd{)Af=`I%$OCEWUhEf;LLO>DUemt3&rf|2#L`~K^J ze?ES2daoC8H8FL`JYe;0!O2ByMg3rYztvxlL2fZOCcYx$GQHlbTA|%IaX}{~?MF=r zsV67>nV#>T*B8BGKk8P^VforWZ&N2664cr=o%K8F*MVj2j8o#!5wEyfTEhc0y}5s#`o?Pctlpt-Z+jx8k(%|> zcqZ|&pA#*-H=g7x1*h-zMZ~860hh~k`S|ZnF#qpKA#h5TVyRq=)gPr;lzey5lTu<% z2Rl0s443iN4T~XZ+&msAu_EL_#^#C_McCAr)0c27Bdn)I2z5zqJilAeRt z=uAJCo9mP7nd_h1mD`)=!!IA&C&_yBvOCMS&3#MK=iu+$S&n$mi3uP0#=FYT?=>~) z{P2Xk%G>^;^AsPt`mXY~r^?1Li|#7VzvrryC-=Vf?(*wfU7yY}-2Fp$mm7XY=cWC$ zyt`a)rq0KDaQ@xpokMiaR#)JURcFPmKJM=FqUt=har@m}KK&8JJ@D+iI?gZjnT0&Z zeP$upXBL8eW+B*T7J_|dA=qaYf^(g7TXGw7+w(lh^D587Ja315P3PNPJ?-Z554))uxG_7jEw=UKOvJyVoF zbEe%RUWQ)bNR1>bynFK3vMchRc9_fHElt;L3QTh z<LKxKi5?~ zS!euL%Rg)&xo6J5wcO)a>G`Y3hiz|{Zr7cCTY38l3g3A8E#-`%JEXe3Y^_w7&LR(|Q%3Lp5)ZRNT*D*O%OZ!M<|lH9Ay8_NU#N%i*l1vj?q=hLC5 z>+O|G7nIZIi|6697nGB?QQT|STUajpne5&2oQ37-_bUCHpSq)b-;X8to73+o51g&I zC$D!)`OnoEhhxvarM%#);{R3Djp<(%&!VL_m)Cw;;Ri)s`uBSk{{6_G7q1ik?pZgN zQ-30!kFR@6dC@PFKU2f5IiFSj+#2<&yHI{U72!7zmd-zky0OF8l+GpNZYuY@Nx0{k zTgv;Za{-?!Z!Nd~royjWaBJD~pk&>CL!>iY>72dJZRMXHQTSKq-&CGESNywAzpcFR zk2>SVPptx4zMLJxPJvzt!2D!pe-Dg*RtrF<4WY9R*A4&bsa2s?Gpo1< zr1j%H;jR&gGX-g}YSlWsB)=xLFnYpWGZ1GCvKn4z9meoctS9G`LC!j)b&4jdM~iY` z{ImCz&ML&E9nG19q_a`Dobj@0xWs2QG`mpa(w^BcT-rZAGm+CA>vaya4|QhYX5rFC z!o^DB)7m9n+QYcCpOH&Dca3m24h@(;vqm7kcQ*=6Xnk)QnlSHYlhA9%o`MXuP11|Y+Vz}hP zkFBHR(7Df55d5Sr5N9US_; zDcnJ!Au|9*2Rbg?)dKAtF8e8O7w*u|7LQfX=wV+a5oOLNw`Oa#z%*HYG{mmN@$GB$%5|)my_qlggYfP#vKtFj}4c( z3Vh9QRwnul4upU6&=mbR0djb_#|2^@)#yM6h07k@xZ8yV=)YH3ux+^S4GYkB&p>;G zyL)K7Pqx9N9>yJ?`!!u8Aw=2%cqS^UawwS7!j@}3AE6PDnP4J&Yu4J+Op?iQgT`fVQC3<-CeK)AyLG5>8;Al$bE zIyhYRL4beT(DsCIw-0ngxO;?#_(z5&%n&&w(AME@8A$rGJGaj8M89{273jZN{Gi0~5v;Z6#v%qu)R5boOoy*=Fh0v#Ie4uQ&W zj||Or4VN9x;d@VLi2uzY8M#A3BKmC;|LC_%{7(q?;6S^DyJMik!aX9SqQ};e^7wEM z41{|~AoMvrQb#`fNg#i}_(%Q@@qa+LM}}17?;4VkyMLredgB6-&V)el?GgyN2gg5h zcZ`4Z9Umz{=fq0%eS4$^{m?-0mx0jxfIzqtBNlW{$Ryrw5sF@i1wv2W!#abQw-{#- z_oVk(PxXG~{lNQm^>}i=F1;-V1mZox8$j=4-mILL5PP1a_XfMdXg?d?$Mog&Uia4> z;d;9Bj2u{L(vw2_+EaM7!~q{~n0kE^F zU(NHyU!R$XZ&^jhw(9Dd7W|&8^L$|9cLkAWh|VbdMVjYo|DMIqBfp^Yl;;e?UqpF` z|BDe9Kl;G`#W{Yg)L&WzkJ%1icFb0)KjV@7s{Q|(;@4+3{%h1G^K)k7hEa>@Z(I`jr+MV) zvq8*Tru;mw8~w;%^i%%VerhRn?1R2;`1`wVj7;^I2fXAt7iBrTa;Z1GD>scFm&ZI} zj3b?k<}nXwj2|$r5Mx#8tVFQSO`J5b#`Jrb-a!q5@yRxQhCaq49>1olIODz{2r1N$Ze?Tjx8UJ;B+W$@+jcQ$_AMN(_iBMfU zW4Nrp`h<0gOHYgM7@lgieD&um1?1=Pk>&Ovak#9D)7N;!X3?I+dhQpVB6a$ji_6`j z-ts&?>C=j$PoJy1#eYvL{@VEq)`dicyOby&WAc)>BV4*?b*84ZA)I>{E-=q>auCdO zf^@*j3Gr-@!o{Qaf_P}}!|!uC=_8@u@E%2{mCudkP0kyhK7J%hYrRcX8wqcw;DJcuc1Zt2piVwf&?on|U8| z9_Y{0^S(Y$RPR^(->vAn6U9Fzid5&9@_yz#P`!U?VdEz~-oMPfHC_7Fe(DwHiIP6? zbtf%}(ER+;crzvcb4kBwNml;frPAK9?SBqoaVb9UGvw9hmHxcC*LdG;o8|(mE-TiG z{vQv5-(S=&-3yUAOLeX(*!)i~y)oum=`2&y z$>EQj#Rb>t+?di~eb(Yd3)+};e12(;&7<-XKiE7?{B(>Lp{Me^#^xtH z$L1&Ba%>*Lb8H^+Eyw0@K4Xh{rc54Ca&EBlus7yji?(Ru0h@pPxP{3UmC@}PUYPDd zg)fY`pDN#?VEjSnbLM!;+Y`e3IIcKYBvO=I%S>G#G;pKzxS zcKTqa56;sByL_o9#tK*Yc4G06j`^J?^`SQwKjmnCu+wZ}^SIuk4;cPAv)AZ_%}@D` z9wk}e@iDIM=S+^_;XXnx`APasynNX`ss0lV<{lBxJy~4lrzn4%4rP~P;+n^p{4q}x z=RDx`2FhOZlMgx0c^udE9J`vhD3}AOv!lVZD%GNkHf4+Nyq@^4+nkJL`MZ+vs!gBT zqF}y}U(^1wr8PI86@TqEtG;2^j_)^pwdLQ?wDIWy)wdn7)Xv4F-KjRy+VPF2*1D*j z>1#bH^XBxGw`Qd+@kzfq=S|-Ub^45zZJK(=f;oLfbf&L4YlEv11HSq773}oc5qoo@ zR+rm&)}L?a;i<<72B@9sGhc1n7>8l*8`nBjJ~@5n)NPe0`g2}6eRk~LHpU5RYG?Y| zv3mP<3IkgDVkSP{6wN)a-Opw^eeAnMPr9!S8v2h8+U_wDk**eB-PEGG{OS4Moq)L3 zi=X>DtUr5Y?-k=->1s)Lu;nu*#JJ9i=9pVhsG$yVQJI?D!q!G_A^G;d8#YDEw%i7&uhX(t<&dBS@x}F9ElM+dR^kPBIOU? z+>?UF*bx_ThbC0VKPE;~j;O-IX*KDb7|X8QN`FY=q&}1Xq^~n)-f8sN9h{LG(f8!#3^k+xpxdc>Klg^INS5+L{EuJ>Itlu@UW3qQ` zj`C?$I=dlzSL43u?6~Y*mHVPwUZgG==^yRa}F) z4w25PkHUJ(2=AE1-8sXf6IMDZOYy%s9ROF<6&&y;d*8(ony1`<1>6h zh9@U1S$f(EpOo>OlHvDd`1A~)QDHRA`?}GjuRd_2qC+v7F!;g$MV zWdAEor^)|v(={J=dtYM;rrWLg7^h&Ygw}uWxdlyq`t#T6k{&)%?wxLLJ^p+6`_uQ8 z(yh1MR~o-R{>U({bdKxA)mRJuR zf<5=(Umkwmfld#5bq*=%ciMx0aGWu~drADF%O3GZ+qi2)qED;h-1!^hW1s!3@!~6sbB06D6n|*=Ri4PZvMMjp@w>dqf69A6ioYbqUmo&@ zRq2Hj@z+cI^*PC$8l`iGP2Vs8_C>2R+4n+a-@>Gi^Oy2KKj*LVAOBV56O95kEimj_vm}PDqro{H=%32)Kihu zWiR{qkluPRI}-cg=Un2)Q;&et$M5LS|1K5(UBz>e{;yK{qRUU44}0#a z?0H@IpUcw69{W9(ivGx-(6uPd@qIj`#tY3`By>{B(k%0KTR$sLJ(@N=&5YoiYbd7^Xf zGWPu;JI5J)|CIUZ7pdu+r#8OMZ5|WnHgA#S)#o^Gk=k7NhZdq!arO)OTZFyH<9^Kj z$p3xtZxOWuI`V73&gp(Wqx1bheCp4Kie)5Z-Z_6yAS8*x7><5NE8dHJ#$Pmgsi=Fzx=`dt}!F#nv{H6Auh{q1!hwfO0m zHvgoFHGX<2eaPZb|83o`>vN>(6E=Q&DShBNQ~Lh zhjA|B#fy|b@T(78ah)fG=h*q9aODr!`2%+Th(~!Mo*FxU2zUO7C(W&B?=6Y`^z%D^ zz|J4A^9Stw5mugnoj+jb4_IR;O5gcIxbp|>`~f?Ez|NBAH{^Xdk73UAw`2%+TfSo_W${(=v2kiU-JAc5=AF%TW?EC>cf56V4CU*WP zT=@fb{(zl7;!&Q6r^e17!ks_jQU2tZaUbUo*!cr?{(zl7!pa}8^9Stw0Xu)d&L6Pz z2kiU-JAc5=pC)$xC|vmicK(2!KjKlIh^NNRAHtnK;!*zOn0W~3!?U}I{fzRwg}%^K8w-J#HS?VV`Gf9>UGza`bt&<{{iXw#Db!nulPpZUx)-+0)t+uG@jA6H|`!rmNPuAgXNAV9NztF4%Ix zmPH=s*m9lc$OT(2*mA`qxnRo$TQ1mg!Ink2rXDF4%I#Be`J91zRrIa>15G zS?AbtT{n;mwp_5~ibrz6mJ7CAu;qf0MVcNXcD?d_MEInMceZ(Q%)A2EpV6ag%za(g zw;Iz9u`HesVATiRvrTMSgy-0D3AbFZ<$`(6paa-)!IrD~Ah}I!S%l}14hwp_5~sy;|=6I&MHIksHFEf;LLV9NztE*QBQ z_kVq~tab4X&c(M1?Qv$lGd5pe^a|zlL8)g_eayt@X)(i{`1D_}Ubef6zk2u;yN=J; zNLO%i^|X*VApUDQE3GttpU|FGcT4-_kUr^Y-ou*l?akL+PYWt5vMir@56s`!g>{|! zv(~q^p44;^A5KQ~w{DMCdc3FBPxAt*Na66!%;oso$5``bF&?~Kgh@kjSpRLJH)*?| z^KC_c0N?m%Yx)k+%dko6Ns)EUv#>d-yWa0d`NPx>5-#Ow`Z2NkazZt8p{GR}o%iQqY2Je8B`E*4%;LW_R$wwWV^Ub5{NvnuR=+F% z-V>=G6qsvR{DuJHf{y;IfMsrmF03D#Aav}1d(7&XltTF9UeM+E?=P5naC#L=eXr@n z=Opbj+f?Qi)O6&Z9cypj8?z_Q3QYfEPfHx6PyS7f*k`5L6`FIvof2Id?fjcoFf-%q z2$A(WH1dy=$Thb@96aB43h4AXYn-_mr-v0vVW)T^?U?A?zh_74$A`-m{nG6_)%LT- zo|zZAu)fwG`#B4}&YgPKEyvfqiVvsgpZSrdtA53#oESMx0HCY_VAzYu->7p8c-$1Ev!0jSG|Q@B4{ zQPD5r$G_<0FDG>?E}`{W0_RWjENzXED?arvo3)YRH|fmlxGd&g%u3XKioN4$GbS+U zQ$Lv#a%n|Hzlb0IwSLU|P+US2J-ODed6xFLM6LC!XLX3sq%-g1x|rK>RU)%KU2DIs zAG1oXsi^1|@#DYNk69s#OK74e*ZS47K2mU62M#j5c^3Bsv9;;UDY-dLp^2Vc>&Hpj-%KI;JG{cC=Vxg{>P`Q4oKE$P*!_-m z_Usv;JprsACwV_ye2u7~8L@f7)%ty-;56_0YNr3a7}r@`lhb|@c&*>!I8p5TE2V$G z_(AbVI?wya;NxAw`@;JDbI^Ve=YglI^^R~l^~=u!hX)QW%YUNyQSqdL(m(H6F4LbZ zeq8*Eg3^C)`o9!EiLtgPg37!T=J_!f#rpj)Xg|>yR^%VCJN0|4cs#`oLb{siKU4fH zR?*eh@fEawKaVxr&(`GjyQHQ+Tl}(ET09dx$Hk9#;j!UD=lSwf(0*C`G*DbEQt#An zY4LQ5o9OY^l>fWpUt{#4zNS>r@}DdIt@wRSj<=z%n*RG(>-d`(v0xt=_DnfB?TKUk zejT)Bj2LpYh~25*Z(=NnxW1a{J3QhgnE&^r5dFU zhh0**(s^^nqxYxes$DC)_RaXmCamx>3m=z-k55>#4$SadGJe{u*6nQxOYRW~EB%QH zOHb~9=Y#HJg&&oLbMHCL_hk6EgvI~fESx&$GCd_>$vrh;@t>B3pPq%Ek%iN`vuthl!(thl#lJa=UH&J5p`u;SjEu;SjI z@q8`AU(fJ25?0)Y5?0)ARXkAgxrR;u>Ot?EW5^6L&ob;ihpZW&yHj)DI_I>#(sa?f zuQ`woUy+;@h5xPewESjz{e`bcuN8$i(_ax^fBD* zANs7Sl|L=MB@|!n_o6r_=;-e`ybF@P^?oc*r1(V_&oD00pGb4E@ZXr|PZR_2#2iM` z*QxwYpE+6BFaJX+zWuY}Tb(h4?)V-weX}b5qm@3+AM}YfQ`hSg|Frl@#{X;@Tj2hW zE9Ol8vY%^6Qr=|7!o_^aX++`GbQWdA0wcG=74AaYg65i1f+N_va#^X&sYu9yS*M4H1nw(Xyr(wD!C_}cF?r<4BJ z$X`YdW(9pzpmFhwc6`hjoSW7_N9f zzod_UpNf7`^n+plZk0crH0PE31%2dyB9)K*q|g0Q`(-cblisXIZ|{h>e~K=9kdObI z=(!pkJ+W^NJRzfFE9rfr%1_OyETT`0_)nxh9r#6;J)CoI|CpeePX6r~{(6q{+-i=k z>|Y*qrN1QUyF9ciD}M3^y7FsD$}jx;1%3aJhyJrd>Ry#UoWxK0?63Zjc6|KsFAsjo z-siZJ9=4*t<0B6`_COz>(J8Ne!%rOYgZrQR#eVKDmxuC8&jaWWrSg3&?K?^So9^{h$EH&sj|@NMIOI`vyPf#Or+%VS@sh?_O7yQtNCHdIToNztQ#s_vj2eK-#?`jP`zdXKlb52DQeZcu1{3;4}ImQ z|5fz;gMLnoM^V4XFQtb({GX`&hc@VM4L|mAKTuzEKb=?keLtO-?x%TCYqku2S?pOXA_eA^@Xz46@D{e++A z+wtM=@A~n8dW{3$2WwRk__mdfE7Igc@O;mqH}Igc@O*v#L=Igc@O&&=P%IghdD31edu=RDv!vv(@JpCWnJ z#5s@SdS0dTka?BH%(ZiV8f(6yc$zrpG1fdo@i%eKW32gs;&0-d$Cx~{&P|;2fTP;R z^N24rUCsF%%;T$P!NnY%R!<8~Zt$M?b?(L6o36Qf>kuVf&G?*!k?*G4q-!6bjZ)n1 zR`2w+kC484gWehtJY3dKd*N=L!iXPQx8ko&AChLQ4JW7?3G8Ws9ba?lc-CksPOjTwh4B+X)L#GOFK-L30qI|uZ)k_>*`aVfH-!1lH_y5mUN6IHD~f-^Dx8|I zvOfR+>GWhq6d!Gw-^IJf{^b#-whJL6QrlH+4ceag=T4W~#SAO0tN}smC zh-gd9t?pXdmiVo&{Mfr@N}6|<=&CE{rTC<;^yKGVuliQgr7vx*5wXh9eObI4N5s3b z=u%%>60*X-$AjYaeAwrAT_l?1;c`(6`Ni4U?RVYt%TDij*Fp318(I_d{5B6bvLMpb zvn}q;R`c0{TwUVI>wQH?$xvPM%x+*@@1!bMc}@9d_CtTxhPh#@J?_RcR;ff&T1_ z{i)k_jvu$U!%k?nt*cnv3uBvk`mnQj<0Fh=-`Rl-ElyEg#!e9RCn@;)mA6#4!)J_j^UUT6V2@@Arz{vGZP)oqv8AcA~%S zym9_E9d_onL9?C4&Ks9`Z##Qh*!FVlgfFgF_5P$?(qDPTH(1-wSf|}#Cp6mzt%0s%{;5pPTGgh*i!Z~@XwS6mjI!yl6Pj&<*2F4L@%+8*JT`86x8uXi zc6rifryYpP#r?t${av1fH|lNMHfXlfSa!;O*;y2v9d!PT`{UUwO!(LC`>zLl){wDy zR^IOK=+kHoXptsYU(YqdWn1rizxgc;Z(OM#P~T4S`<=!)TB37`T>n>|=WzQTLZ80! z93JO+?tB^}fZ9 z{_WIRF6bH0+K#$qd$0|f>z1+XtZn8_lLe87|IOd!cfY=VZgIcbPUej;c8-hvd&h6L z_@Q%Mo;u6Lc{0H0VpFcy`{okbD#7>{^99tIQmIbyfuw{WQ%YEm_YGS8Pc#bWLaLWQ) z7TB`D$nseqlr?+sb52N($xrjBu4|8_<;%X6%F*Kq-oIZw+RNWO*yVBuo2QA*gKjxC zKjAqx590tih9^Ixz!)B%10x%Co=lF3YaX!6+C1o-;|22{PIZ!S@SNGJr#&9HFC5nx z{T;W7oetqn2b{+RV+-RXPN#{9YaV0r$NWv4^MJWGDO2;Sd>@W)M4oE;V&J*LEYf(s zrFT8!e7#3f)HmsO3+-ZJycC zj6W!5n`{*0G3@Zb)jX4-bEHP6F2HB`jOA=pt!nD)Oa|>euxYis0ppy~l=$=wYi9&f z)Rp&LU_Yzjholiv=uojx^2v4W%`iO1+(!@`n#99DE~l@Z5mHe4dtC*sKYJ%^UCq$Z zz6PD?Yj20`QY^|<)LQ=b)u{}Lp=D}K*UkmINNOK+?=7&R_}-gfMfCj4h0w1p0sF|G z?8JqlXnE%W=|}$V7qi_sccBcd@u2j6Zr5K{=D#Iq>1ufmS{;8vI?YCU72TbpMTrTV9y#okCe_SrpyJ9xlkwte36CFxTPoDVej@ks*fE3W3FzsbH3D>xY zu@poGPvc~0Wd95C_dIUt@PiC;WJ6Bf_#48JME z)u>~VwRILgGQ(AEOgtK8RQk*#NY9`6XHKhaADyu5W$veK**(L|*(AK@Cq3n{|21fD zo^#Ltb+v>KAGWCE88;yEQr}UWrAb~>7MzV8149uPm!}~vbt@lRA@5kPW0$(w*E%56 zNxyTQQRr5sj}GQ*%K3Z8Ys&vy`)y}``L!bYE7d2moh$84`bd29%d2^(^#gjGeYX@JTgNFdjh$*95&`TDta)0RS1dno67jRw z^vv{qj6de1w#Q!Kzozo@d=s6$t!G9(b^O|%TE6Cu5&y_oAB=pSAuq%)u1NpFG%w2j z!Ev?+WA61{%ooO+QR#oMl5cxH*s#Zbo=eEbkA93PJ{P}hGkg9m{MUt_{sm@0JQwUGIztT*-C&o9b^_%7;47_4fGPUAg!#jbG$5eG{d> zWtp?o=z~jbSiV2JckRG|-)`eMv+H&)-?e$0*ZbA-UN9au?2+Kn-nB(hFb-O-ai+8_@3Z<#rw(f?Q6_;fO*_z_jd_tHnH_r zn$jO^{lV5>Jkno0(qBB%8EpN*)<4I5yI6m)_4hXo`h%@M*m>T>)}L_aKiK+%t-pAr zzj&m-c%(nr`h%^1j`^;#{$T45cK(B{KiK*=vGph1`h%@M*!qh{`in>Ui%0r{tv}fM z=h)xG)ETh#2U~xz^#@!3Cbs^BTYs?i2U~yfNPqE2fAL6vu=NL9{~R;-5q-F~o7nuG z9|;fNsp<<6hR1t5<`}u&3v%(I8grj|??~=nWBOE_&iONHY+2O#99x#}1@9?oxrAFT z*mA*^3$|Ra<$^7Xx|(Clbsa`7*mA*^3$|Ra<$^62Y`I{|qK@U*a$Wb33$|Ra<$^62 zY`I{|1zRrIvZxz5wp`a414hMiyzhFT{1sb&_!IBlF~V(!}qy z>(BIQHRc|1-Q(Ud=ALpo+-qRU+OnG1vQ#&u1K4uGmJ7CAu;qd+7i_tdwdFRk<*IH- zF4%IxmJ7CAu;qd+7i_tdwdFRk<*IH-F4%IxmJ7CAu;qd+7i_tdwdFRk<*IH-F4%Ix zmJ7CAu;qd+7mQp^FI}_xf-K^qJw+RY_cw1sz_#KIse7MW{H8)`}J- zZBG1rYmlbmNls5l8<0YR-h!_u{>4v9^tI8Z)Wv94XZjnZeL9)htezCU7ig~`4_W>7 zb68EJOAAn4?(c$*{_NtpdvNI@ zAH@M3`Fq6rq`hOc#!i9xR^WRE8PL(69Y}YrdS0kMvC=&LYyJ0*mB0I@)gFYRe`op! zL@(Ne=!x4edgQqHzKid?w*ET*6pAkOGl`D=>@iyJq{-KYIIRCcu~O%dLMOEH?eWI= zA;bE!i|YO%oeTXpDSG0+)}MVi4~_V`(7!W%oxgf`B1ild9C$3hxlidZh;czje|9-N zih$~B(%A=F>TYq*SJ+h(>Xr;YGWD^u;tf#h>Fmpv&-n|k-|xd%;~8*;ne!E59p~C75yT9{MY)ii>l%h>ixp% z{Lwz4qVdmt!e#w9-F3Qx(tnfA`LEOCbl0hgx?|kyqtd>*)=%flii&;_KmKd|J`^X! zib`m2`T0Jh(Djt4_0##TP;@ov>|^@L;@sjRiM&hP@4Kb7^wv-3%ZiGA5kLNG{mw1U ztKt&cTRx}5UL;cbSD$RHpY|E88G6&%sdPs4MDeU*_4D3oF9YlMnV@~H__Pve5u3Zb z)-T^jmGEZzI$suwt}&JC^3^`0RbV*1>FiYc#pv159-}<3_6cnL*r#=N@%adet2HM6 zI`!l1TjKf}Qvu88^xCUU40n8ku6;&phTe2`D!n{*LsdT<<03o_tsnce&WjUt)72t& zr+%D&OI%;g^f}vhzKP);RAK9{eMW1B-gI^q2_VxLU;S z)KBN@CTjX?rhjYf5_)@0j%U3t>!*E2Ylhx*b}Id9?1rj6MtL6`64?5&PwQQrB*)bv zcBg)v-Ai0w&Ga4ac3n>jAa%WeBfW%aIq8k!xzGxKZ3-9mSPwz#rEsNFwVqN4?{=rd zyWZ*Z?ljgLP?`)$;Yw#{!ji>1%IS>A!nexsHVG@8?GsiyJ7he1UapoxMrYxAPD$2o zDO~C7m9Wy;JLBIsVWm@M;o~yAe}<`JDn->hW7Qv}LpeK7RBn>{wiGV>_6#4Eu;NZk zSo%j_a$MqnM~2^-VYLwy_uVO6agWJ(j?M6K89qK?#XT`$#hsGzoRr~{Gki+IihEkZ ziu?YINAG9p|A8!gY8LmbEbg?7NAE_(JtqtQP!{*2S=^6jJgp3WBEz3dSUR7Vuyp=R z#xoReU|d@J&#jf{i~}ou>0|#R)!rA3^J;&gbrXO3i*esaiq8DHGvyce?P)3fJCl9n z3I4&wov9VbetD+9CMCt27WsEp`Gp_-E=+xN?C12ZijIEl?<4y_gqxCWVA&*X0qqP58YZqW8CBKP31kbe)yL2xSza)QT7xjuL;ai(sk|kNk3QRl zU-d=x@5xmEr2k)|d{y7@v!9smU-9F2ePdn_`)yswJ1nI~eVY*ULCJq!l(*vReP;i~ zsn4AK&8T0V=TrM1sb(uP&xiDjF7*-A^N>{kYd`iD*%{++4EgK_M*W@_`L}8K+3$<` z#C~PygP;02FSs@dI{RapuJSmqi~0bazJi>-OY$qf(C@iOkNO?Kk-neD_WS)aGNs4; zutPA``+dz!{iviL-^3}t?g#Qm{1#?@^Uw<^Y(-n6Yg0G;z*j z%ow!!n>gn&X6)GfO`P)>Gv;glCeC?`J=ewie~}l)IS<(Tf5GGZzjB=OIIib2I6s}f z=QB7z8T$s4hvsSGoX40vG=CH4JjUdq`I|WBF(wbq-^4i&IBuiV+u{n_9H-MbIIUD& zP5M9f|6-Jzw{|?ITm1L5;xD!Hd&2$4{$DHai{o2uWqoz8luq8q^(yxNnwh>8iF{3b zWy~Ut^e&d4wz=*C+RCEqTap-jOZZzCFZ+Mxqf??QJ-#)GKQq-4_1&xOKY*yIt*8CA zR=)q&%<9{pwr1!4U-)U;ubI;0-S%?!|C$+nuw1l7B)@KpbngE}dbAb%-b&F{@b`Fx zd*1-;a~v8N$iwC8u70scN&8*L9#{FCWoTYo?ESBJ&KdLkHV>H8>A^|qw|dV(NCZ(6 zS6&Y*TKXod`Bsc_JEgfleRKWUiO#kYU2{8a4`m3= zb{gZF2fV88Pi*YZPV}>#*pu67dkE)eJB^{62X|H3$#+D5cE+9tZ9BdH7k2P%0nN5~ z|1W69*k+zS>@1pX#ZafZ^i=NsynXfifBBnfMeh~w|AoHngGG5hvvg_4{$Kc^VRMd& z(^c&e2JT&+GRv}UC2zH6`$g~ASHJ&Pe|Dlj^%gz7|CjB|ZS$UA(2Sio*x$FEJuPf| zId;Mq*Qj5*apqzX^d^eCwx`f8D_o=JGK9p^wj=eE>GKopL%6Gjb*3o zUzK*EPk-eJkLzvNmG(ulozQF>v?g}mtm^XQdETF$=wI8ZeXeY0r)}Ej30l@P&+eCHr}nu*=lFG$r|rQuXf97<;+O~g_q6j3F;MI8Y}y z_M~vpxh_xbbLH~%UR5{FUtAtJ@#o1-u=l*mF?N!c>u{tocE5!ijZq%;lsTqvbpLTr zrhTix!-v&)y@5Z9Hna8xdVbjxJpWR^YL1cR{ep7*wfh#wem*}>`%Qr_n=Smz(i)E+ z_x(1{Nt3_dPAA96aynqAgKoy>Onb7;bJ^@CBTtqlxnOjrKi4{gt!ES8IR8f}9|+H} z^TFvj&(E3m{dWF8vsC#*e{_zK<$b8gfA3Y5=C z@OYmn>7c!&atyzDz^;4Pd*l3{qb4N?R3E8E%o2| z(8Saw^B7Yf%-_U0k1^$F{wB_Oj43w@zjZyW%R=( z5P$xT$ol~q-&BvC=wS8YsfEg!oda4t$?N!?Yw@(c%XH#vEg>Pg{A@%%^w-6#f_1AW zCQ{Z33E{N$j@PuG z-Av>&J%LO*!0&%?hI6v zlwOlQB&}ww7>c50UdP|O7!u>;oW#PlZpvNe*+VCPv=%Wybv5H}5v8OOXQkX~)f|sn z|1E+#w2Hfa%vf?>Sw3qK+53xY2!E{&_)qdFZ}tmgy(3rD&!iui_|P@Nvn@dpS9Jqu zy4E5xavN74bk-7%N+a*8|4za28RJHduI@_H+P)(St!9JX*ZtF6YgZ-I){mX!cCP}d z@6l997xMA%5wn(tDk%Pk^`Z}r{PkMM4N@sGE1|Z3?}$^!9~3@aPM?*AtQO?zOaHwi z_HHqMfon*tL>!(_o&IjImU7RE&dI!9tw;Lg8~di!`L}7B149y)&q_+~T-KL-*7l4g zLUnCfxsK0DNY*Fqm%>M+IznxMPW|oJS1tU__^br&iJ4eqg2u|$o)+uv>iGYMy*B~3 ztEkey&%L<`1PGAG41o*~LINa^0Ab9{Ndg1`nF5F+gEBdRhzz3kQH%!E7Sza~*kZa> zKy7V%P=W5YTkTdEIw~pxMrCp&Q9wj!{NCSM`#rnvzBgQ?{hRLZq4MO^TeVizTC1w| z-c_}0uiG!{_J9-tA9NWkKmEF89^5rtATq0f33j(5x6h%zggtpTHxCXe0zcK2s|Rneyhm; zc7b`vLaU*}oqA)j`rzg5F`FjIr{>UPK zRE6)|WMuefV{UH0Z8;bF;k;x1d5iuJU372zq6@%N`^SCm9?fwQ-+t&l?E@FAoOkOU z{rx=??iNqtTWf(+rUTk!;|@0HgSJ{ z)(L;gA|HLw!5G~VTjyFoxUqGc+F7p{=;@xo9mBHBX|GX?rHCJ%@dLTrCE2kfBV6nHtl@)ZQpN?)|v*M!%w@X zz02$%|M3rZwSTY+_~ib_RR7I0Gk?O>ceVfaKkg5n^IJb?|Lp090{`~PyV@tT zej51QPv6x({K}q?d&U{}wDtnNPVQ+y03URb?Es) z`^zI~pCkGY6aSvOKN9#<>HM3g9}m1-`S&k-BJdNcXWQGJ3Vh!+ceTg9;_1M5$d(6s zTOs!e@xSc$#4l1kBlk|Z8wkJT>-UE(ldrnF-Fs`|y=2Q*W~SWRq}yXx(G!nX{^|!aUpyy&{u7?5{clwM1K&uzz4Dh{`LmGqa>+g8WNew*f4}lKyn}X|+P}T{KYm-b^B2`_ zmtUFVcB2p7-Ttt~@U44H=zrgC_qOL>Oa9dUk85oI{I3!psdm`v_m4;ZgBmkus4w8( zX!m>D?|ntu^2Tr8)80?*PyU&+bZve($Li6_|HjPhiwD&XojqyWIsF%?-R_!|_*Uus zip}$WxcbK1+U32``FosyM>n5!WSMVF*_ZrbMBG<@bKC9hyYI?6@A}>y1F-9-9_CZ! zdo7-|{&sC-%%V9_h3`!KX6g`yxJT-r`5X_fXM|P(WA*G|HPEM+FXpI+r*)tHjTE9z z)-ri&ixt4ASPAqgUPq`$zpR$}6t64P6RQpR)=weOV zv-{4#0M zuXt-|LcEzYIa2ZQ(uA|F$4C>-h@K!#SYc017pCJwA zDBenFH^oN@%~HInv|+E1c{qA(CrwzN>?uw96`vTh?UwLnp~sQZ4N6it+M++(kkMDxN8{rQ+R%pwAW}-b0$9*K{HHHPbb#W6s}PrvW)Vna`&Q(p+GeZA| zdM@-TpXb9!#n0v&X!AGYzL3Gr3HQ!?u8dHvO+Kfa`utDR&$eFf@7%R{e(@ARE>A1+ zu|Ly2VTbe6hcwTyeC`lqCo#_*Vrn3+>xW}x)K|89Z6_sYHKb54+=KboWS8@YYxm*k zu1AUx!guYBdcT^4%}7(8dwZrYi{~Nym+9Ju&U2Dy zoy&9nBh%EsH15YdW3R00r#{llLw>7g2jP;=eYs!%72;ej-?Z?oBu#zjM|w=O=hSGg zI=xZM3%G}vzOC>t^%qhFmKqbK}8I{MZ0rJ943^r@Poq<+#f^y8c_@~4D8OXHg! z(o?JSMB$Q7{dIaOZ5aC!=HE`~e*M3)svmvXWBQoxhRc*UN;K?)?*7R%zOb*0=Lvfo z%PYE|>SK13F5hR_4PMht)8ueUVoFdmD0n7nVK~DeL44N#t`9H{r^H0lfFv-Kc)Y?C-wVszWFK7 z4?^?1So_lE-Jvn>0?otwFk|g=$&YFJ%r5bnr{5)>%%450#*-&~zso;vY>f|G@a=-X z#^c6*tINOo;T2uXzMyq5<{c#OYwbUq_t3_?^M)TD-v1d}XTQI+Uv2A8zV!!Nf3Woj zTmR%w{gWs42U~w|sk5=)m!mV-`h%@M*!qL5e-m4O@~uDE`h%@M*!m}b>YqHRKiK+% zOP!5*N9*1S9PrmgBTYs?i2V4K-PyLf8^#@yjaH+HL$Ez~|_N8t8 z$+!Ms>kqd6O>F(ixBg)354Qf`1FP{5o;@q|PoC5tZ2iHd&c=LGh(27~O14hwp_5~ zf^WYy<$^7Xaa&@`^>{|E$2m5FEf;LLV9NztF4%Ixmc@80vE_OkBG=;+xnRo$TQ1mg z!IlfQT(D(*T;rs~mP>w#-Ol7&F4%Ix2Uh(Hwp_5~f|2F%<8kOS7WEkWZkOlwTWieo zr5-;u<{I&MG`_T%4H4MW&A^0>^|XCyliRER?EMm;Gq=j!XgEdh zkl&}@nm+LS4quH>s-}b3H_kvk1L;j)+i)_ULq2Prrmt=0^91XkzP2-uH{+}~2&UWD zHhIk5(U)NRn!dKzZS{3T?$QVQ+D;8zp1tha*EiY^q&IzWGk<3dNqOvR`r>9iO0fRv zi#zi;-NgKxV7h&AlgC=ZXO*m9(--$ft-g-fy7mqB#hn_sJUg|uFL1OUNN@V;W<9_h zp7Pk&^wrIN8^QXs!@757>36eOzn66T>Lzb<{pTza!TL3Qb#K<{>xkT?5BAla8n`@O zzBZuzmBiv&dd}hVk9~9MkQ~8#;RxoOU8uzoswm z@vXj&$X)tiU)~cScjXukR*(ps(-2zOFayv&@Rh!w`uzNZqf((`X1~{yXos&$^!G=<9p1FYTtUZFc{$f791@>|_=CHGO?I=>vUz@1tvd|JZNDKK8DfzP?qyqwH?~Hhq0J>u>t{ z?x(PV+pp>CyFaKUz4rAzS2XSyymPRA1ATo{y0@dBu6|8l-~A93EWhdNdts8h^ro-x z!SveK_X3q|`qCcg>zmR8^=tb2Zr0!Q^?gV~zoxJ6!SveKH}_fIpz$uy?KjZZH>C&a z*Yx$>tiS2&o4r3vP`{?H?`Hi?U*E@|oPzah`uZMB zuYG;zq+w-Z@*J-3vUsz$ZP^xreyU{sOlPyr94b7MSbDb>`e9 zbdMbW;e zguYHMla}iSeMOhPQKYke+6R62Q6A;Ti=P<+bF~jjK6LaYeZ5v=<6AeydXX~&rbFYu zLbT_d6~EJYMj`3Tsxvk4Yfh*7b38iD_+xHM{iaWkbX`8rC}1yst54CMCTA3DI{Mar zzn4~L7?V!@?CBsc+t+74G7UZJCyl+Q=qv~8P{v!H>7o8iX>ZbQ&uo96`54?^(8sI)=0^Do zqW_ku|K=-={z=a>6r`_{R*Wa+^@|F6>R0pk51?PCJ%sEp>&JNY_+b2Id#(uit0e#6 z0sJ0cw)d8hO?#ma*H1g-<#@w>>ZASA{_DaPr|b4~eb;G?p6#9d>6bk3XL*0k`{@dC z;Wyg%(>gu0A9Bv1;1}HY2d6KM{b-$r?cx3aeQRpg_09c=`q7^>*FXA>8$kE{EBR@^ zTzgLM$?~^Ud-BtJxIU;a?^o01kvjd9(_i>G&-C@NkBvUagP$E|{FG<;9PgyL{ufE> z%|yo!vgy=En(F~N>%@}2N2Kfa%JJ!Ro}uGR5%sOo_|E$3H0x35)W1qs$qc1yKjf(& ze#p6g7WJGJXS?lZd{Ix*))(3i#;diqP*@%-n0 zTBd2=Os5}l_kTFeW+W%?~oKjjmGzt)%bP2ZrYf7ZXUYtQ81U!w7ez8>#OVtkWkUj#qqjNj#IU*1!A zye{v#sd`>5iSfEzT807EZiB5aG zA`ider^NfC+K>6tIPHiZ^HZww*h`xJr9Sq#@LQhrtS{5}6+cT~12BG;#P~p8_E@kd z%lrA{wC|@&)H3Mvh1fr<`F%h2__{^s3sXMhmG(R`QX>!LlmzH+=? zr#;2gH}$)&+Fw!TGlZre^PEHFyH~D%rx~04=NyC2(AkeUXAVj~=A47D-|Z4}=Au3a zk(hG?=4oQ{lW)xXfAcqS$z#lWd-FGO$z#m>cJnuJ$z$wuM)qA!TNsx-VEZwL$9~L9 zT=KZA&yUpYne~&;S%bPg6K5MHPZOIz+cWvI4U@l#%}>5@wqf!&amizxZJ7K`T=IZ* zS?d163_3&e9b}$CSjXg6lm5IP^XL7T|4;S`8F_!o^3_0n4t~s+N{zsefs#E%QA?eorteN-$S^Hh#>#H^JO~ zpdWM6%%w+1eLSn4jUV%++9M|Ltbb-d=G4brC{No&p*8+|M--nI$38#Xm|!4}m_Xa} zU%pnm&pLc{m*>Ty*>{}%cyli|=KgISFtz*M*4x3uOkYPLLT1`ZijZ98IL!R)mkK{) zRNBeiayUED+0S(Oz8het?ZGx^w%Hil%(FJ_Wc&|jCpz0se07)oX?w8Ke!NSJZRS~< zc5)pJXD9mGPJDHjc9yo;k2iK2W1D%_rk(3O3p>%-cH+CbwA1!r8#IqwV{9|e+O(7V z)^Poa&bAZZ-KCwj2RrS%yu{dMp0#NwHV$Ve`q@tVF~^qDk2z`kE-x`<`As($KJ{#A)-Xkq;jHTp1`kQ~VBouH=_Ja zr`BLyJM~@Ffc}K$K7`i9*lC`j`?IfuuK%y?#E@?=wn4L<#@J?_ zwP`2w-r?*-XWMB%=C;%JkhUN55@VZr)~22KF(1xO&1brHs&5+onLf&~4VwGYIQuhs z)~1~@^I6!Le#}$P^keS+v^}J`&TOY~+L`vRO*_$Nxc-F4<5qTs-)q|m&9*^nVz&+X zYtv5dbHmw*{%IIkf5BTVhUK;a3`~J@HoB8I4 z2TYyp=U#L{*6%%E`<{l!*gWj#me@Sr|AoKgVV~Fh-t&d0iOs`4Z;4&M_kSsC9{UYX z8`HOVi79Iy*Mp7bY2wL~9_rd_j4kGG;*!T0yUgFjC66(-n7@fj9#*NMK31%EJR=FVJmx3I~SHHO$u%@qiQ_TjeY2()nJ{`|qPVP%=$heT}~%+DU3{AK#zhVVXes0QzzH{Jw3k$R3J5C%#_GuTqAh&u#Uq z2l)yvgS>Hv6zbGOdIW7&orZ9EC}2Xb z{%;Z}^B7-vjvCn=fvnb(!{sY>@r{b{I4Uymla)S^S@oec`$p{Mf;ZIvi(5a6#(bD; zN$%)(HL$|JDe$8O{%wJOSK!|l_^ARvUEnk{W%Y*9iTi}{+W2Nd+=UB%RN$Wk{^XlJH}|3o?(5=}_ZnX@_ft3AU*%shcih+q0?+tfzv_9g zi$8Tk;*b93tNJ?^-2d*K2VS_~r*YqEVtBZpQ4eK}sT2IkH>E6NbV&TUx#(t$&fv7` zCk6gdVA~Fl+hpDce?1TWZ!h>s`-Il&!2i|$QG1(ZKbuE8Y@#~fxBD+5f4_x4Y4?5O zQRQDT_ca?m(0=5bPla6v-SbfU{M{Z2{%IH9*Z!e=vtr8@3mYRDwgYAd@ z^QpjJQT_d2OZ?gEA8h~R=~a<`iR!=QzaI+Sz9QY`oc7z~Z$H@n(#YQh{(*Sbzw+0C zAD;hU`=uZFao{VJKjO;7^OV2NZTCn1=AU}7J@d2&1HV;r|8eFo0)JZiOp)(k`t(Hg zRajXB-3s<(k zAHINF{rd|4_?1rw|1Ii^)lWPg_$;-<9r7bg`+WBe_q7jvRr35{{!iL>%MUXB^6%=G zPu+p9;a30Y8?9{L7(Rkq{ToS#ci#SJ)U)xzAGLQl4PVB(7R2*u`3?^LaVy&+!%uOm z|EBYGjhxXNee_wi+gnae{yUWa`1{kwW3Ioyy=uk%q0jqQ-q(K3ZubR#v&PJ+d#Ak* zO6LiCk$=V9O*C$wlrLlOH1+k@iIUGnb~&m&Jg6#3U{Y~OJWfrx__|F}c_y&!iw`e@TGf!o|`()xP)h}DW9RIwn z{;|3b94s3dW4EYHzAXR9=+jpHSA8hQO+EjrwtDf*C!?Ot#WV9N z@~@ctX(Rh3S@}@= zJ$pS8JbfCsSI0=_RYHP7_0Y+e`DDKey8%6X>5Z}nE%uEm%ep>;Lj-k=R4mQ zc!BsYpON@sjq`8o+Jyh}x~CoShd<0?9yj{>pSJaUi2U*5f5WSvj^OGYr4qJ0)zyG23g^!Pn`e#4# zPtRE$qyVtfkE zQoMoYCA%wT_DGBm;qw%4Bt41I_Ko_FH{tW+cdX9orB7jEdRWF>}h7DBfBvbCBW#Wf`-qUZMGl_mzd53)@fjah~mP zS$3G>Q9`5-lZBk?I#L#L-t~pDY>whtvW)YG>kEK zJyn3EqOJ4tUVD;6u>PUv{Wvc zLfEyde&L^}USp5zbwc#J{k%+d#O_%gn zDSo9iI8E^xLd0hZou#;6(oR?Gzh-p2v_X$;^ot&oRV($MAhes}?S)d0nIZpd{X&1U zevv;@5|Q^RNtmJdG)bWTGlY6}?Ak?kNgA=*M~b{zzt;`ZImMM#E>K)qYvgHD`!3e5p|)BrPy=nFX-r->H9_hLhQ>uDEb$x^0avsqJ8uG zgvg2SmGb+9OfReSOaAofyr~lSlvU7~!E-eZ>hvn*Vee!5z5@Cx(bui$?}~KVOL@}N zzd_LXo-V(a8l!a6C#`+P{nUet4Le9u?Ys@xebVy&!uZV7f7<0gc5#i_L#cUc zeC*<%bopn`sxkZX*1_2CChUjyLsvi0^-0^)N}b_hZ=AB;&$l01>rcM*&pK0ou=NL9 z|Kv%Xlc&bkpM2{NE_F8cdl37iwf^K=f3WrU`vvrGV(U-7+aGNG!PY-{Qs?BUvGph4 z`h!cIjd_2;yBPEbTYs?i2U~xz+q{XbKl#=lZ2iI3KY3E;Y+2-&*m9FU<$^62%zXwOz?KWPT-wlbo7l3*FR|q&f64`0 zF4%IxmJ7CA`o(ga*s{nkvE?Rz$^~04*mA*^3$|SP+H#xNvdAy714h zM($94beRV-wnmFX7zRb_LIwskoi1w zXk=Lb!G3U40(2~C`q9XMmbBY|FPF z+=-$vf5#4FK&Sl&`?*aCF5mQ%tG}z)QL(Q6O+UA+k+!JljGv~T+s%|mpnlq)eMR2% zXMmckRLi%Y+ucNA{kggRBg6U+_G6n8T)ycC_XVxKj*55nZ~C#_TC{B|I{G*L*s@nf zu>Savj%LhPv3`scnEJAz!j@mH+%TkF^KQ`@Y+>8Ex_3M*K@rk~m-eW0J( z!G3hvFFi%O!UXhFdHvSu>t0-I>A)*01TOwn-o8r*^O(-KL*fmG8KI?hj2r zwaxmQermZ+2-dIZr?yES=%;qDAKj*(T9xm(e)MblscqKZ^i#Vhg%zw{(@$-aKG09? zU_ZJ|KeZ~~asBAm^i$ic{~awn$yT9bQ0sT8yccP|BSXiarVsFAI|Ti`t;<_ixY!W% z0e)bIpkLj(ru8A0SKMD=w;z67**kIQuRu+|w)GMHRjjL(&we!bD)!KzbN|85?ML{c zmeA?f4^P>o(|%WK_mHv<{S|Qi%Ugfl`Wq7!FKp29(k;{ zr2kDny7;;MJNaUX(4qE$`rW8qEy_AH<^PlRDZgl<;ulre`h8LRoHsoq{ifEZ{M_E$`h3>Vq4t6L{X+{sw{>XB|8nc!TK`^?-X=iue84UjP$Rz zzSjDe)|bU|wEpwF;C&h8N9zASi}p474vNs>IWkbce`)<|luZWS<7BXW=jUw8zfiM& z)faf3_#F|yIYZ0*4I(Eo^CQ=gGs3JVXC%qP+#{cyInQzZJll=)3C`8iYE6jWtY>22 ztY>oI)MrYOukBKW)ADM)-xk;^5p$C>zQ5T=Y1}D<`nhpSJbnA!Oy+HcD0Lq zu1V{2V1W+~oceHGWRLp#N_`HC{L~@GRq`KE@E=)V#)WlQ95~A!7dXrE&eF18Twvbu zx$KF7v+PNMv+T(QKBd5?22Pz%3!G)oD0t2+@L2_ZW#BCPn!s81?1JZ<0>7@n=N9<& z1wOC9Zz%Bj1->9~%6((tl>4TF=gkFvOM(9)aF%^r;4J(0f@evA-%;Rq2F|jV1NX&Cy8P|4jlA08|9MAjF9j@J)?KoWe`F8gG=h=-j4Mf79 zz~An94S&0@5C3UdJ!ha^7o(o^Je_hIuaivlefpclzw3G7-;Ol&WlE3k((xC0ZdD&o zD*Vgl`|9*(ne^Og%KBHyCcl5bEacTbelq>psGXm8=NYXY?!lH%dERGJKl-5GMiu?i z(9iW<(8}~@TcavE{`>UY>0xh=Fi&`u)&)KvFhA=1Y_u2S`Iz9pHteHKNRQVl3>yA) zOH6D#_)T6IBZT}XZNEBmPrem&<^{dQ3!e@yJ0;vds==C71ji1QVkXQ|VdMEg2DzI93E&k*_ecYSHp&z$p^D!rXB{M3(q z6NGc_iGG)a{iI(S`d+NFPy^}cTk~HWyQZYy7W|jQxl{bXDoEdp!=Eu}+K+U$N7|3Q zJBYEQXZt4qGVxCl9e$k2YhkZPa1pRXKhf@cT}48 zK!3(R)xvmX{*V1hUxuBLc6szeUZyY6UTw`!{n?%uM0wH+ z3;KAa`<14BsGsr6crDXzPsZOejX#aM0sPsXE2Jso?K9PRM$7wb*iQRp{nu9QxgzZ2 z`Z-ATnZ8VE>LZQ)q}!rnALW-RhqlT4Q{G>16u;A)fB9aOW;~F#zg?&E{*~7&bmUQ< z`wRUuHtL@)&!+e{{cP;>Mi^Rpc6n~ng&x|zp zKlID{71yKbZcoyT=jl~>t|#i7QI)4XD4+c^y~pXp8}zJix-_NyXSA1%J}bKY&Ddi6 zD@1$c_;mW>xZZ1e+K0bdu7^cEFV&e*`X~9(m%UG?7xm=zLz?RY`Yu7Ye_dZc(^V7l zFOIhiwg26V;~XUN8Q=65+v*QV*`Dz)rsGfpY&zb^=W&TX>SO++iRKjVv^tW z=k+wbC)1b2xq0*_&G?`_NmD=RLyGdNbbsUCjDKAH4C8M%={X+Z$3Lx~$C>7Q*k(~5 z=gE@3O{DAk(YICo&2!G5ZClZKzSiTL@kjc+crSx~>Cd^72*Y(JL3i>5~&M(UJ(W0X-*xXd@sa|_7>F7u6jHpV);O~~i$g!MN@XY(|1$zzQE=5OMX#~548-^3-4F?N~1 ziAx@^E={dDMsSHlX!>=_^Aqcs+-lP8qrePJI^Ub|jhRD}KEO|bn40v#ehT_J)TM_` ztS?JH1-+fx(}3yer+^X}`Z^gy$Lj4`cq*tvUnjBY_%L8z?am)Kg z{TP@kojZw5pRQR6XDA5LU!kv~pRRo~^reN*Hw;D3@1wZ04_!XbSLBm_sPcS=W-kUq z(WBz5eb8@Tku$2mxo+)^ob`%))}O3!3Ar|<74keuTAY7t**Ndr$ullE6EkmhJ)0Id z=L=c?mPJ12CE%yO%e~wG*J(5<_XO9J{!{CLwF)uETN!hfOfx6^bvK=Uke?Wkz9i;M z!L4!48b1STIQTD#Gfd=>W{s9}BBw8@PCv0GOnUZt)Dm;jl*bx2{TOHYOtVJK9%c@k z^c*Kyo;9NRp_Ar$&%927`BzVl!xc)VpW{_wU#6LZqCuTd$7%Zj7yAd=2@F|vX?%bo#<~n?Z+8gSj&~R*^e_cV{9|e z+O(7B<8XG$?^xGP`*F6N(0uQ)A7^OB*k+y~>}>t<_uJ?0$Jx*FH9c4C#~JeKjRiX?Z?@6mbTe< zGc;qjjr)ACoqZjwdNy{#r|_JfpUg{!vs3HjuATZ8aX^1Ub00!$V(c`}(EZuh3FY;Z z{Y8o}xIZ)hx!H*y=i%%`fA^=Zweb7v{w!^SW;>0s%{*(tS=%pIyARo-3>`hwD#tww=1C4CqhWgKf~5>wVZu7^GG+i!hzfIkBJP=?3YJnV^=*gW1Vhri@u zPu%?8ABU%j&BLB}iCw?<$|-9e`$|q5)1PvQDQh0rgT3Zy;)^c$ZP#97Y%zZmmpsPU zW&S2Ed5p2e{7qc)fZf;Tr{5V%1K$J4*Ig%fqQqD25i#$|_XIhP`#RdsiFqjRHI3BH;^^u`m6DxN9Vkg>ewW{o=1PfrN9jMo@_EO=yMzcTouH=Uw~luS zYog<~j&})bqUU#@yhT(PqJDfK`%OabVD0+U! zxyu^qyXy1>Zwl5_zDK7QX0@`_v;M@E9|iS;r$O@QlV0@)aqe-Z&qMF$lkfd}aNf&u z?wxy%iF4mR@h0Mi>u1ctZ#rXhwf5>2!am-0*q@U3{_AwgcY2k+ zWTl^L|3}Bi{R%qu`@D+NtCYtc75t`ep!90(y<0x^uCC6%Y}1>2^`$>0uB+0268E{s zs`B33uhYlJyBE^PgYJDJ6&pCL{UGBm7 z*}%NP{*#zb7&Ff>56=u^u1Wh(D)F(4e=nZ&pEP?`jVDifLVhDMf85v_-*VF{hKcT8K>8n=dpD#_FTmNlU6_cXxD$zv5Qk@c>FB%^BaAd*!q)i{lV5BZ2iI3 zA8h@>)*o#B!KKc|p7+>)lJzIw`h%^%=M(7P#MYmD>kqd6VCxUI{$T45w*Fx24=!~! zX1>DQ%l?zBKl#=lZ2djILH{PU{^VPKu=NL9f3WojTYs?i2U~w|sk5=?h4!Ch{mHlf zVC(Ps7Wy}_^(Wu@gRMW<`h%@M*!qL5KiK+%OP!55@5437wcW%e4;UWif7oSAzWuwD z7`gTbbJ@}wqo;i)p}+CuNso5xS-7Camc{rlv1R$XuwNO=CEs$vmJ7CAu;qd+7i?LK z+Y(!@$1`$0&aoG4xnRo$TQ1mg!IlfQEXG@jE!X1^xgMX$1zRrIa>14hwp_5~f-Q@2 zQew;X_(8766>`Cr3$|Ra<$^62Y`I`$Q77Zd14hwp{w!a+}z4b8Mtsu;qd+7i_s; z%LQ95*mCJ>%WY!I&9RYk!IlfQT(ISWEf;LLV9TYiEw_m+H^)ZG1zRrIa>14hwp_5~ zf{~lPh?vb}U_MEZ9x=D9*O258nDw(NVD8WVb+p#WH3p@aFOd%&&h%82t0C3{W&Q9D zKIt}ajg@PSEY;hge4l=^e##dsP_nCaSFOL-pxt$Doc2Jg)RQ&rmij6n&qu8jXIGe$ zTL1J^lxtkh1*9dl{K3A6@+24K(XZ)?XmqQuqwJ_3dcA@r*XO!w{k?|uIyq10Zrs(M zHSkW_{hA!5$7nrY`!b^a(^Jt-L1iAxJ_Et}4faKpvt84hzKAwz^>tLdTRzXqk&~g? zEeJZjmcEGg@2<1co6u%m{rA*~>%C*0P5BqZ8ke=L+dn-O?F})$%_!@q{RaCY$`!Nq zZ~7wIwAI&9v9A8IdG0Og=%2ob4r}$tmpbsUpRr9>e|%>w(pN3>A!#JB{$|~6 z{nJy?B8YJ|zN{bp2m2z*)x7m@`Xbu8)z?w6uKs^MUqp)~bz%!&M6J%`uKkPUTjDqr zQW(|AeONI1(|&(GUqmNKTKXbtb@(d^d3~oZA|*(7!WU6s>-XpLMRb5C{-3jKCY*loW*pD&`TIbw}yUyK3_y{mgMwB)avk8HB!Iy zMO5pTr+Vx0H=HjbJPp0OvWaNl3VVDE@HI3f{V!YZl{cfyMB~ITCxf|LQJ(uRo{rwz zdWVoghuV3H)z|M*eQ8Qrho<}w=)~p+O;p@pVe5x4A@(60`YTY=@g?-W)(4c&w;l5u zzKE_6?P~c;iqPp-G*G_*zLG?RgW&o^^A0U34L7tkoeAKurDHf zEqz-4m?8|}iwI9llyzvz|2z2!`g;=6RX34K=nkcRd}^tYn@lfL7O zFoZ86JTXz$p()?_+2j7@$(7^VGrFAh^hW-A@tc^rRPF?O9}UYq56OCR?#0uh-s1){ z4{%xUag&pK+*wb)UC4SSLab((+Xqe^rWAN;fu{w|diX9gXKeg^214qyd*G~Rc7gLg zllgNZKkLbvO6s$J&)3h;v7F&|KSBs_FM8CQRL@dW#%6h z`C0bZf+wHf$#Z;>|Kb9lP?UXHk-S%8le?HrOHQ$=z;l|;b$~pi4dinY~WB-H{*WmO1j@C5p z)IfyzM(ZTKC(LAixBt0D`mSyoKQHzhK?%|)gdc<~kKdLT7vFHeC*5cO%(MZ-|r#Mj&$vZ=bVt|ZqB~(_}2|~-t(p(jMOL7dNx#kcX&@*`pJkw`sVD$R{Gf>jlMTV zd!fU@;$Nl}2ldfUq{l0reRe^YKANI>&+PKnkM>xm_E@i?r~WraefYJxD)hfT_7G_= z)7h2UC(6*@sn3EcJziYsQ>G`1MtV=JD8@^x3Br`uvpmY94{79$uY8Fj-*oE3ZxHlV zqBD=hj|z0!m$j7TF}@gYPSd`$U!6WX+K=)IDsO%3G;>tw=(|k%?x1we2jM@W>$m1$ ztwKm|FM7@kq0bKcogT0Bq@cV0+3~$C^=V!y{@PDXrcoAuooeF^=l z=-=yO&5i!h8K3ko>B}XR@yQ&$q*EV$X`sWuzv#8Tm#f$7{zkvlC;1rO>Qdiqr#*Mmab|Nd6`JIy(Zyx%3A zwEg68{gJNyl8`zym*OW){nv-z9{k+6Jo-4jO4k$X zH>d0RxPI|tbbaOL2z!x#wsyKo{=DB&Uh6v1J^nJy{U-Hu|J)eYe)3cQ!P;kMe9=Dm zt?~HF^eSByI|Y4ukLlEh-DX8ch8Ao16JcP@|iavFO*Uc{#BXLi?557!@b zPQBHBcP@|Xfi&00B1w7S0J`g&-a~oXhjnjVes*wK;UgAN+?! zI@=5V@XLf>8D*<}KOd&|aQ|N}Ewa8$FH(9&RiEkXMNq%X=k-vh_YeU;Gf6)p>Lbl~ zTdrQ7B|_~dXLkG@O!T4u(J%en34Sc=~0!>7`{KMKF7scfjI<$XZg%3CQV=RpYs|%$7Me^ zYQXrG&SyDz7jGXYCFTr(d5rU2cJeoI$zz=Fpp(CeOCIBVcbxo9T=E#_JKyAQ;*!VM zXI<>uhPE&+dBFB_1CRaOl(^(^S)XBWd%Aw|dEf2!G^P#B)5Il@F>Pr6CN6o5X+!fj zamiy$8=Aj~OCGQ;E8UNnC1+@ULz?foa}@zclm36hXAHAO?E!W8?d#|#)=hnid4KJ< z)I-tpJ@bwf8M1u(gvnjnp~|O6819lomk&Zx2mPWSJ68nVG87W8Ti{%;Wd7hi?abe} z;2&4uO$xkOg>$_$R;i)a{QukOVTP3FS^u+m7DrCZ<#~1_J^hj7vz)mb>9ecWWv-t7 zNb*^p>G7&FuL9=2NzZ=B`dPbVeWdZ1a&{1^pIF;ueXM;be|C()+`G@UNcM5+gZ`;+ zrkSf|{XCoTPjYs3)iU=>ecSQD?W$g2_PL)KbE7=749(ww*&m1MnQzSf z+dN=3f$GeAo371H^WK$``Ax2JkGP`68nNbEGb-(5oD63tI{TTf@7xC1X?w5@nr$}5 zHuJ1aI~o7O*@@1!6Q3Jpf7%}Gv_Fm#W1D%_rkz|z!`X@cwiBNlrJbd1_Q!#p#@J?_ zwP`2!hvDo*XWNO-jnYorgKhT5QDST}&)T$;`_^!FqQC95KN4&y{gIHi50VmNo9$nl zb}}Cr&Q5(N+O^aENNguG-+SzX1e!6nnP&()TYvoh_PP5b*+{k$q~DOw75gI*Ied;V zZuLFM0DmN;?X#oAl(Eke@Zjf)auqB)Q~VBouH-ZJx%(p-&QA1a+)8-(87b{7ZL<#& z>@=o~dBB71?CU81S=kAn!gG3lGA|jNrM=i1KnM`Al|4{43> z!p_9lX`Zxs?X1gKUk-0)`XfP4-BSkiXK5QW_pNc-S=;<)?N3eKz0Mv{*vTG`7Q*q~ zi~ODSf2#hYbKRfmkHr0Hdq~^ANQqZHyv}_4Bl+RIHNIxcb!z@~YdmREZCZ7 zeu>S){%ncOLwVfNk&CvFmj4HCy&}?Jco+u&c!8 zA-}}tVNd*0^)<4<^fmp0z38U#F$kaj;5uC%W9&756PG;T)enz~euN*n^ka$Pai5wW z{ms+F<|iLaoncp1KbSFJ-?j338d>cKd)_~AFMJg1A9VwFfn1Y#FFp6oxD)lY`Z^}xPARiT4WAEAE~$5Gpe0*@rWZ^)#cMWJ8vMhaue0T^!#RP zugD&X&fl-!H%@ejr2|`XxqN;T#$#Wh!_Po^Pm8a)vd=^j2PNzNiA1Dpzb<%kp~R@j zPaiL=`zeKWd7dkA?giwy@;d=|{7wMO^TO-a@|^(hA)TM^#Iv4!U!Iun%gi&Oz>^BR zeSxPGm}ip9POGr}z;N9fi!^_)R{Dhb!_}kab48@@7p_iSPh!9W47LnDOU#+qk!q`F z@)0v4=+v7&W2kS_XygAs_>7@l%6;zP(qbos50?7uVxHBi&*G)em^@nnd()>3K4%W7 zuC|(gosIf_S*0s->(20L)9Rt`f0>!xvt)Hz?>w|_aeBN?vhhBn z_E9q>&Pqa`D|`Ju2YRNz6YuAt_lwT^AlH}aZ^vF6^oJ`tXO&i~yh5}e?d7!3KGi;J zz7zV@=_!?um=z&^RqH!(EmQtis?YC(9<9>o%Ue5q=9rFtk5=hbqH~?E)>(&NwVu@b zqgD@3Akx;4{wsanP`>nO!#$?W(P2rlh1_Sym)!M4$JZS?v2 zsrz?z16wzEJjSwYj{ef#5hm6;Pg3CJ_U1z!~>dV9bPn;X)}k#v!QZ3eC-OI6h2Q_ zL2e)njdKXhaiA0P{O_s!YW8*DAEn=aY8NvG1 z7apw+<$Lv8)626~z|<0_nYd(H@;KWjoD6Lhf|TZZ%duV-CABOwxejPufuu< zZEfEU;TLp!a?BI_~q<8f%1%% zeo^OFo(fnyZdH5{&3IX;uOaq{6YAMNTQ&4QKr>zY8Q^Pb&N>rZ|9q8Yg`I&FX=-5o z^RJ&(^bTH62I@ao8oD%P^XztA|Dy1!a&T2YK0^kUPoF4Vay63b@`trvr1QjCp0)5~ zoh>9-zoT^W`Jl>6V_ygQDE-#-gLOKY^Voz*`k&*xuK!@2jz2W0>Fp(Juj%-V!S6~2 zN>2!A`A6%oOXC-XAj>+<_wy&VUe-D(sQII*b_B}Pzb^@|DVfJ_lYW9YPE-xY1xxxo zVO>vo?mx%td$kiPDweCferx;jiIQc>9bEqztutF^B`JP)uCVnxt%cW=IyC98Xq_hd zS*=roC4HXkB5eImZN0qpii(PUDzD#KKYXHOS#onPo!IhUCvT>&C!-3xRk7)3xA2-$ zhbH~CIurOh)$podNuMXX3tPWew_ekFZAC>tmDg{rA3jmCEV)6C*zzydis;RelRtY_ z*z}89culE8lYU|ABGKR6dPA_J&y&4`t>5`ti(Xh!(NE>|TkD5Ulq^eb&?C0|CGtn| z&dA9hU#q5H(!y&>9h&sF>2J6#Q4N0)Ec@tgv%kKIsP*f#-m1U-mQ?gpdHvS<;S(jP zjue`VkifnQVboL%4?!@a@7 zc;8;nCF;03czOa~Q}L7k;R1i8;Q6Z}|2kpnVeS4O6%Y771NTP$H;Vjk7Wuao_>O|- zzY4sf;Q4le?<{z}Tj1{n9uabXQ1IVV@Z4MA9~O9J;4J%-z^VWJ1@M~U}{NQU}Kc)SRk9>PB`1TL&(8V); zIXUVl|D;W7{I9Q=*gj^*4+sCR-#wv=C;r2B?RT8;-pD`d-fg@1?{*pAUbg=kk$>Of zZMygcZ`r#2f*ot?H17v$h~vh8jn0^^Y)?Fu0DYLJNE zbCv{tW&hUgvzIRoe8>sgv^#%)Y2crKV!QUVlRgmm8(*H#{`^CU>5G@W@2?{Ng*)xg zesHUg2Bt5r_-gLy&=+9zq%U6fzE1?EFYX+jn7;Vfcb7*#eX-@?iRp`JCw(~b>5Gqj z_d|g%-*1xiyecsL^59m9=@;}w7X4yOzns1N^2mSN$Zf@+n0~=V`01C&rzfUgXcO|! zyM0U9`}V-}%T>K^4ott$hValY8^7_qz^7liX}fjS>jTqASM|Oo@P9n?0`b2p@YFfu zqQ59h-@WX8xlcsjUGdc)L>tm~TOEFPVEXPWzk47seRtSf9}G-?JwE-{$*=x;>)$7) zzowt`RPslEC8ob-e0@ahYtUckjp++ae~tM>?oZKQV05Fu&Kt9CVESvu*VhS5e;xIU zk%8&2F`r0GfBoR~y^&9UeQ-u%`s)ivwj!VYI&Vy3`s?!#Jr!+2f1xvS>95D9KM|Pz zI(zx=0@GjE2v7D`V*2YVzx!3>(_j0YlbHUZt>CA>XhSglb;VbI5}5v4cmKrn*PWwR zMn3&@*js-XnEs-VC_D4AvF({(&-c{#TsKa8XA`3hmwxdDYKO${X>Hzq`BPIOf1fS3 zXn&%A$G~$>+PeMJvYo3o-=;n92Z>kTvYpy$_sIY7ofFiCiLcvcd&$}>@(-U)f6WPe z^u@ZreIobl;$A0=ZuHm8ukRa}{`$q+6K8+z9r^UvhM!1Ge|>Pqo{>*~9rcSn0%w2C z4xIg!nEpaHWYJ&f45q)naOBLu^p`RHg^lpgU)T<&zqb3rw7~S2G5tkb!9#!1hG6>Z z>!<^G)ry$=n;*oQdR?W

>9ig7sy&+yV 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 PU+!-`slKK)U#a|mU%I21 literal 0 HcmV?d00001 diff --git a/xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset.meta b/xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset.meta new file mode 100644 index 00000000..d236576f --- /dev/null +++ b/xiaofang/Assets/Scenes/Tmap 1/NavMesh.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce317dc0bb78cd54b84bef351461ff44 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 23800000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Script/NewBehaviourScript.cs b/xiaofang/Assets/Script/NewBehaviourScript.cs new file mode 100644 index 00000000..b6fd2ae3 --- /dev/null +++ b/xiaofang/Assets/Script/NewBehaviourScript.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class NewBehaviourScript : MonoBehaviour +{ + + public int id = 0; + public int tpey = 90; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/xiaofang/Assets/Script/NewBehaviourScript.cs.meta b/xiaofang/Assets/Script/NewBehaviourScript.cs.meta new file mode 100644 index 00000000..0f49c629 --- /dev/null +++ b/xiaofang/Assets/Script/NewBehaviourScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1728088f42a981c4da46a58c56c1cc84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Script/login/login.cs b/xiaofang/Assets/Script/login/login.cs index 14de276e..72f23698 100644 --- a/xiaofang/Assets/Script/login/login.cs +++ b/xiaofang/Assets/Script/login/login.cs @@ -6,9 +6,9 @@ public class auth_login { public string clientId = "e5cd7e4891bf95d1d19206ce24a7b32e"; public string grantType = "password"; - public string userType = "sys_user"; - public string username = "adminyyl"; - public string password = "admin123"; + public string userType = "company_user"; + public string username = "13699802230"; + public string password = "YYL2230!"; } public class login : MonoBehaviour @@ -22,7 +22,7 @@ public class login : MonoBehaviour public async void loging() { auth_login auth_Login = new auth_login(); - + Debug.Log(JsonUtility.ToJson(auth_Login)); string response = await web.SendRequest(web.URL + "/auth/login", "POST", JsonUtility.ToJson(auth_Login)); Debug.Log(response); // ص diff --git a/xiaofang/Assets/UnityWebSocket.meta b/xiaofang/Assets/UnityWebSocket.meta new file mode 100644 index 00000000..2e2d52f2 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4a48e5bab43b85341bcf6c0f41824959 +folderAsset: yes +timeCreated: 1530672403 +licenseType: Pro +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Demo.meta b/xiaofang/Assets/UnityWebSocket/Demo.meta new file mode 100644 index 00000000..ea78ec31 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aab4c0dd88d44cd4e817c3f1994407b4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity b/xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity new file mode 100644 index 00000000..38a1099e --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity @@ -0,0 +1,242 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 2 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &516737225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 516737226} + - component: {fileID: 516737227} + m_Layer: 0 + m_Name: Main + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &516737226 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 516737225} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &516737227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 516737225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1b55962346f6de40bd5e924df2854fb, type: 3} + m_Name: + m_EditorClassIdentifier: + address: wss://echo.websocket.events + subProtocols: soap|wamp + sendText: Hello UnityWebSocket! +--- !u!1 &902376145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 902376148} + - component: {fileID: 902376147} + - component: {fileID: 902376146} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &902376146 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902376145} + m_Enabled: 1 +--- !u!20 &902376147 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902376145} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.3301887, g: 0.3301887, b: 0.3301887, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &902376148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902376145} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity.meta b/xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity.meta new file mode 100644 index 00000000..772fdf86 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Demo/DemoScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 65671216fb4e42d4f89ed6eeca36060d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs b/xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs new file mode 100644 index 00000000..0fb0a3a0 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs @@ -0,0 +1,200 @@ +using UnityEngine; + +namespace UnityWebSocket.Demo +{ + public class UnityWebSocketDemo : MonoBehaviour + { + public string address = "wss://echo.websocket.events"; + public string sendText = "Hello UnityWebSocket!"; + + private IWebSocket socket; + + private bool logMessage = true; + private string log = ""; + private int sendCount; + private int receiveCount; + private Vector2 scrollPos; + private Color green = new Color(0.1f, 1, 0.1f); + private Color red = new Color(1f, 0.1f, 0.1f); + private Color wait = new Color(0.7f, 0.3f, 0.3f); + + private void OnGUI() + { + var scale = Screen.width / 800f; + GUI.matrix = Matrix4x4.TRS(new Vector3(0, 0, 0), Quaternion.identity, new Vector3(scale, scale, 1)); + var width = GUILayout.Width(Screen.width / scale - 10); + + WebSocketState state = socket == null ? WebSocketState.Closed : socket.ReadyState; + + // draw header + GUILayout.BeginHorizontal(); + GUILayout.Label("SDK Version: " + Settings.VERSION, GUILayout.Width(Screen.width / scale - 100)); + GUI.color = green; + GUILayout.Label($"FPS: {fps:F2}", GUILayout.Width(80)); + GUI.color = Color.white; + GUILayout.EndHorizontal(); + + // draw websocket state + GUILayout.BeginHorizontal(); + GUILayout.Label("State: ", GUILayout.Width(36)); + GUI.color = WebSocketState.Closed == state ? red : WebSocketState.Open == state ? green : wait; + GUILayout.Label($"{state}", GUILayout.Width(120)); + GUI.color = Color.white; + GUILayout.EndHorizontal(); + + // draw address + GUI.enabled = state == WebSocketState.Closed; + GUILayout.Label("Address: ", width); + address = GUILayout.TextField(address, width); + + // draw connect button + GUILayout.BeginHorizontal(); + GUI.enabled = state == WebSocketState.Closed; + if (GUILayout.Button(state == WebSocketState.Connecting ? "Connecting..." : "Connect")) + { + socket = new WebSocket(address); + socket.OnOpen += Socket_OnOpen; + socket.OnMessage += Socket_OnMessage; + socket.OnClose += Socket_OnClose; + socket.OnError += Socket_OnError; + AddLog(string.Format("Connecting...")); + socket.ConnectAsync(); + } + + // draw close button + GUI.enabled = state == WebSocketState.Open; + if (GUILayout.Button(state == WebSocketState.Closing ? "Closing..." : "Close")) + { + AddLog(string.Format("Closing...")); + socket.CloseAsync(); + } + GUILayout.EndHorizontal(); + + // draw input message + GUILayout.Label("Message: "); + sendText = GUILayout.TextArea(sendText, GUILayout.MinHeight(50), width); + + // draw send message button + GUILayout.BeginHorizontal(); + if (GUILayout.Button("Send") && !string.IsNullOrEmpty(sendText)) + { + socket.SendAsync(sendText); + AddLog(string.Format("Send: {0}", sendText)); + sendCount += 1; + } + if (GUILayout.Button("Send Bytes") && !string.IsNullOrEmpty(sendText)) + { + var bytes = System.Text.Encoding.UTF8.GetBytes(sendText); + socket.SendAsync(bytes); + AddLog(string.Format("Send Bytes ({1}): {0}", sendText, bytes.Length)); + sendCount += 1; + } + if (GUILayout.Button("Send x100") && !string.IsNullOrEmpty(sendText)) + { + for (int i = 0; i < 100; i++) + { + var text = (i + 1).ToString() + ". " + sendText; + socket.SendAsync(text); + AddLog(string.Format("Send: {0}", text)); + sendCount += 1; + } + } + if (GUILayout.Button("Send Bytes x100") && !string.IsNullOrEmpty(sendText)) + { + for (int i = 0; i < 100; i++) + { + var text = (i + 1).ToString() + ". " + sendText; + var bytes = System.Text.Encoding.UTF8.GetBytes(text); + socket.SendAsync(bytes); + AddLog(string.Format("Send Bytes ({1}): {0}", text, bytes.Length)); + sendCount += 1; + } + } + GUILayout.EndHorizontal(); + + // draw message count + GUI.enabled = true; + GUILayout.BeginHorizontal(); + logMessage = GUILayout.Toggle(logMessage, "Log Message"); + GUILayout.Label(string.Format("Send Count: {0}", sendCount)); + GUILayout.Label(string.Format("Receive Count: {0}", receiveCount)); + GUILayout.EndHorizontal(); + + // draw clear button + if (GUILayout.Button("Clear")) + { + log = ""; + receiveCount = 0; + sendCount = 0; + } + + // draw message content + scrollPos = GUILayout.BeginScrollView(scrollPos, GUILayout.MaxHeight(Screen.height / scale - 270), width); + GUILayout.Label(log); + GUILayout.EndScrollView(); + } + + private void AddLog(string str) + { + if (!logMessage) return; + if (str.Length > 100) str = str.Substring(0, 100) + "..."; + log += str + "\n"; + if (log.Length > 22 * 1024) + { + log = log.Substring(log.Length - 22 * 1024); + } + scrollPos.y = int.MaxValue; + } + + private void Socket_OnOpen(object sender, OpenEventArgs e) + { + AddLog(string.Format("Connected: {0}", address)); + } + + private void Socket_OnMessage(object sender, MessageEventArgs e) + { + if (e.IsBinary) + { + AddLog(string.Format("Receive Bytes ({1}): {0}", e.Data, e.RawData.Length)); + } + else if (e.IsText) + { + AddLog(string.Format("Receive: {0}", e.Data)); + } + receiveCount += 1; + } + + private void Socket_OnClose(object sender, CloseEventArgs e) + { + AddLog(string.Format("Closed: StatusCode: {0}, Reason: {1}", e.StatusCode, e.Reason)); + } + + private void Socket_OnError(object sender, ErrorEventArgs e) + { + AddLog(string.Format("Error: {0}", e.Message)); + } + + private void OnApplicationQuit() + { + if (socket != null && socket.ReadyState != WebSocketState.Closed) + { + socket.CloseAsync(); + } + } + + private int frame = 0; + private float time = 0; + private float fps = 0; + private void Update() + { + frame += 1; + time += Time.deltaTime; + if (time >= 0.5f) + { + fps = frame / time; + frame = 0; + time = 0; + } + } + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs.meta b/xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs.meta new file mode 100644 index 00000000..aa3c1474 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c1b55962346f6de40bd5e924df2854fb +timeCreated: 1466599118 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Plugins.meta b/xiaofang/Assets/UnityWebSocket/Plugins.meta new file mode 100644 index 00000000..820207ab --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Plugins.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4589fa9979d007040b5a807b0304b1ff +folderAsset: yes +timeCreated: 1466577973 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Plugins/WebGL.meta b/xiaofang/Assets/UnityWebSocket/Plugins/WebGL.meta new file mode 100644 index 00000000..404a7f6b --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Plugins/WebGL.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1a1a6aea65cc413faf8fb4421138b29 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib b/xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib new file mode 100644 index 00000000..2f6a6cb5 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib @@ -0,0 +1,338 @@ +var WebSocketLibrary = +{ + $webSocketManager: + { + /* + * Map of instances + * + * Instance structure: + * { + * url: string, + * ws: WebSocket, + * subProtocols: string[], + * } + */ + instances: {}, + + /* Last instance ID */ + lastId: 0, + + /* Event listeners */ + onOpen: null, + onMessage: null, + onMessageStr: null, + onError: null, + onClose: null + }, + + /** + * Set onOpen callback + * + * @param callback Reference to C# static function + */ + WebSocketSetOnOpen: function(callback) + { + webSocketManager.onOpen = callback; + }, + + /** + * Set onMessage callback + * + * @param callback Reference to C# static function + */ + WebSocketSetOnMessage: function(callback) + { + webSocketManager.onMessage = callback; + }, + + /** + * Set onMessageStr callback + * + * @param callback Reference to C# static function + */ + WebSocketSetOnMessageStr: function(callback) + { + webSocketManager.onMessageStr = callback; + }, + + /** + * Set onError callback + * + * @param callback Reference to C# static function + */ + WebSocketSetOnError: function(callback) + { + webSocketManager.onError = callback; + }, + + /** + * Set onClose callback + * + * @param callback Reference to C# static function + */ + WebSocketSetOnClose: function(callback) + { + webSocketManager.onClose = callback; + }, + + /** + * Allocate new WebSocket instance struct + * + * @param url Server URL + */ + WebSocketAllocate: function(urlPtr) + { + var url = UTF8ToString(urlPtr); + var id = ++webSocketManager.lastId; + webSocketManager.instances[id] = { + url: url, + ws: null, + }; + + return id; + }, + + /** + * Add Sub Protocol + * + * @param instanceId Instance ID + * @param protocol Sub Protocol + */ + WebSocketAddSubProtocol: function(instanceId, protocolPtr) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return -1; + + var protocol = UTF8ToString(protocolPtr); + + if (instance.subProtocols == null) + instance.subProtocols = []; + + instance.subProtocols.push(protocol); + + return 0; + }, + + /** + * Remove reference to WebSocket instance + * + * If socket is not closed function will close it but onClose event will not be emitted because + * this function should be invoked by C# WebSocket destructor. + * + * @param instanceId Instance ID + */ + WebSocketFree: function(instanceId) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return 0; + + // Close if not closed + if (instance.ws !== null && instance.ws.readyState < 2) + instance.ws.close(); + + // Remove reference + delete webSocketManager.instances[instanceId]; + + return 0; + }, + + /** + * Connect WebSocket to the server + * + * @param instanceId Instance ID + */ + WebSocketConnect: function(instanceId) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return -1; + if (instance.ws !== null) return -2; + + if (instance.subProtocols != null) + instance.ws = new WebSocket(instance.url, instance.subProtocols); + else + instance.ws = new WebSocket(instance.url); + + instance.ws.onopen = function() + { + Module.dynCall_vi(webSocketManager.onOpen, instanceId); + }; + + instance.ws.onmessage = function(ev) + { + if (ev.data instanceof ArrayBuffer) + { + var array = new Uint8Array(ev.data); + var buffer = _malloc(array.length); + writeArrayToMemory(array, buffer); + try + { + Module.dynCall_viii(webSocketManager.onMessage, instanceId, buffer, array.length); + } + finally + { + _free(buffer); + } + } + else if (typeof ev.data == 'string') + { + var length = lengthBytesUTF8(ev.data) + 1; + var buffer = _malloc(length); + stringToUTF8(ev.data, buffer, length); + try + { + Module.dynCall_vii(webSocketManager.onMessageStr, instanceId, buffer); + } + finally + { + _free(buffer); + } + } + else if (typeof Blob !== 'undefined' && ev.data instanceof Blob) + { + var reader = new FileReader(); + reader.onload = function() + { + var array = new Uint8Array(reader.result); + var buffer = _malloc(array.length); + writeArrayToMemory(array, buffer); + try + { + Module.dynCall_viii(webSocketManager.onMessage, instanceId, buffer, array.length); + } + finally + { + reader = null; + _free(buffer); + } + }; + reader.readAsArrayBuffer(ev.data); + } + else + { + console.log("[JSLIB WebSocket] not support message type: ", (typeof ev.data)); + } + }; + + instance.ws.onerror = function(ev) + { + var msg = "WebSocket error."; + var length = lengthBytesUTF8(msg) + 1; + var buffer = _malloc(length); + stringToUTF8(msg, buffer, length); + try + { + Module.dynCall_vii(webSocketManager.onError, instanceId, buffer); + } + finally + { + _free(buffer); + } + }; + + instance.ws.onclose = function(ev) + { + var msg = ev.reason; + var length = lengthBytesUTF8(msg) + 1; + var buffer = _malloc(length); + stringToUTF8(msg, buffer, length); + try + { + Module.dynCall_viii(webSocketManager.onClose, instanceId, ev.code, buffer); + } + finally + { + _free(buffer); + } + instance.ws = null; + }; + + return 0; + }, + + /** + * Close WebSocket connection + * + * @param instanceId Instance ID + * @param code Close status code + * @param reasonPtr Pointer to reason string + */ + WebSocketClose: function(instanceId, code, reasonPtr) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return -1; + if (instance.ws === null) return -3; + if (instance.ws.readyState === 2) return -4; + if (instance.ws.readyState === 3) return -5; + + var reason = ( reasonPtr ? UTF8ToString(reasonPtr) : undefined ); + try + { + instance.ws.close(code, reason); + } + catch (err) + { + return -7; + } + + return 0; + }, + + /** + * Send message over WebSocket + * + * @param instanceId Instance ID + * @param bufferPtr Pointer to the message buffer + * @param length Length of the message in the buffer + */ + WebSocketSend: function(instanceId, bufferPtr, length) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return -1; + if (instance.ws === null) return -3; + if (instance.ws.readyState !== 1) return -6; + + if (typeof HEAPU8 !== 'undefined') + instance.ws.send(HEAPU8.buffer.slice(bufferPtr, bufferPtr + length)); + else if (typeof buffer !== 'undefined') + instance.ws.send(buffer.slice(bufferPtr, bufferPtr + length)); + else + return -8; // not support buffer slice + + return 0; + }, + + /** + * Send message string over WebSocket + * + * @param instanceId Instance ID + * @param stringPtr Pointer to the message string + */ + WebSocketSendStr: function(instanceId, stringPtr) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return -1; + if (instance.ws === null) return -3; + if (instance.ws.readyState !== 1) return -6; + + instance.ws.send(UTF8ToString(stringPtr)); + + return 0; + }, + + /** + * Return WebSocket readyState + * + * @param instanceId Instance ID + */ + WebSocketGetState: function(instanceId) + { + var instance = webSocketManager.instances[instanceId]; + if (!instance) return -1; + if (instance.ws === null) return 3; // socket null as closed + + return instance.ws.readyState; + } +}; + +autoAddDeps(WebSocketLibrary, '$webSocketManager'); +mergeInto(LibraryManager.library, WebSocketLibrary); diff --git a/xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib.meta b/xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib.meta new file mode 100644 index 00000000..0d3f5887 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib.meta @@ -0,0 +1,42 @@ +fileFormatVersion: 2 +guid: bd88770aa13fc47b08f87d2145e9ac6e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Facebook: WebGL + second: + enabled: 1 + settings: {} + - first: + WebGL: WebGL + second: + enabled: 1 + settings: {} + - first: + WeixinMiniGame: WeixinMiniGame + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts.meta b/xiaofang/Assets/UnityWebSocket/Scripts.meta new file mode 100644 index 00000000..0a1e73b4 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89cd0cf8603ef4069b2f6a5d79cbdbe1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Editor.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Editor.meta new file mode 100644 index 00000000..567ca440 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bb71bb4fb62590c4b975ef865b4df25f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs new file mode 100644 index 00000000..116e1cfc --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs @@ -0,0 +1,212 @@ +using UnityEngine; +using UnityEditor; +using UnityEngine.Networking; +using System.IO; +using System; + +namespace UnityWebSocket.Editor +{ + internal class SettingsWindow : EditorWindow + { + static SettingsWindow window = null; + [MenuItem("Tools/UnityWebSocket", priority = 100)] + internal static void Open() + { + if (window != null) + { + window.Close(); + } + + window = GetWindow(true, "UnityWebSocket"); + window.minSize = window.maxSize = new Vector2(600, 310); + window.Show(); + window.BeginCheck(); + } + + private void OnGUI() + { + DrawLogo(); + DrawVersion(); + DrawSeparator(80); + DrawSeparator(186); + DrawHelper(); + DrawFooter(); + } + + Texture2D logoTex = null; + private void DrawLogo() + { + if (logoTex == null) + { + logoTex = new Texture2D(66, 66); + logoTex.LoadImage(Convert.FromBase64String(LOGO_BASE64.VALUE)); + for (int i = 0; i < 66; i++) for (int j = 0; j < 15; j++) logoTex.SetPixel(i, j, Color.clear); + logoTex.Apply(); + } + + var logoPos = new Rect(10, 10, 66, 66); + GUI.DrawTexture(logoPos, logoTex); + var title = "UnityWebSocket"; + var titlePos = new Rect(80, 20, 500, 50); + GUI.Label(titlePos, title, TextStyle(24)); + } + + private void DrawSeparator(int y) + { + EditorGUI.DrawRect(new Rect(10, y, 580, 1), Color.white * 0.5f); + } + + private GUIStyle TextStyle(int fontSize = 10, TextAnchor alignment = TextAnchor.UpperLeft, float alpha = 0.85f) + { + var style = new GUIStyle(); + style.fontSize = fontSize; + style.normal.textColor = (EditorGUIUtility.isProSkin ? Color.white : Color.black) * alpha; + style.alignment = alignment; + style.richText = true; + return style; + } + + private void DrawVersion() + { + GUI.Label(new Rect(440, 10, 150, 10), "Current Version: " + Settings.VERSION, TextStyle(alignment: TextAnchor.MiddleLeft)); + if (string.IsNullOrEmpty(latestVersion)) + { + GUI.Label(new Rect(440, 30, 150, 10), "Checking for Updates...", TextStyle(alignment: TextAnchor.MiddleLeft)); + } + else if (latestVersion == "unknown") + { + + } + else + { + GUI.Label(new Rect(440, 30, 150, 10), "Latest Version: " + latestVersion, TextStyle(alignment: TextAnchor.MiddleLeft)); + if (Settings.VERSION == latestVersion) + { + if (GUI.Button(new Rect(440, 50, 150, 18), "Check Update")) + { + latestVersion = ""; + changeLog = ""; + BeginCheck(); + } + } + else + { + if (GUI.Button(new Rect(440, 50, 150, 18), "Update to | " + latestVersion)) + { + Application.OpenURL(Settings.GITHUB + "/releases"); + } + } + } + } + + private void DrawHelper() + { + GUI.Label(new Rect(330, 200, 100, 18), "GitHub:", TextStyle(10, TextAnchor.MiddleRight)); + if (GUI.Button(new Rect(440, 200, 150, 18), "UnityWebSocket")) + { + Application.OpenURL(Settings.GITHUB); + } + + GUI.Label(new Rect(330, 225, 100, 18), "Report:", TextStyle(10, TextAnchor.MiddleRight)); + if (GUI.Button(new Rect(440, 225, 150, 18), "Report an Issue")) + { + Application.OpenURL(Settings.GITHUB + "/issues/new"); + } + + GUI.Label(new Rect(330, 250, 100, 18), "Email:", TextStyle(10, TextAnchor.MiddleRight)); + if (GUI.Button(new Rect(440, 250, 150, 18), Settings.EMAIL)) + { + var uri = new Uri(string.Format("mailto:{0}?subject={1}", Settings.EMAIL, "UnityWebSocket Feedback")); + Application.OpenURL(uri.AbsoluteUri); + } + + GUI.Label(new Rect(330, 275, 100, 18), "QQ Group:", TextStyle(10, TextAnchor.MiddleRight)); + if (GUI.Button(new Rect(440, 275, 150, 18), Settings.QQ_GROUP)) + { + Application.OpenURL(Settings.QQ_GROUP_LINK); + } + } + + private void DrawFooter() + { + EditorGUI.DropShadowLabel(new Rect(10, 230, 400, 20), "Developed by " + Settings.AUHTOR); + EditorGUI.DropShadowLabel(new Rect(10, 250, 400, 20), "All rights reserved"); + } + + UnityWebRequest req; + string changeLog = ""; + string latestVersion = ""; + void BeginCheck() + { + EditorApplication.update -= VersionCheckUpdate; + EditorApplication.update += VersionCheckUpdate; + + req = UnityWebRequest.Get(Settings.GITHUB + "/releases/latest"); + req.SendWebRequest(); + } + + private void VersionCheckUpdate() + { +#if UNITY_2020_3_OR_NEWER + if (req == null + || req.result == UnityWebRequest.Result.ConnectionError + || req.result == UnityWebRequest.Result.DataProcessingError + || req.result == UnityWebRequest.Result.ProtocolError) +#elif UNITY_2018_1_OR_NEWER + if (req == null || req.isNetworkError || req.isHttpError) +#else + if (req == null || req.isError) +#endif + { + EditorApplication.update -= VersionCheckUpdate; + latestVersion = "unknown"; + return; + } + + if (req.isDone) + { + EditorApplication.update -= VersionCheckUpdate; + latestVersion = req.url.Substring(req.url.LastIndexOf("/") + 1).TrimStart('v'); + + if (Settings.VERSION != latestVersion) + { + var text = req.downloadHandler.text; + var st = text.IndexOf("content=\"" + latestVersion); + st = st > 0 ? text.IndexOf("\n", st) : -1; + var end = st > 0 ? text.IndexOf("\" />", st) : -1; + if (st > 0 && end > st) + { + changeLog = text.Substring(st + 1, end - st - 1).Trim(); + changeLog = changeLog.Replace("\r", ""); + changeLog = changeLog.Replace("\n", "\n- "); + changeLog = "\nCHANGE LOG: \n- " + changeLog + "\n"; + } + } + + Repaint(); + } + } + } + + internal static class LOGO_BASE64 + { + internal const string VALUE = "iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAMAAADUivDaAAAAq1BMVEUAAABKmtcvjtYzl" + + "9szmNszl9syl9k0mNs0mNwzmNs0mNszl9szl9s0mNs0mNwzmNw0mNwyltk0mNw0mNwzl9s0mNsymNs0mNszmNwzmNwzm" + + "NszmNs0mNwzl9w0mNwzmNw0mNs0mNs0mNwzl9wzmNs0mNwzmNs0mNwzl90zmNszmNszl9szmNsxmNszmNszmNw0mNwzm" + + "Nw0mNs2neM4pe41mt43ouo2oOY5qfM+UHlaAAAAMnRSTlMAAwXN3sgI+/069MSCK6M/MA74h9qfFHB8STWMJ9OSdmNcI" + + "8qya1IeF+/U0EIa57mqmFTYJe4AAAN3SURBVFjD7ZbpkppAFEa/bgVBREF2kEVGFNeZsM77P1kadURnJkr8k1Qlx1Khu" + + "/pw7+2lwH/+YcgfMBBLG7VocwDamzH+wJBB8Qhjve2f0TdrGwjei6o4Ub/nM/APw5Z7vvSB/qrCrqbD6fBEVtigeMxks" + + "fX9zWbj+z1jhqgSBplQ50eGo4614WXlRAzgrRhmtSfvxAn7pB0N5ObaKKZZuU5/d37IBcBgUQwqDuf7Z2gUmVAl4NGNr" + + "/UeHxV5n39ulbaKLI86h6HilmM5M1aN126lpNhtl59yeTsp8nUMvpNC1J3bh5FtfVRk+bJrJunn5d4U4piJ/Vw9eXgsj" + + "4ZpZaCjg9waZkIpnBWLJ44OwoNu60F2UnSaEkKv4XnAlCpm6B4F/aKMDiyGi2L8SEEAVdxNLuzmgV7nFwObEe2xQVuX+" + + "RV1lWetga3w+cN1sXgvm4cJH8OEgZC1DPKhfF/BIymmQrMjq/x65FUeEkDup8GxoexZmznHCvANtXU/CAq13yimhQGtm" + + "H4VCPnBBL1fTKo3CqEcvq7Lb/OwHxWTYlyw+JmjKoVvDLVOQB4pVsM8K8smgvLCxZDlIijwyOEc+nr/msMwK0+GQWGBd" + + "tmhjv8icTds1s2ammaFh04QLLe69NK7guP6mTDMaw3o6nAX/Z7EXUskPSvWEWg4srVlp5NTDXv9Lce9HGN5eeG4nj5Yz" + + "ACteU2wQLo4MBtJfd1nw5nG1/s9zwUQ6pykL1TQjqdeuvQW0naz2XKLYL4Cwzr4vj+OQdD96CSp7Lrynp4aeFF0xdm5q" + + "6OFtFfPv7URxpWJNjd/N+3+I9+1klMav12Qtgbt9R2JaIopjkzaPtOFq4KxUpqfUMSFnQrySWjLoQzRZS4HMH84ME1ej" + + "S1YJpQZ3B+sR1uCQJSBdGdCk1eAEgORR88KK05W8dh2MA+A/SKCYu3mCJ0Ek7HBx4HHeuwYy5G3x8hSMTJcOMFbinCsn" + + "hO1V1aszGULvA0g4UFsb4VA0hAFcyo6cgLsAoT7uUtGAH5wQKQle0wuLyxLTaNyJEYwxw4wSljLK1TP8CAaOyhBMMEsj" + + "OBoXgo7VGElFkSWL+vef1RF2YNXeRWYzQBTpkhC8KaZHhuIogArkQLKClBZjU26B2IZgGz+cpZkHl8g3fYUaW/YP2kb2" + + "M/V97JY/vZN859n+QmO7XtC9Bf2jAAAAABJRU5ErkJggg=="; + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs.meta new file mode 100644 index 00000000..ff291d9b --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/SettingsWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c42d421cc4c34f3eae1fbd67f0dced0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef new file mode 100644 index 00000000..9ae7fa49 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef @@ -0,0 +1,16 @@ +{ + "name": "UnityWebSocket.Editor", + "references": [ + "UnityWebSocket.Runtime" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef.meta new file mode 100644 index 00000000..851d4552 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Editor/UnityWebSocket.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ee833745c57bd4369ab8f0ff380a96fa +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime.meta new file mode 100644 index 00000000..497f84bf --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53e0ed9fdc3af42eba12a5b1b9a5f873 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core.meta new file mode 100644 index 00000000..75a53494 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b3a2a8f55d4a47f599b1fa3ed612389 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs new file mode 100644 index 00000000..d0d5831a --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs @@ -0,0 +1,89 @@ +using System; + +namespace UnityWebSocket +{ + ///

+ /// Represents the event data for the event. + /// + /// + /// + /// That event occurs when the WebSocket connection has been closed. + /// + /// + /// If you would like to get the reason for the close, you should access + /// the or property. + /// + /// + public class CloseEventArgs : EventArgs + { + #region Internal Constructors + + internal CloseEventArgs() + { + } + + internal CloseEventArgs(ushort code) + : this(code, null) + { + } + + internal CloseEventArgs(CloseStatusCode code) + : this((ushort)code, null) + { + } + + internal CloseEventArgs(CloseStatusCode code, string reason) + : this((ushort)code, reason) + { + } + + internal CloseEventArgs(ushort code, string reason) + { + Code = code; + Reason = reason; + } + + #endregion + + #region Public Properties + + /// + /// Gets the status code for the close. + /// + /// + /// A that represents the status code for the close if any. + /// + public ushort Code { get; private set; } + + /// + /// Gets the reason for the close. + /// + /// + /// A that represents the reason for the close if any. + /// + public string Reason { get; private set; } + + /// + /// Gets a value indicating whether the connection has been closed cleanly. + /// + /// + /// true if the connection has been closed cleanly; otherwise, false. + /// + public bool WasClean { get; internal set; } + + /// + /// Enum value same as Code + /// + public CloseStatusCode StatusCode + { + get + { + if (Enum.IsDefined(typeof(CloseStatusCode), Code)) + return (CloseStatusCode)Code; + return CloseStatusCode.Unknown; + } + } + + #endregion + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs.meta new file mode 100644 index 00000000..6e2a928a --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29b987d07ba15434cb1744135a7a5416 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs new file mode 100644 index 00000000..0da2ddbd --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs @@ -0,0 +1,91 @@ +namespace UnityWebSocket +{ + /// + /// Indicates the status code for the WebSocket connection close. + /// + /// + /// + /// The values of this enumeration are defined in + /// + /// Section 7.4 of RFC 6455. + /// + /// + /// "Reserved value" cannot be sent as a status code in + /// closing handshake by an endpoint. + /// + /// + public enum CloseStatusCode : ushort + { + Unknown = 65534, + /// + /// Equivalent to close status 1000. Indicates normal close. + /// + Normal = 1000, + /// + /// Equivalent to close status 1001. Indicates that an endpoint is + /// going away. + /// + Away = 1001, + /// + /// Equivalent to close status 1002. Indicates that an endpoint is + /// terminating the connection due to a protocol error. + /// + ProtocolError = 1002, + /// + /// Equivalent to close status 1003. Indicates that an endpoint is + /// terminating the connection because it has received a type of + /// data that it cannot accept. + /// + UnsupportedData = 1003, + /// + /// Equivalent to close status 1004. Still undefined. A Reserved value. + /// + Undefined = 1004, + /// + /// Equivalent to close status 1005. Indicates that no status code was + /// actually present. A Reserved value. + /// + NoStatus = 1005, + /// + /// Equivalent to close status 1006. Indicates that the connection was + /// closed abnormally. A Reserved value. + /// + Abnormal = 1006, + /// + /// Equivalent to close status 1007. Indicates that an endpoint is + /// terminating the connection because it has received a message that + /// contains data that is not consistent with the type of the message. + /// + InvalidData = 1007, + /// + /// Equivalent to close status 1008. Indicates that an endpoint is + /// terminating the connection because it has received a message that + /// violates its policy. + /// + PolicyViolation = 1008, + /// + /// Equivalent to close status 1009. Indicates that an endpoint is + /// terminating the connection because it has received a message that + /// is too big to process. + /// + TooBig = 1009, + /// + /// Equivalent to close status 1010. Indicates that a client is + /// terminating the connection because it has expected the server to + /// negotiate one or more extension, but the server did not return + /// them in the handshake response. + /// + MandatoryExtension = 1010, + /// + /// Equivalent to close status 1011. Indicates that a server is + /// terminating the connection because it has encountered an unexpected + /// condition that prevented it from fulfilling the request. + /// + ServerError = 1011, + /// + /// Equivalent to close status 1015. Indicates that the connection was + /// closed due to a failure to perform a TLS handshake. A Reserved value. + /// + TlsHandshakeFailure = 1015, + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs.meta new file mode 100644 index 00000000..48e96605 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/CloseStatusCode.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e34ee317292e4225a10427cc35f85ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs new file mode 100644 index 00000000..cfb91b87 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs @@ -0,0 +1,59 @@ +using System; + +namespace UnityWebSocket +{ + /// + /// Represents the event data for the event. + /// + /// + /// + /// That event occurs when the gets an error. + /// + /// + /// If you would like to get the error message, you should access + /// the property. + /// + /// + /// And if the error is due to an exception, you can get it by accessing + /// the property. + /// + /// + public class ErrorEventArgs : EventArgs + { + #region Internal Constructors + + internal ErrorEventArgs(string message) + : this(message, null) + { + } + + internal ErrorEventArgs(string message, Exception exception) + { + this.Message = message; + this.Exception = exception; + } + + #endregion + + #region Public Properties + + /// + /// Gets the exception that caused the error. + /// + /// + /// An instance that represents the cause of + /// the error if it is due to an exception; otherwise, . + /// + public Exception Exception { get; private set; } + + /// + /// Gets the error message. + /// + /// + /// A that represents the error message. + /// + public string Message { get; private set; } + + #endregion + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs.meta new file mode 100644 index 00000000..47a5055b --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/ErrorEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 884e7db60b6444154b7200e0e436f2de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs new file mode 100644 index 00000000..3e08d4b5 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs @@ -0,0 +1,143 @@ +using System; + +namespace UnityWebSocket +{ + /// + /// IWebSocket indicate a network connection. + /// It can be connecting, connected, closing or closed state. + /// You can send and receive messages by using it. + /// Register callbacks for handling messages. + /// ----------------------------------------------------------- + /// IWebSocket 表示一个网络连接, + /// 它可以是 connecting connected closing closed 状态, + /// 可以发送和接收消息, + /// 通过注册消息回调,来处理接收到的消息。 + /// + public interface IWebSocket + { + /// + /// Establishes a connection asynchronously. + /// + /// + /// + /// This method does not wait for the connect process to be complete. + /// + /// + /// This method does nothing if the connection has already been + /// established. + /// + /// + /// + /// + /// This instance is not a client. + /// + /// + /// -or- + /// + /// + /// The close process is in progress. + /// + /// + /// -or- + /// + /// + /// A series of reconnecting has failed. + /// + /// + void ConnectAsync(); + + /// + /// Closes the connection asynchronously. + /// + /// + /// + /// This method does not wait for the close to be complete. + /// + /// + /// This method does nothing if the current state of the connection is + /// Closing or Closed. + /// + /// + void CloseAsync(); + + /// + /// Sends the specified data asynchronously using the WebSocket connection. + /// + /// + /// This method does not wait for the send to be complete. + /// + /// + /// An array of that represents the binary data to send. + /// + /// + /// The current state of the connection is not Open. + /// + /// + /// is . + /// + void SendAsync(byte[] data); + + /// + /// Sends the specified data using the WebSocket connection. + /// + /// + /// A that represents the text data to send. + /// + /// + /// The current state of the connection is not Open. + /// + /// + /// is . + /// + /// + /// could not be UTF-8 encoded. + /// + void SendAsync(string text); + + /// + /// get the address which to connect. + /// + string Address { get; } + + /// + /// get sub protocols . + /// + string[] SubProtocols { get; } + + /// + /// Gets the current state of the connection. + /// + /// + /// + /// One of the enum values. + /// + /// + /// It indicates the current state of the connection. + /// + /// + /// The default value is . + /// + /// + WebSocketState ReadyState { get; } + + /// + /// Occurs when the WebSocket connection has been established. + /// + event EventHandler OnOpen; + + /// + /// Occurs when the WebSocket connection has been closed. + /// + event EventHandler OnClose; + + /// + /// Occurs when the gets an error. + /// + event EventHandler OnError; + + /// + /// Occurs when the receives a message. + /// + event EventHandler OnMessage; + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs.meta new file mode 100644 index 00000000..ae658256 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/IWebSocket.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 37ee2146eb8c34ffab8b081a632b05cf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs new file mode 100644 index 00000000..a80fbae8 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs @@ -0,0 +1,115 @@ +using System; +using System.Text; + +namespace UnityWebSocket +{ + public class MessageEventArgs : EventArgs + { + private byte[] _rawData; + private string _data; + + internal MessageEventArgs(Opcode opcode, byte[] rawData) + { + Opcode = opcode; + _rawData = rawData; + } + + internal MessageEventArgs(Opcode opcode, string data) + { + Opcode = opcode; + _data = data; + } + + /// + /// Gets the opcode for the message. + /// + /// + /// , . + /// + internal Opcode Opcode { get; private set; } + + /// + /// Gets the message data as a . + /// + /// + /// A that represents the message data if its type is + /// text and if decoding it to a string has successfully done; + /// otherwise, . + /// + public string Data + { + get + { + SetData(); + return _data; + } + } + + /// + /// Gets the message data as an array of . + /// + /// + /// An array of that represents the message data. + /// + public byte[] RawData + { + get + { + SetRawData(); + return _rawData; + } + } + + /// + /// Gets a value indicating whether the message type is binary. + /// + /// + /// true if the message type is binary; otherwise, false. + /// + public bool IsBinary + { + get + { + return Opcode == Opcode.Binary; + } + } + + /// + /// Gets a value indicating whether the message type is text. + /// + /// + /// true if the message type is text; otherwise, false. + /// + public bool IsText + { + get + { + return Opcode == Opcode.Text; + } + } + + private void SetData() + { + if (_data != null) return; + + if (RawData == null) + { + return; + } + + _data = Encoding.UTF8.GetString(RawData); + } + + private void SetRawData() + { + if (_rawData != null) return; + + if (_data == null) + { + return; + } + + _rawData = Encoding.UTF8.GetBytes(_data); + } + } +} \ No newline at end of file diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs.meta new file mode 100644 index 00000000..1c3a7d13 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/MessageEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b44eda173b4924081bab76ae9d1b0a9c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs new file mode 100644 index 00000000..3e758e23 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs @@ -0,0 +1,26 @@ +namespace UnityWebSocket +{ + /// + /// Indicates the WebSocket frame type. + /// + /// + /// The values of this enumeration are defined in + /// + /// Section 5.2 of RFC 6455. + /// + public enum Opcode : byte + { + /// + /// Equivalent to numeric value 1. Indicates text frame. + /// + Text = 0x1, + /// + /// Equivalent to numeric value 2. Indicates binary frame. + /// + Binary = 0x2, + /// + /// Equivalent to numeric value 8. Indicates connection close frame. + /// + Close = 0x8, + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs.meta new file mode 100644 index 00000000..a7ed802f --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Opcode.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eeac0ef90273544ebbae046672caf362 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs new file mode 100644 index 00000000..fa84a33d --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs @@ -0,0 +1,11 @@ +using System; + +namespace UnityWebSocket +{ + public class OpenEventArgs : EventArgs + { + internal OpenEventArgs() + { + } + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs.meta new file mode 100644 index 00000000..0cfe2c2d --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/OpenEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fb6fd704bd4e4b8ba63cd0b28712955 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs new file mode 100644 index 00000000..95fdd230 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs @@ -0,0 +1,12 @@ +namespace UnityWebSocket +{ + public static class Settings + { + public const string GITHUB = "https://github.com/psygames/UnityWebSocket"; + public const string QQ_GROUP = "1126457634"; + public const string QQ_GROUP_LINK = "https://qm.qq.com/cgi-bin/qm/qr?k=KcexYJ9aYwogFXbj2aN0XHH5b2G7ICmd"; + public const string EMAIL = "799329256@qq.com"; + public const string AUHTOR = "psygames"; + public const string VERSION = "2.8.5"; + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs.meta new file mode 100644 index 00000000..e8e36229 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e268303c7a605e343b1b132e5559f01f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs new file mode 100644 index 00000000..796ab15f --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs @@ -0,0 +1,36 @@ +namespace UnityWebSocket +{ + /// + /// Reference html5 WebSocket ReadyState Properties + /// Indicates the state of a WebSocket connection. + /// + /// + /// The values of this enumeration are defined in + /// + /// The WebSocket API. + /// + public enum WebSocketState : ushort + { + /// + /// Equivalent to numeric value 0. Indicates that the connection has not + /// yet been established. + /// + Connecting = 0, + /// + /// Equivalent to numeric value 1. Indicates that the connection has + /// been established, and the communication is possible. + /// + Open = 1, + /// + /// Equivalent to numeric value 2. Indicates that the connection is + /// going through the closing handshake, or the close method has + /// been invoked. + /// + Closing = 2, + /// + /// Equivalent to numeric value 3. Indicates that the connection has + /// been closed or could not be established. + /// + Closed = 3 + } +} diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs.meta new file mode 100644 index 00000000..94877ec5 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Core/WebSocketState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f6567ad13cb147a59f8af784f1c5f60 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation.meta new file mode 100644 index 00000000..abb1981f --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 396c66b333d624d539153070900bb73b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL.meta new file mode 100644 index 00000000..dc70a45c --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c110a898ae8b0b41bcf4da49c2b0425 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs new file mode 100644 index 00000000..3755dcf5 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs @@ -0,0 +1,329 @@ +#if !NET_LEGACY && (UNITY_EDITOR || !UNITY_WEBGL) +using System; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Net.WebSockets; +using System.IO; +using System.Collections.Concurrent; + +namespace UnityWebSocket +{ + public class WebSocket : IWebSocket + { + public string Address { get; private set; } + public string[] SubProtocols { get; private set; } + + public WebSocketState ReadyState + { + get + { + if (socket == null) + return WebSocketState.Closed; + switch (socket.State) + { + case System.Net.WebSockets.WebSocketState.Closed: + case System.Net.WebSockets.WebSocketState.None: + return WebSocketState.Closed; + case System.Net.WebSockets.WebSocketState.CloseReceived: + case System.Net.WebSockets.WebSocketState.CloseSent: + return WebSocketState.Closing; + case System.Net.WebSockets.WebSocketState.Connecting: + return WebSocketState.Connecting; + case System.Net.WebSockets.WebSocketState.Open: + return WebSocketState.Open; + } + return WebSocketState.Closed; + } + } + + public event EventHandler OnOpen; + public event EventHandler OnClose; + public event EventHandler OnError; + public event EventHandler OnMessage; + + private ClientWebSocket socket; + private bool isOpening => socket != null && socket.State == System.Net.WebSockets.WebSocketState.Open; + private ConcurrentQueue sendQueue = new ConcurrentQueue(); + private ConcurrentQueue eventQueue = new ConcurrentQueue(); + private bool closeProcessing; + private CancellationTokenSource cts = null; + + #region APIs + public WebSocket(string address) + { + this.Address = address; + } + + public WebSocket(string address, string subProtocol) + { + this.Address = address; + this.SubProtocols = new string[] { subProtocol }; + } + + public WebSocket(string address, string[] subProtocols) + { + this.Address = address; + this.SubProtocols = subProtocols; + } + + public void ConnectAsync() + { + if (socket != null) + { + HandleError(new Exception("Socket is busy.")); + return; + } + + WebSocketManager.Instance.Add(this); + + socket = new ClientWebSocket(); + cts = new CancellationTokenSource(); + + // support sub protocols + if (this.SubProtocols != null) + { + foreach (var protocol in this.SubProtocols) + { + if (string.IsNullOrEmpty(protocol)) continue; + Log($"Add Sub Protocol {protocol}"); + socket.Options.AddSubProtocol(protocol); + } + } + + Task.Run(ConnectTask); + } + + public void CloseAsync() + { + if (!isOpening) return; + closeProcessing = true; + } + + public void SendAsync(byte[] data) + { + if (!isOpening) return; + var buffer = new SendBuffer(data, WebSocketMessageType.Binary); + sendQueue.Enqueue(buffer); + } + + public void SendAsync(string text) + { + if (!isOpening) return; + var data = Encoding.UTF8.GetBytes(text); + var buffer = new SendBuffer(data, WebSocketMessageType.Text); + sendQueue.Enqueue(buffer); + } + #endregion + + class SendBuffer + { + public byte[] data; + public WebSocketMessageType type; + public SendBuffer(byte[] data, WebSocketMessageType type) + { + this.data = data; + this.type = type; + } + } + + private void CleanSendQueue() + { + while (sendQueue.TryDequeue(out var _)) ; + } + + private void CleanEventQueue() + { + while (eventQueue.TryDequeue(out var _)) ; + } + + private async Task ConnectTask() + { + Log("Connect Task Begin ..."); + + try + { + var uri = new Uri(Address); + await socket.ConnectAsync(uri, cts.Token); + } + catch (Exception e) + { + HandleError(e); + HandleClose((ushort)CloseStatusCode.Abnormal, e.Message); + return; + } + + HandleOpen(); + + Log("Connect Task Success !"); + + StartReceiveTask(); + StartSendTask(); + } + + private async void StartSendTask() + { + Log("Send Task Begin ..."); + + try + { + while (!closeProcessing && socket != null && cts != null && !cts.IsCancellationRequested) + { + while (!closeProcessing && sendQueue.Count > 0 && sendQueue.TryDequeue(out var buffer)) + { + Log($"Send, type: {buffer.type}, size: {buffer.data.Length}, queue left: {sendQueue.Count}"); + await socket.SendAsync(new ArraySegment(buffer.data), buffer.type, true, cts.Token); + } + Thread.Sleep(3); + } + if (closeProcessing && socket != null && cts != null && !cts.IsCancellationRequested) + { + CleanSendQueue(); + Log($"Close Send Begin ..."); + await socket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Normal Closure", cts.Token); + Log($"Close Send Success !"); + } + } + catch (Exception e) + { + HandleError(e); + } + finally + { + closeProcessing = false; + } + + Log("Send Task End !"); + } + + private async void StartReceiveTask() + { + Log("Receive Task Begin ..."); + + string closeReason = ""; + ushort closeCode = 0; + bool isClosed = false; + var segment = new ArraySegment(new byte[8192]); + var ms = new MemoryStream(); + + try + { + while (!isClosed && !cts.IsCancellationRequested) + { + var result = await socket.ReceiveAsync(segment, cts.Token); + ms.Write(segment.Array, 0, result.Count); + if (!result.EndOfMessage) continue; + var data = ms.ToArray(); + ms.SetLength(0); + switch (result.MessageType) + { + case WebSocketMessageType.Binary: + HandleMessage(Opcode.Binary, data); + break; + case WebSocketMessageType.Text: + HandleMessage(Opcode.Text, data); + break; + case WebSocketMessageType.Close: + isClosed = true; + closeCode = (ushort)result.CloseStatus; + closeReason = result.CloseStatusDescription; + break; + } + } + } + catch (Exception e) + { + HandleError(e); + closeCode = (ushort)CloseStatusCode.Abnormal; + closeReason = e.Message; + } + finally + { + ms.Close(); + } + + HandleClose(closeCode, closeReason); + + Log("Receive Task End !"); + } + + private void SocketDispose() + { + Log("Dispose"); + WebSocketManager.Instance.Remove(this); + CleanSendQueue(); + CleanEventQueue(); + socket.Dispose(); + socket = null; + cts.Dispose(); + cts = null; + } + + private void HandleOpen() + { + Log("OnOpen"); + eventQueue.Enqueue(new OpenEventArgs()); + } + + private void HandleMessage(Opcode opcode, byte[] rawData) + { + Log($"OnMessage, type: {opcode}, size: {rawData.Length}"); + eventQueue.Enqueue(new MessageEventArgs(opcode, rawData)); + } + + private void HandleClose(ushort code, string reason) + { + Log($"OnClose, code: {code}, reason: {reason}"); + eventQueue.Enqueue(new CloseEventArgs(code, reason)); + } + + private void HandleError(Exception exception) + { + Log("OnError, error: " + exception.Message); + eventQueue.Enqueue(new ErrorEventArgs(exception.Message)); + } + + internal void Update() + { + while (eventQueue.Count > 0 && eventQueue.TryDequeue(out var e)) + { + if (e is CloseEventArgs) + { + OnClose?.Invoke(this, e as CloseEventArgs); + SocketDispose(); + break; + } + else if (e is OpenEventArgs) + { + OnOpen?.Invoke(this, e as OpenEventArgs); + } + else if (e is MessageEventArgs) + { + OnMessage?.Invoke(this, e as MessageEventArgs); + } + else if (e is ErrorEventArgs) + { + OnError?.Invoke(this, e as ErrorEventArgs); + } + } + } + + internal void Abort() + { + Log("Abort"); + if (cts != null) + { + cts.Cancel(); + } + } + + [System.Diagnostics.Conditional("UNITY_WEB_SOCKET_LOG")] + static void Log(string msg) + { + var time = DateTime.Now.ToString("HH:mm:ss.fff"); + var thread = Thread.CurrentThread.ManagedThreadId; + UnityEngine.Debug.Log($"[{time}][UnityWebSocket][T-{thread:D3}] {msg}"); + } + } +} +#endif diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs.meta new file mode 100644 index 00000000..cbb5e53a --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocket.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d10f88a23641b4beb8df74460fb7f705 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs new file mode 100644 index 00000000..edc79d4a --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs @@ -0,0 +1,74 @@ +#if !NET_LEGACY && (UNITY_EDITOR || !UNITY_WEBGL) +using System.Collections.Generic; +using UnityEngine; + +namespace UnityWebSocket +{ + [DisallowMultipleComponent] + [DefaultExecutionOrder(-10000)] + internal class WebSocketManager : MonoBehaviour + { + private const string rootName = "[UnityWebSocket]"; + private static WebSocketManager _instance; + public static WebSocketManager Instance + { + get + { + if (!_instance) CreateInstance(); + return _instance; + } + } + + private void Awake() + { + DontDestroyOnLoad(gameObject); + } + + public static void CreateInstance() + { + GameObject go = GameObject.Find("/" + rootName); + if (!go) go = new GameObject(rootName); + _instance = go.GetComponent(); + if (!_instance) _instance = go.AddComponent(); + } + + private readonly List sockets = new List(); + + public void Add(WebSocket socket) + { + if (!sockets.Contains(socket)) + sockets.Add(socket); + } + + public void Remove(WebSocket socket) + { + if (sockets.Contains(socket)) + sockets.Remove(socket); + } + + private void Update() + { + if (sockets.Count <= 0) return; + for (int i = sockets.Count - 1; i >= 0; i--) + { + sockets[i].Update(); + } + } + +#if UNITY_EDITOR + private void OnDisable() + { + SocketAbort(); + } + + private void SocketAbort() + { + for (int i = sockets.Count - 1; i >= 0; i--) + { + sockets[i].Abort(); + } + } +#endif + } +} +#endif \ No newline at end of file diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs.meta new file mode 100644 index 00000000..1e26dc8c --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99157fb5def394c83a9e5342036c92b0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL.meta new file mode 100644 index 00000000..e9c4e7b5 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fb37927ec1ce4def9c5e7cff883f9f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs new file mode 100644 index 00000000..e2858e9c --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs @@ -0,0 +1,147 @@ +#if !UNITY_EDITOR && UNITY_WEBGL +using System; + +namespace UnityWebSocket +{ + public class WebSocket : IWebSocket + { + public string Address { get; private set; } + public string[] SubProtocols { get; private set; } + public WebSocketState ReadyState { get { return (WebSocketState)WebSocketManager.WebSocketGetState(instanceId); } } + + public event EventHandler OnOpen; + public event EventHandler OnClose; + public event EventHandler OnError; + public event EventHandler OnMessage; + + internal int instanceId = 0; + + public WebSocket(string address) + { + this.Address = address; + AllocateInstance(); + } + + public WebSocket(string address, string subProtocol) + { + this.Address = address; + this.SubProtocols = new string[] { subProtocol }; + AllocateInstance(); + } + + public WebSocket(string address, string[] subProtocols) + { + this.Address = address; + this.SubProtocols = subProtocols; + AllocateInstance(); + } + + internal void AllocateInstance() + { + instanceId = WebSocketManager.AllocateInstance(this.Address); + Log($"Allocate socket with instanceId: {instanceId}"); + if (this.SubProtocols == null) return; + foreach (var protocol in this.SubProtocols) + { + if (string.IsNullOrEmpty(protocol)) continue; + Log($"Add Sub Protocol {protocol}, with instanceId: {instanceId}"); + int code = WebSocketManager.WebSocketAddSubProtocol(instanceId, protocol); + if (code < 0) + { + HandleOnError(GetErrorMessageFromCode(code)); + break; + } + } + } + + ~WebSocket() + { + Log($"Free socket with instanceId: {instanceId}"); + WebSocketManager.WebSocketFree(instanceId); + } + + public void ConnectAsync() + { + Log($"Connect with instanceId: {instanceId}"); + WebSocketManager.Add(this); + int code = WebSocketManager.WebSocketConnect(instanceId); + if (code < 0) HandleOnError(GetErrorMessageFromCode(code)); + } + + public void CloseAsync() + { + Log($"Close with instanceId: {instanceId}"); + int code = WebSocketManager.WebSocketClose(instanceId, (int)CloseStatusCode.Normal, "Normal Closure"); + if (code < 0) HandleOnError(GetErrorMessageFromCode(code)); + } + + public void SendAsync(string text) + { + Log($"Send, type: {Opcode.Text}, size: {text.Length}"); + int code = WebSocketManager.WebSocketSendStr(instanceId, text); + if (code < 0) HandleOnError(GetErrorMessageFromCode(code)); + } + + public void SendAsync(byte[] data) + { + Log($"Send, type: {Opcode.Binary}, size: {data.Length}"); + int code = WebSocketManager.WebSocketSend(instanceId, data, data.Length); + if (code < 0) HandleOnError(GetErrorMessageFromCode(code)); + } + + internal void HandleOnOpen() + { + Log("OnOpen"); + OnOpen?.Invoke(this, new OpenEventArgs()); + } + + internal void HandleOnMessage(byte[] rawData) + { + Log($"OnMessage, type: {Opcode.Binary}, size: {rawData.Length}"); + OnMessage?.Invoke(this, new MessageEventArgs(Opcode.Binary, rawData)); + } + + internal void HandleOnMessageStr(string data) + { + Log($"OnMessage, type: {Opcode.Text}, size: {data.Length}"); + OnMessage?.Invoke(this, new MessageEventArgs(Opcode.Text, data)); + } + + internal void HandleOnClose(ushort code, string reason) + { + Log($"OnClose, code: {code}, reason: {reason}"); + OnClose?.Invoke(this, new CloseEventArgs(code, reason)); + WebSocketManager.Remove(instanceId); + } + + internal void HandleOnError(string msg) + { + Log("OnError, error: " + msg); + OnError?.Invoke(this, new ErrorEventArgs(msg)); + } + + internal static string GetErrorMessageFromCode(int errorCode) + { + switch (errorCode) + { + case -1: return "WebSocket instance not found."; + case -2: return "WebSocket is already connected or in connecting state."; + case -3: return "WebSocket is not connected."; + case -4: return "WebSocket is already closing."; + case -5: return "WebSocket is already closed."; + case -6: return "WebSocket is not in open state."; + case -7: return "Cannot close WebSocket, An invalid code was specified or reason is too long."; + case -8: return "Not support buffer slice. "; + default: return $"Unknown error code {errorCode}."; + } + } + + [System.Diagnostics.Conditional("UNITY_WEB_SOCKET_LOG")] + static void Log(string msg) + { + var time = DateTime.Now.ToString("HH:mm:ss.fff"); + UnityEngine.Debug.Log($"[{time}][UnityWebSocket] {msg}"); + } + } +} +#endif diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs.meta new file mode 100644 index 00000000..ffe47c74 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocket.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 74a5b3c22251243d2a2f33e74741559d +timeCreated: 1466578513 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs new file mode 100644 index 00000000..0bc0218d --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs @@ -0,0 +1,153 @@ +#if !UNITY_EDITOR && UNITY_WEBGL +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using AOT; + +namespace UnityWebSocket +{ + /// + /// Class providing static access methods to work with JSLIB WebSocket + /// + internal static class WebSocketManager + { + /* Map of websocket instances */ + private static Dictionary sockets = new Dictionary(); + + /* Delegates */ + public delegate void OnOpenCallback(int instanceId); + public delegate void OnMessageCallback(int instanceId, IntPtr msgPtr, int msgSize); + public delegate void OnMessageStrCallback(int instanceId, IntPtr msgStrPtr); + public delegate void OnErrorCallback(int instanceId, IntPtr errorPtr); + public delegate void OnCloseCallback(int instanceId, int closeCode, IntPtr reasonPtr); + + /* WebSocket JSLIB functions */ + [DllImport("__Internal")] + public static extern int WebSocketConnect(int instanceId); + + [DllImport("__Internal")] + public static extern int WebSocketClose(int instanceId, int code, string reason); + + [DllImport("__Internal")] + public static extern int WebSocketSend(int instanceId, byte[] dataPtr, int dataLength); + + [DllImport("__Internal")] + public static extern int WebSocketSendStr(int instanceId, string data); + + [DllImport("__Internal")] + public static extern int WebSocketGetState(int instanceId); + + /* WebSocket JSLIB callback setters and other functions */ + [DllImport("__Internal")] + public static extern int WebSocketAllocate(string url); + + [DllImport("__Internal")] + public static extern int WebSocketAddSubProtocol(int instanceId, string protocol); + + [DllImport("__Internal")] + public static extern void WebSocketFree(int instanceId); + + [DllImport("__Internal")] + public static extern void WebSocketSetOnOpen(OnOpenCallback callback); + + [DllImport("__Internal")] + public static extern void WebSocketSetOnMessage(OnMessageCallback callback); + + [DllImport("__Internal")] + public static extern void WebSocketSetOnMessageStr(OnMessageStrCallback callback); + + [DllImport("__Internal")] + public static extern void WebSocketSetOnError(OnErrorCallback callback); + + [DllImport("__Internal")] + public static extern void WebSocketSetOnClose(OnCloseCallback callback); + + /* If callbacks was initialized and set */ + private static bool isInitialized = false; + + /* Initialize WebSocket callbacks to JSLIB */ + private static void Initialize() + { + WebSocketSetOnOpen(DelegateOnOpenEvent); + WebSocketSetOnMessage(DelegateOnMessageEvent); + WebSocketSetOnMessageStr(DelegateOnMessageStrEvent); + WebSocketSetOnError(DelegateOnErrorEvent); + WebSocketSetOnClose(DelegateOnCloseEvent); + + isInitialized = true; + } + + [MonoPInvokeCallback(typeof(OnOpenCallback))] + public static void DelegateOnOpenEvent(int instanceId) + { + if (sockets.TryGetValue(instanceId, out var socket)) + { + socket.HandleOnOpen(); + } + } + + [MonoPInvokeCallback(typeof(OnMessageCallback))] + public static void DelegateOnMessageEvent(int instanceId, IntPtr msgPtr, int msgSize) + { + if (sockets.TryGetValue(instanceId, out var socket)) + { + var bytes = new byte[msgSize]; + Marshal.Copy(msgPtr, bytes, 0, msgSize); + socket.HandleOnMessage(bytes); + } + } + + [MonoPInvokeCallback(typeof(OnMessageStrCallback))] + public static void DelegateOnMessageStrEvent(int instanceId, IntPtr msgStrPtr) + { + if (sockets.TryGetValue(instanceId, out var socket)) + { + string msgStr = Marshal.PtrToStringAuto(msgStrPtr); + socket.HandleOnMessageStr(msgStr); + } + } + + [MonoPInvokeCallback(typeof(OnErrorCallback))] + public static void DelegateOnErrorEvent(int instanceId, IntPtr errorPtr) + { + if (sockets.TryGetValue(instanceId, out var socket)) + { + string errorMsg = Marshal.PtrToStringAuto(errorPtr); + socket.HandleOnError(errorMsg); + } + } + + [MonoPInvokeCallback(typeof(OnCloseCallback))] + public static void DelegateOnCloseEvent(int instanceId, int closeCode, IntPtr reasonPtr) + { + if (sockets.TryGetValue(instanceId, out var socket)) + { + string reason = Marshal.PtrToStringAuto(reasonPtr); + socket.HandleOnClose((ushort)closeCode, reason); + } + } + + internal static int AllocateInstance(string address) + { + if (!isInitialized) Initialize(); + return WebSocketAllocate(address); + } + + internal static void Add(WebSocket socket) + { + if (!sockets.ContainsKey(socket.instanceId)) + { + sockets.Add(socket.instanceId, socket); + } + } + + internal static void Remove(int instanceId) + { + if (sockets.ContainsKey(instanceId)) + { + sockets.Remove(instanceId); + } + } + } +} +#endif diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs.meta new file mode 100644 index 00000000..d0a16fef --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 246cdc66a1e2047148371a8e56e17d3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef new file mode 100644 index 00000000..1dd0e569 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef @@ -0,0 +1,12 @@ +{ + "name": "UnityWebSocket.Runtime", + "references": [], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef.meta b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef.meta new file mode 100644 index 00000000..b25bd684 --- /dev/null +++ b/xiaofang/Assets/UnityWebSocket/Scripts/Runtime/UnityWebSocket.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b65d8710c3b04373a41cbf6b777ee65 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto.meta b/xiaofang/Assets/comm/Proto.meta new file mode 100644 index 00000000..6dadb82c --- /dev/null +++ b/xiaofang/Assets/comm/Proto.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 238d5690fe411f84da0c68ad5efd0d81 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Config.cs b/xiaofang/Assets/comm/Proto/Config.cs new file mode 100644 index 00000000..4b9a1401 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Config.cs @@ -0,0 +1,83 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: config.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from config.proto +public static partial class ConfigReflection { + + #region Descriptor + /// File descriptor for config.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ConfigReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgxjb25maWcucHJvdG8qnQEKCkVSUk9SX0NPREUSCgoGRVJSX09rEAASEAoM", + "RVJSX05vUGxheWVyEAESDgoKRVJSX05vUm9vbRACEg0KCUVSUl9Ub2tlbhAE", + "Eg0KCUVSUl9Mb2dpbhAFEg4KCkVSUl9BY3Rpb24QBhIOCgpFUlJfUGFyYW1z", + "EAcSDgoKRVJSX1NlcnZlchAIEhMKD0VSUl9Ob0F1dGhvcml0eRAJQgdaBS4v", + "O3BiYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::ERROR_CODE), }, null, null)); + } + #endregion + +} +#region Enums +/// +///错误码 +/// +public enum ERROR_CODE { + /// + ///OK + /// + [pbr::OriginalName("ERR_Ok")] ErrOk = 0, + /// + ///没有这个玩家 + /// + [pbr::OriginalName("ERR_NoPlayer")] ErrNoPlayer = 1, + /// + ///加入房间失败 + /// + [pbr::OriginalName("ERR_NoRoom")] ErrNoRoom = 2, + /// + ///Token验证失败 + /// + [pbr::OriginalName("ERR_Token")] ErrToken = 4, + /// + ///登录失败 + /// + [pbr::OriginalName("ERR_Login")] ErrLogin = 5, + /// + ///操作失败 + /// + [pbr::OriginalName("ERR_Action")] ErrAction = 6, + /// + ///参数错误 + /// + [pbr::OriginalName("ERR_Params")] ErrParams = 7, + /// + ///服务器内部错误 + /// + [pbr::OriginalName("ERR_Server")] ErrServer = 8, + /// + ///没有权限 + /// + [pbr::OriginalName("ERR_NoAuthority")] ErrNoAuthority = 9, +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Config.cs.meta b/xiaofang/Assets/comm/Proto/Config.cs.meta new file mode 100644 index 00000000..40d31e9f --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Config.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6249125b6bd7a964aa825c041b9cab82 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Fps.cs b/xiaofang/Assets/comm/Proto/Fps.cs new file mode 100644 index 00000000..8465fa89 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Fps.cs @@ -0,0 +1,1099 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: fps.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from fps.proto +public static partial class FpsReflection { + + #region Descriptor + /// File descriptor for fps.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static FpsReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CglmcHMucHJvdG8iNgoRQnJvYWRjYXN0RnJhbWVNc2cSIQoGZnJhbWVzGAEg", + "AygLMhEuRnJhbWVEYXRhUmVxdWVzdCJPChBGcmFtZURhdGFSZXF1ZXN0EhQK", + "B2ZyYW1lSUQYASABKA1IAIgBARIZCgVpbnB1dBgCIAMoCzIKLklucHV0RGF0", + "YUIKCghfZnJhbWVJRCJpCglJbnB1dERhdGESCgoCaWQYASABKAkSCwoDc0lk", + "GAIgASgJEgkKAXgYAyABKAISCQoBeRgEIAEoAhISCgpyb29tU2VhdElkGAUg", + "ASgFEgkKAXoYBiABKAISDgoGcm9vbUlkGAcgASgJIg8KDUVtcHR5UmVzcG9u", + "c2VCB1oFLi87cGJiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::BroadcastFrameMsg), global::BroadcastFrameMsg.Parser, new[]{ "Frames" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::FrameDataRequest), global::FrameDataRequest.Parser, new[]{ "FrameID", "Input" }, new[]{ "FrameID" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::InputData), global::InputData.Parser, new[]{ "Id", "SId", "X", "Y", "RoomSeatId", "Z", "RoomId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EmptyResponse), global::EmptyResponse.Parser, null, null, null, null, null) + })); + } + #endregion + +} +#region Messages +/// +///广播帧消息 +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class BroadcastFrameMsg : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BroadcastFrameMsg()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::FpsReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public BroadcastFrameMsg() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public BroadcastFrameMsg(BroadcastFrameMsg other) : this() { + frames_ = other.frames_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public BroadcastFrameMsg Clone() { + return new BroadcastFrameMsg(this); + } + + /// Field number for the "frames" field. + public const int FramesFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_frames_codec + = pb::FieldCodec.ForMessage(10, global::FrameDataRequest.Parser); + private readonly pbc::RepeatedField frames_ = new pbc::RepeatedField(); + /// + ///帧数据 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Frames { + get { return frames_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as BroadcastFrameMsg); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(BroadcastFrameMsg other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!frames_.Equals(other.frames_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= frames_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + frames_.WriteTo(output, _repeated_frames_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + frames_.WriteTo(ref output, _repeated_frames_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += frames_.CalculateSize(_repeated_frames_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(BroadcastFrameMsg other) { + if (other == null) { + return; + } + frames_.Add(other.frames_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + frames_.AddEntriesFrom(input, _repeated_frames_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + frames_.AddEntriesFrom(ref input, _repeated_frames_codec); + break; + } + } + } + } + #endif + +} + +/// +///帧数据 +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class FrameDataRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FrameDataRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::FpsReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FrameDataRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FrameDataRequest(FrameDataRequest other) : this() { + _hasBits0 = other._hasBits0; + frameID_ = other.frameID_; + input_ = other.input_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FrameDataRequest Clone() { + return new FrameDataRequest(this); + } + + /// Field number for the "frameID" field. + public const int FrameIDFieldNumber = 1; + private readonly static uint FrameIDDefaultValue = 0; + + private uint frameID_; + /// + ///帧ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint FrameID { + get { if ((_hasBits0 & 1) != 0) { return frameID_; } else { return FrameIDDefaultValue; } } + set { + _hasBits0 |= 1; + frameID_ = value; + } + } + /// Gets whether the "frameID" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasFrameID { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "frameID" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearFrameID() { + _hasBits0 &= ~1; + } + + /// Field number for the "input" field. + public const int InputFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_input_codec + = pb::FieldCodec.ForMessage(18, global::InputData.Parser); + private readonly pbc::RepeatedField input_ = new pbc::RepeatedField(); + /// + ///操作输入 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Input { + get { return input_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as FrameDataRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(FrameDataRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (FrameID != other.FrameID) return false; + if(!input_.Equals(other.input_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasFrameID) hash ^= FrameID.GetHashCode(); + hash ^= input_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasFrameID) { + output.WriteRawTag(8); + output.WriteUInt32(FrameID); + } + input_.WriteTo(output, _repeated_input_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasFrameID) { + output.WriteRawTag(8); + output.WriteUInt32(FrameID); + } + input_.WriteTo(ref output, _repeated_input_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasFrameID) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FrameID); + } + size += input_.CalculateSize(_repeated_input_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(FrameDataRequest other) { + if (other == null) { + return; + } + if (other.HasFrameID) { + FrameID = other.FrameID; + } + input_.Add(other.input_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + FrameID = input.ReadUInt32(); + break; + } + case 18: { + input_.AddEntriesFrom(input, _repeated_input_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + FrameID = input.ReadUInt32(); + break; + } + case 18: { + input_.AddEntriesFrom(ref input, _repeated_input_codec); + break; + } + } + } + } + #endif + +} + +/// +///帧存储操作输入 +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class InputData : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new InputData()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::FpsReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public InputData() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public InputData(InputData other) : this() { + id_ = other.id_; + sId_ = other.sId_; + x_ = other.x_; + y_ = other.y_; + roomSeatId_ = other.roomSeatId_; + z_ = other.z_; + roomId_ = other.roomId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public InputData Clone() { + return new InputData(this); + } + + /// Field number for the "id" field. + public const int IdFieldNumber = 1; + private string id_ = ""; + /// + ///id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Id { + get { return id_; } + set { + id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "sId" field. + public const int SIdFieldNumber = 2; + private string sId_ = ""; + /// + ///操作id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SId { + get { return sId_; } + set { + sId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "x" field. + public const int XFieldNumber = 3; + private float x_; + /// + ///操作位置x + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "y" field. + public const int YFieldNumber = 4; + private float y_; + /// + ///操作位置y + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "roomSeatId" field. + public const int RoomSeatIdFieldNumber = 5; + private int roomSeatId_; + /// + ///操作者的位置索引id(1~N) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RoomSeatId { + get { return roomSeatId_; } + set { + roomSeatId_ = value; + } + } + + /// Field number for the "z" field. + public const int ZFieldNumber = 6; + private float z_; + /// + ///操作位置z + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 7; + private string roomId_ = ""; + /// + ///房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as InputData); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(InputData other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (SId != other.SId) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (RoomSeatId != other.RoomSeatId) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + if (RoomId != other.RoomId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id.Length != 0) hash ^= Id.GetHashCode(); + if (SId.Length != 0) hash ^= SId.GetHashCode(); + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (RoomSeatId != 0) hash ^= RoomSeatId.GetHashCode(); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (SId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(SId); + } + if (X != 0F) { + output.WriteRawTag(29); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(37); + output.WriteFloat(Y); + } + if (RoomSeatId != 0) { + output.WriteRawTag(40); + output.WriteInt32(RoomSeatId); + } + if (Z != 0F) { + output.WriteRawTag(53); + output.WriteFloat(Z); + } + if (RoomId.Length != 0) { + output.WriteRawTag(58); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (SId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(SId); + } + if (X != 0F) { + output.WriteRawTag(29); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(37); + output.WriteFloat(Y); + } + if (RoomSeatId != 0) { + output.WriteRawTag(40); + output.WriteInt32(RoomSeatId); + } + if (Z != 0F) { + output.WriteRawTag(53); + output.WriteFloat(Z); + } + if (RoomId.Length != 0) { + output.WriteRawTag(58); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); + } + if (SId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SId); + } + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (RoomSeatId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomSeatId); + } + if (Z != 0F) { + size += 1 + 4; + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(InputData other) { + if (other == null) { + return; + } + if (other.Id.Length != 0) { + Id = other.Id; + } + if (other.SId.Length != 0) { + SId = other.SId; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.RoomSeatId != 0) { + RoomSeatId = other.RoomSeatId; + } + if (other.Z != 0F) { + Z = other.Z; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 18: { + SId = input.ReadString(); + break; + } + case 29: { + X = input.ReadFloat(); + break; + } + case 37: { + Y = input.ReadFloat(); + break; + } + case 40: { + RoomSeatId = input.ReadInt32(); + break; + } + case 53: { + Z = input.ReadFloat(); + break; + } + case 58: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 18: { + SId = input.ReadString(); + break; + } + case 29: { + X = input.ReadFloat(); + break; + } + case 37: { + Y = input.ReadFloat(); + break; + } + case 40: { + RoomSeatId = input.ReadInt32(); + break; + } + case 53: { + Z = input.ReadFloat(); + break; + } + case 58: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +/// +/// 空白消息 +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class EmptyResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EmptyResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::FpsReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EmptyResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EmptyResponse(EmptyResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public EmptyResponse Clone() { + return new EmptyResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as EmptyResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(EmptyResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(EmptyResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Fps.cs.meta b/xiaofang/Assets/comm/Proto/Fps.cs.meta new file mode 100644 index 00000000..3c5e24a9 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Fps.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 013d659005f08544cafe01b5a18e6072 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Hall.cs b/xiaofang/Assets/comm/Proto/Hall.cs new file mode 100644 index 00000000..ed173479 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Hall.cs @@ -0,0 +1,4803 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: hall.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from hall.proto +public static partial class HallReflection { + + #region Descriptor + /// File descriptor for hall.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static HallReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CgpoYWxsLnByb3RvIi8KDExvZ2luUmVxdWVzdBIOCgZ1c2VySWQYASABKAkS", + "DwoHYWNjb3VudBgCIAEoCSIuCg1Mb2dpblJlc3BvbnNlEg8KB21lc3NhZ2UY", + "ASABKAkSDAoEY29kZRgCIAEoBSIfCgxIZWxsb1JlcXVlc3QSDwoHbWVzc2Fn", + "ZRgBIAEoCSIgCg1IZWxsb1Jlc3BvbnNlEg8KB21lc3NhZ2UYASABKAkiIQoP", + "Sm9pblJvb21SZXF1ZXN0Eg4KBnJvb21JZBgBIAEoCSJUChBKb2luUm9vbVJl", + "c3BvbnNlEg8KB21lc3NhZ2UYASABKAkSDAoEY29kZRgCIAEoBRIhCgRkYXRh", + "GAMgASgLMhMuUGxheWVySm9pblJlc3BvbnNlIrcDChJQbGF5ZXJKb2luUmVz", + "cG9uc2USEAoIVXNlck5hbWUYASABKAkSDgoGUm9vbUlkGAIgASgJEg4KBlN0", + "YXR1cxgDIAEoBRIQCghSb2xlTmFtZRgEIAEoCRIUCgxJc0xlYWRpbmdOUEMY", + "BSABKAUSDgoGT25saW5lGAYgASgIEg4KBlJvbGVJZBgHIAEoBRITCgtHcm91", + "cExlYWRlchgIIAEoBRISCgpBY3Rpb25Nb2RlGAkgASgFEg0KBUdyb3VwGAog", + "ASgFEgkKAVgYCyABKAISCQoBWRgMIAEoAhIJCgFaGA0gASgCEhMKC092ZXJz", + "ZWVDb25kGA4gASgJEhYKDlNlbmRGcmFtZUNvdW50GA8gASgFEhYKDk1vdmVT", + "cGVlZEZpcnN0GBAgASgFEhcKD01vdmVTcGVlZFNlY29uZBgRIAEoBRIWCg5N", + "b3ZlU3BlZWRUaGlyZBgSIAEoBRIQCghCZWFyTG9hZBgTIAEoBRISCgpQcm90", + "ZWN0aW9uGBQgASgFEg4KBkhlYWx0aBgVIAEoBRISCgpSb2xlU3RhdHVzGBYg", + "ASgFEg4KBlVzZXJJZBgXIAEoAyIpChNQcm9wVGVtcGxhdGVSZXF1ZXN0EhIK", + "CnRlbXBsYXRlSWQYASABKAMiSwoUUHJvcFRlbXBsYXRlUmVzcG9uc2USEgoK", + "VGVtcGxhdGVJZBgBIAEoAxILCgNOdW0YAiABKAMSEgoKTWF0ZXJpYWxJZBgD", + "IAEoAyI7Cg9QcGNQcm9wUmVzcG9uc2USKAoJcmVzcG9uc2VzGAEgAygLMhUu", + "UHJvcFRlbXBsYXRlUmVzcG9uc2UiWgoTUnBjUm9vbUluZm9SZXNwb25zZRIK", + "CgJJZBgBIAEoAxISCgpUZW1wbGF0ZUlkGAIgASgDEg4KBlN0YXR1cxgDIAEo", + "AxITCgtSZXNlcnZlRGF0ZRgEIAEoAyI5ChNVc2VyVGVtcGxhdGVSZXF1ZXN0", + "EhIKCnRlbXBsYXRlSWQYASABKAMSDgoGUm9vbUlkGAIgASgJIjgKDFVzZXJU", + "ZW1wbGF0ZRIoCglyZXNwb25zZXMYASADKAsyFS5Vc2VyVGVtcGxhdGVSZXNw", + "b25zZSKVAQoUVXNlclRlbXBsYXRlUmVzcG9uc2USDgoGUm9vbUlkGAEgASgD", + "Eg4KBlVzZXJJZBgCIAEoAxIOCgZTdGF0dXMYAyABKAUSEgoKVGVtcGxhdGVJ", + "ZBgEIAEoAxIOCgZSb2xlSWQYBSABKAMSEwoLQmlydGhBcmVhSWQYBiABKAMS", + "FAoMQ2hhcmdlQXJlYUlkGAcgASgDImIKD1VzZXJJbmZvUmVxdWVzdBIOCgZV", + "c2VySWQYASABKAMSDgoGU3RhdHVzGAIgASgFEg4KBlJvb21JZBgDIAEoCRIJ", + "CgF4GAQgASgCEgkKAXkYBSABKAISCQoBehgGIAEoAiISChBVc2VySW5mb1Jl", + "c3BvbnNlQgdaBS4vO3BiYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::LoginRequest), global::LoginRequest.Parser, new[]{ "UserId", "Account" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LoginResponse), global::LoginResponse.Parser, new[]{ "Message", "Code" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::HelloRequest), global::HelloRequest.Parser, new[]{ "Message" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::HelloResponse), global::HelloResponse.Parser, new[]{ "Message" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::JoinRoomRequest), global::JoinRoomRequest.Parser, new[]{ "RoomId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::JoinRoomResponse), global::JoinRoomResponse.Parser, new[]{ "Message", "Code", "Data" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PlayerJoinResponse), global::PlayerJoinResponse.Parser, new[]{ "UserName", "RoomId", "Status", "RoleName", "IsLeadingNPC", "Online", "RoleId", "GroupLeader", "ActionMode", "Group", "X", "Y", "Z", "OverseeCond", "SendFrameCount", "MoveSpeedFirst", "MoveSpeedSecond", "MoveSpeedThird", "BearLoad", "Protection", "Health", "RoleStatus", "UserId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PropTemplateRequest), global::PropTemplateRequest.Parser, new[]{ "TemplateId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PropTemplateResponse), global::PropTemplateResponse.Parser, new[]{ "TemplateId", "Num", "MaterialId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PpcPropResponse), global::PpcPropResponse.Parser, new[]{ "Responses" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::RpcRoomInfoResponse), global::RpcRoomInfoResponse.Parser, new[]{ "Id", "TemplateId", "Status", "ReserveDate" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserTemplateRequest), global::UserTemplateRequest.Parser, new[]{ "TemplateId", "RoomId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserTemplate), global::UserTemplate.Parser, new[]{ "Responses" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserTemplateResponse), global::UserTemplateResponse.Parser, new[]{ "RoomId", "UserId", "Status", "TemplateId", "RoleId", "BirthAreaId", "ChargeAreaId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserInfoRequest), global::UserInfoRequest.Parser, new[]{ "UserId", "Status", "RoomId", "X", "Y", "Z" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserInfoResponse), global::UserInfoResponse.Parser, null, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class LoginRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LoginRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LoginRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LoginRequest(LoginRequest other) : this() { + userId_ = other.userId_; + account_ = other.account_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LoginRequest Clone() { + return new LoginRequest(this); + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 1; + private string userId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "account" field. + public const int AccountFieldNumber = 2; + private string account_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Account { + get { return account_; } + set { + account_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LoginRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LoginRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + if (Account != other.Account) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (Account.Length != 0) hash ^= Account.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserId); + } + if (Account.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Account); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserId); + } + if (Account.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Account); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (Account.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Account); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LoginRequest other) { + if (other == null) { + return; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + if (other.Account.Length != 0) { + Account = other.Account; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + UserId = input.ReadString(); + break; + } + case 18: { + Account = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + UserId = input.ReadString(); + break; + } + case 18: { + Account = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class LoginResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LoginResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LoginResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LoginResponse(LoginResponse other) : this() { + message_ = other.message_; + code_ = other.code_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LoginResponse Clone() { + return new LoginResponse(this); + } + + /// Field number for the "message" field. + public const int MessageFieldNumber = 1; + private string message_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Message { + get { return message_; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "code" field. + public const int CodeFieldNumber = 2; + private int code_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Code { + get { return code_; } + set { + code_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LoginResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LoginResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Message != other.Message) return false; + if (Code != other.Code) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Message.Length != 0) hash ^= Message.GetHashCode(); + if (Code != 0) hash ^= Code.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (Code != 0) { + output.WriteRawTag(16); + output.WriteInt32(Code); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (Code != 0) { + output.WriteRawTag(16); + output.WriteInt32(Code); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Message.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (Code != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Code); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LoginResponse other) { + if (other == null) { + return; + } + if (other.Message.Length != 0) { + Message = other.Message; + } + if (other.Code != 0) { + Code = other.Code; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Message = input.ReadString(); + break; + } + case 16: { + Code = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Message = input.ReadString(); + break; + } + case 16: { + Code = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class HelloRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new HelloRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public HelloRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public HelloRequest(HelloRequest other) : this() { + message_ = other.message_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public HelloRequest Clone() { + return new HelloRequest(this); + } + + /// Field number for the "message" field. + public const int MessageFieldNumber = 1; + private string message_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Message { + get { return message_; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as HelloRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(HelloRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Message != other.Message) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Message.Length != 0) hash ^= Message.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Message.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(HelloRequest other) { + if (other == null) { + return; + } + if (other.Message.Length != 0) { + Message = other.Message; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Message = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Message = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class HelloResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new HelloResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public HelloResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public HelloResponse(HelloResponse other) : this() { + message_ = other.message_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public HelloResponse Clone() { + return new HelloResponse(this); + } + + /// Field number for the "message" field. + public const int MessageFieldNumber = 1; + private string message_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Message { + get { return message_; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as HelloResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(HelloResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Message != other.Message) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Message.Length != 0) hash ^= Message.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Message.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(HelloResponse other) { + if (other == null) { + return; + } + if (other.Message.Length != 0) { + Message = other.Message; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Message = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Message = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class JoinRoomRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new JoinRoomRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public JoinRoomRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public JoinRoomRequest(JoinRoomRequest other) : this() { + roomId_ = other.roomId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public JoinRoomRequest Clone() { + return new JoinRoomRequest(this); + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as JoinRoomRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(JoinRoomRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(JoinRoomRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class JoinRoomResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new JoinRoomResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public JoinRoomResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public JoinRoomResponse(JoinRoomResponse other) : this() { + message_ = other.message_; + code_ = other.code_; + data_ = other.data_ != null ? other.data_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public JoinRoomResponse Clone() { + return new JoinRoomResponse(this); + } + + /// Field number for the "message" field. + public const int MessageFieldNumber = 1; + private string message_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Message { + get { return message_; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "code" field. + public const int CodeFieldNumber = 2; + private int code_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Code { + get { return code_; } + set { + code_ = value; + } + } + + /// Field number for the "data" field. + public const int DataFieldNumber = 3; + private global::PlayerJoinResponse data_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::PlayerJoinResponse Data { + get { return data_; } + set { + data_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as JoinRoomResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(JoinRoomResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Message != other.Message) return false; + if (Code != other.Code) return false; + if (!object.Equals(Data, other.Data)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Message.Length != 0) hash ^= Message.GetHashCode(); + if (Code != 0) hash ^= Code.GetHashCode(); + if (data_ != null) hash ^= Data.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (Code != 0) { + output.WriteRawTag(16); + output.WriteInt32(Code); + } + if (data_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Data); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (Code != 0) { + output.WriteRawTag(16); + output.WriteInt32(Code); + } + if (data_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Data); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Message.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (Code != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Code); + } + if (data_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Data); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(JoinRoomResponse other) { + if (other == null) { + return; + } + if (other.Message.Length != 0) { + Message = other.Message; + } + if (other.Code != 0) { + Code = other.Code; + } + if (other.data_ != null) { + if (data_ == null) { + Data = new global::PlayerJoinResponse(); + } + Data.MergeFrom(other.Data); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Message = input.ReadString(); + break; + } + case 16: { + Code = input.ReadInt32(); + break; + } + case 26: { + if (data_ == null) { + Data = new global::PlayerJoinResponse(); + } + input.ReadMessage(Data); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Message = input.ReadString(); + break; + } + case 16: { + Code = input.ReadInt32(); + break; + } + case 26: { + if (data_ == null) { + Data = new global::PlayerJoinResponse(); + } + input.ReadMessage(Data); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PlayerJoinResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlayerJoinResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PlayerJoinResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PlayerJoinResponse(PlayerJoinResponse other) : this() { + userName_ = other.userName_; + roomId_ = other.roomId_; + status_ = other.status_; + roleName_ = other.roleName_; + isLeadingNPC_ = other.isLeadingNPC_; + online_ = other.online_; + roleId_ = other.roleId_; + groupLeader_ = other.groupLeader_; + actionMode_ = other.actionMode_; + group_ = other.group_; + x_ = other.x_; + y_ = other.y_; + z_ = other.z_; + overseeCond_ = other.overseeCond_; + sendFrameCount_ = other.sendFrameCount_; + moveSpeedFirst_ = other.moveSpeedFirst_; + moveSpeedSecond_ = other.moveSpeedSecond_; + moveSpeedThird_ = other.moveSpeedThird_; + bearLoad_ = other.bearLoad_; + protection_ = other.protection_; + health_ = other.health_; + roleStatus_ = other.roleStatus_; + userId_ = other.userId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PlayerJoinResponse Clone() { + return new PlayerJoinResponse(this); + } + + /// Field number for the "UserName" field. + public const int UserNameFieldNumber = 1; + private string userName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserName { + get { return userName_; } + set { + userName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 2; + private string roomId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 3; + private int status_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Status { + get { return status_; } + set { + status_ = value; + } + } + + /// Field number for the "RoleName" field. + public const int RoleNameFieldNumber = 4; + private string roleName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoleName { + get { return roleName_; } + set { + roleName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "IsLeadingNPC" field. + public const int IsLeadingNPCFieldNumber = 5; + private int isLeadingNPC_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int IsLeadingNPC { + get { return isLeadingNPC_; } + set { + isLeadingNPC_ = value; + } + } + + /// Field number for the "Online" field. + public const int OnlineFieldNumber = 6; + private bool online_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Online { + get { return online_; } + set { + online_ = value; + } + } + + /// Field number for the "RoleId" field. + public const int RoleIdFieldNumber = 7; + private int roleId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RoleId { + get { return roleId_; } + set { + roleId_ = value; + } + } + + /// Field number for the "GroupLeader" field. + public const int GroupLeaderFieldNumber = 8; + private int groupLeader_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int GroupLeader { + get { return groupLeader_; } + set { + groupLeader_ = value; + } + } + + /// Field number for the "ActionMode" field. + public const int ActionModeFieldNumber = 9; + private int actionMode_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int ActionMode { + get { return actionMode_; } + set { + actionMode_ = value; + } + } + + /// Field number for the "Group" field. + public const int GroupFieldNumber = 10; + private int group_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Group { + get { return group_; } + set { + group_ = value; + } + } + + /// Field number for the "X" field. + public const int XFieldNumber = 11; + private float x_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "Y" field. + public const int YFieldNumber = 12; + private float y_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "Z" field. + public const int ZFieldNumber = 13; + private float z_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + /// Field number for the "OverseeCond" field. + public const int OverseeCondFieldNumber = 14; + private string overseeCond_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string OverseeCond { + get { return overseeCond_; } + set { + overseeCond_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "SendFrameCount" field. + public const int SendFrameCountFieldNumber = 15; + private int sendFrameCount_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int SendFrameCount { + get { return sendFrameCount_; } + set { + sendFrameCount_ = value; + } + } + + /// Field number for the "MoveSpeedFirst" field. + public const int MoveSpeedFirstFieldNumber = 16; + private int moveSpeedFirst_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int MoveSpeedFirst { + get { return moveSpeedFirst_; } + set { + moveSpeedFirst_ = value; + } + } + + /// Field number for the "MoveSpeedSecond" field. + public const int MoveSpeedSecondFieldNumber = 17; + private int moveSpeedSecond_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int MoveSpeedSecond { + get { return moveSpeedSecond_; } + set { + moveSpeedSecond_ = value; + } + } + + /// Field number for the "MoveSpeedThird" field. + public const int MoveSpeedThirdFieldNumber = 18; + private int moveSpeedThird_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int MoveSpeedThird { + get { return moveSpeedThird_; } + set { + moveSpeedThird_ = value; + } + } + + /// Field number for the "BearLoad" field. + public const int BearLoadFieldNumber = 19; + private int bearLoad_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int BearLoad { + get { return bearLoad_; } + set { + bearLoad_ = value; + } + } + + /// Field number for the "Protection" field. + public const int ProtectionFieldNumber = 20; + private int protection_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Protection { + get { return protection_; } + set { + protection_ = value; + } + } + + /// Field number for the "Health" field. + public const int HealthFieldNumber = 21; + private int health_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Health { + get { return health_; } + set { + health_ = value; + } + } + + /// Field number for the "RoleStatus" field. + public const int RoleStatusFieldNumber = 22; + private int roleStatus_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RoleStatus { + get { return roleStatus_; } + set { + roleStatus_ = value; + } + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 23; + private long userId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long UserId { + get { return userId_; } + set { + userId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PlayerJoinResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PlayerJoinResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserName != other.UserName) return false; + if (RoomId != other.RoomId) return false; + if (Status != other.Status) return false; + if (RoleName != other.RoleName) return false; + if (IsLeadingNPC != other.IsLeadingNPC) return false; + if (Online != other.Online) return false; + if (RoleId != other.RoleId) return false; + if (GroupLeader != other.GroupLeader) return false; + if (ActionMode != other.ActionMode) return false; + if (Group != other.Group) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + if (OverseeCond != other.OverseeCond) return false; + if (SendFrameCount != other.SendFrameCount) return false; + if (MoveSpeedFirst != other.MoveSpeedFirst) return false; + if (MoveSpeedSecond != other.MoveSpeedSecond) return false; + if (MoveSpeedThird != other.MoveSpeedThird) return false; + if (BearLoad != other.BearLoad) return false; + if (Protection != other.Protection) return false; + if (Health != other.Health) return false; + if (RoleStatus != other.RoleStatus) return false; + if (UserId != other.UserId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserName.Length != 0) hash ^= UserName.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (Status != 0) hash ^= Status.GetHashCode(); + if (RoleName.Length != 0) hash ^= RoleName.GetHashCode(); + if (IsLeadingNPC != 0) hash ^= IsLeadingNPC.GetHashCode(); + if (Online != false) hash ^= Online.GetHashCode(); + if (RoleId != 0) hash ^= RoleId.GetHashCode(); + if (GroupLeader != 0) hash ^= GroupLeader.GetHashCode(); + if (ActionMode != 0) hash ^= ActionMode.GetHashCode(); + if (Group != 0) hash ^= Group.GetHashCode(); + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (OverseeCond.Length != 0) hash ^= OverseeCond.GetHashCode(); + if (SendFrameCount != 0) hash ^= SendFrameCount.GetHashCode(); + if (MoveSpeedFirst != 0) hash ^= MoveSpeedFirst.GetHashCode(); + if (MoveSpeedSecond != 0) hash ^= MoveSpeedSecond.GetHashCode(); + if (MoveSpeedThird != 0) hash ^= MoveSpeedThird.GetHashCode(); + if (BearLoad != 0) hash ^= BearLoad.GetHashCode(); + if (Protection != 0) hash ^= Protection.GetHashCode(); + if (Health != 0) hash ^= Health.GetHashCode(); + if (RoleStatus != 0) hash ^= RoleStatus.GetHashCode(); + if (UserId != 0L) hash ^= UserId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserName); + } + if (RoomId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(RoomId); + } + if (Status != 0) { + output.WriteRawTag(24); + output.WriteInt32(Status); + } + if (RoleName.Length != 0) { + output.WriteRawTag(34); + output.WriteString(RoleName); + } + if (IsLeadingNPC != 0) { + output.WriteRawTag(40); + output.WriteInt32(IsLeadingNPC); + } + if (Online != false) { + output.WriteRawTag(48); + output.WriteBool(Online); + } + if (RoleId != 0) { + output.WriteRawTag(56); + output.WriteInt32(RoleId); + } + if (GroupLeader != 0) { + output.WriteRawTag(64); + output.WriteInt32(GroupLeader); + } + if (ActionMode != 0) { + output.WriteRawTag(72); + output.WriteInt32(ActionMode); + } + if (Group != 0) { + output.WriteRawTag(80); + output.WriteInt32(Group); + } + if (X != 0F) { + output.WriteRawTag(93); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(101); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(109); + output.WriteFloat(Z); + } + if (OverseeCond.Length != 0) { + output.WriteRawTag(114); + output.WriteString(OverseeCond); + } + if (SendFrameCount != 0) { + output.WriteRawTag(120); + output.WriteInt32(SendFrameCount); + } + if (MoveSpeedFirst != 0) { + output.WriteRawTag(128, 1); + output.WriteInt32(MoveSpeedFirst); + } + if (MoveSpeedSecond != 0) { + output.WriteRawTag(136, 1); + output.WriteInt32(MoveSpeedSecond); + } + if (MoveSpeedThird != 0) { + output.WriteRawTag(144, 1); + output.WriteInt32(MoveSpeedThird); + } + if (BearLoad != 0) { + output.WriteRawTag(152, 1); + output.WriteInt32(BearLoad); + } + if (Protection != 0) { + output.WriteRawTag(160, 1); + output.WriteInt32(Protection); + } + if (Health != 0) { + output.WriteRawTag(168, 1); + output.WriteInt32(Health); + } + if (RoleStatus != 0) { + output.WriteRawTag(176, 1); + output.WriteInt32(RoleStatus); + } + if (UserId != 0L) { + output.WriteRawTag(184, 1); + output.WriteInt64(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserName); + } + if (RoomId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(RoomId); + } + if (Status != 0) { + output.WriteRawTag(24); + output.WriteInt32(Status); + } + if (RoleName.Length != 0) { + output.WriteRawTag(34); + output.WriteString(RoleName); + } + if (IsLeadingNPC != 0) { + output.WriteRawTag(40); + output.WriteInt32(IsLeadingNPC); + } + if (Online != false) { + output.WriteRawTag(48); + output.WriteBool(Online); + } + if (RoleId != 0) { + output.WriteRawTag(56); + output.WriteInt32(RoleId); + } + if (GroupLeader != 0) { + output.WriteRawTag(64); + output.WriteInt32(GroupLeader); + } + if (ActionMode != 0) { + output.WriteRawTag(72); + output.WriteInt32(ActionMode); + } + if (Group != 0) { + output.WriteRawTag(80); + output.WriteInt32(Group); + } + if (X != 0F) { + output.WriteRawTag(93); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(101); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(109); + output.WriteFloat(Z); + } + if (OverseeCond.Length != 0) { + output.WriteRawTag(114); + output.WriteString(OverseeCond); + } + if (SendFrameCount != 0) { + output.WriteRawTag(120); + output.WriteInt32(SendFrameCount); + } + if (MoveSpeedFirst != 0) { + output.WriteRawTag(128, 1); + output.WriteInt32(MoveSpeedFirst); + } + if (MoveSpeedSecond != 0) { + output.WriteRawTag(136, 1); + output.WriteInt32(MoveSpeedSecond); + } + if (MoveSpeedThird != 0) { + output.WriteRawTag(144, 1); + output.WriteInt32(MoveSpeedThird); + } + if (BearLoad != 0) { + output.WriteRawTag(152, 1); + output.WriteInt32(BearLoad); + } + if (Protection != 0) { + output.WriteRawTag(160, 1); + output.WriteInt32(Protection); + } + if (Health != 0) { + output.WriteRawTag(168, 1); + output.WriteInt32(Health); + } + if (RoleStatus != 0) { + output.WriteRawTag(176, 1); + output.WriteInt32(RoleStatus); + } + if (UserId != 0L) { + output.WriteRawTag(184, 1); + output.WriteInt64(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserName); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (Status != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Status); + } + if (RoleName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoleName); + } + if (IsLeadingNPC != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(IsLeadingNPC); + } + if (Online != false) { + size += 1 + 1; + } + if (RoleId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoleId); + } + if (GroupLeader != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(GroupLeader); + } + if (ActionMode != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(ActionMode); + } + if (Group != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Group); + } + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (Z != 0F) { + size += 1 + 4; + } + if (OverseeCond.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(OverseeCond); + } + if (SendFrameCount != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(SendFrameCount); + } + if (MoveSpeedFirst != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(MoveSpeedFirst); + } + if (MoveSpeedSecond != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(MoveSpeedSecond); + } + if (MoveSpeedThird != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(MoveSpeedThird); + } + if (BearLoad != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(BearLoad); + } + if (Protection != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(Protection); + } + if (Health != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(Health); + } + if (RoleStatus != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoleStatus); + } + if (UserId != 0L) { + size += 2 + pb::CodedOutputStream.ComputeInt64Size(UserId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PlayerJoinResponse other) { + if (other == null) { + return; + } + if (other.UserName.Length != 0) { + UserName = other.UserName; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.Status != 0) { + Status = other.Status; + } + if (other.RoleName.Length != 0) { + RoleName = other.RoleName; + } + if (other.IsLeadingNPC != 0) { + IsLeadingNPC = other.IsLeadingNPC; + } + if (other.Online != false) { + Online = other.Online; + } + if (other.RoleId != 0) { + RoleId = other.RoleId; + } + if (other.GroupLeader != 0) { + GroupLeader = other.GroupLeader; + } + if (other.ActionMode != 0) { + ActionMode = other.ActionMode; + } + if (other.Group != 0) { + Group = other.Group; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.Z != 0F) { + Z = other.Z; + } + if (other.OverseeCond.Length != 0) { + OverseeCond = other.OverseeCond; + } + if (other.SendFrameCount != 0) { + SendFrameCount = other.SendFrameCount; + } + if (other.MoveSpeedFirst != 0) { + MoveSpeedFirst = other.MoveSpeedFirst; + } + if (other.MoveSpeedSecond != 0) { + MoveSpeedSecond = other.MoveSpeedSecond; + } + if (other.MoveSpeedThird != 0) { + MoveSpeedThird = other.MoveSpeedThird; + } + if (other.BearLoad != 0) { + BearLoad = other.BearLoad; + } + if (other.Protection != 0) { + Protection = other.Protection; + } + if (other.Health != 0) { + Health = other.Health; + } + if (other.RoleStatus != 0) { + RoleStatus = other.RoleStatus; + } + if (other.UserId != 0L) { + UserId = other.UserId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + UserName = input.ReadString(); + break; + } + case 18: { + RoomId = input.ReadString(); + break; + } + case 24: { + Status = input.ReadInt32(); + break; + } + case 34: { + RoleName = input.ReadString(); + break; + } + case 40: { + IsLeadingNPC = input.ReadInt32(); + break; + } + case 48: { + Online = input.ReadBool(); + break; + } + case 56: { + RoleId = input.ReadInt32(); + break; + } + case 64: { + GroupLeader = input.ReadInt32(); + break; + } + case 72: { + ActionMode = input.ReadInt32(); + break; + } + case 80: { + Group = input.ReadInt32(); + break; + } + case 93: { + X = input.ReadFloat(); + break; + } + case 101: { + Y = input.ReadFloat(); + break; + } + case 109: { + Z = input.ReadFloat(); + break; + } + case 114: { + OverseeCond = input.ReadString(); + break; + } + case 120: { + SendFrameCount = input.ReadInt32(); + break; + } + case 128: { + MoveSpeedFirst = input.ReadInt32(); + break; + } + case 136: { + MoveSpeedSecond = input.ReadInt32(); + break; + } + case 144: { + MoveSpeedThird = input.ReadInt32(); + break; + } + case 152: { + BearLoad = input.ReadInt32(); + break; + } + case 160: { + Protection = input.ReadInt32(); + break; + } + case 168: { + Health = input.ReadInt32(); + break; + } + case 176: { + RoleStatus = input.ReadInt32(); + break; + } + case 184: { + UserId = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + UserName = input.ReadString(); + break; + } + case 18: { + RoomId = input.ReadString(); + break; + } + case 24: { + Status = input.ReadInt32(); + break; + } + case 34: { + RoleName = input.ReadString(); + break; + } + case 40: { + IsLeadingNPC = input.ReadInt32(); + break; + } + case 48: { + Online = input.ReadBool(); + break; + } + case 56: { + RoleId = input.ReadInt32(); + break; + } + case 64: { + GroupLeader = input.ReadInt32(); + break; + } + case 72: { + ActionMode = input.ReadInt32(); + break; + } + case 80: { + Group = input.ReadInt32(); + break; + } + case 93: { + X = input.ReadFloat(); + break; + } + case 101: { + Y = input.ReadFloat(); + break; + } + case 109: { + Z = input.ReadFloat(); + break; + } + case 114: { + OverseeCond = input.ReadString(); + break; + } + case 120: { + SendFrameCount = input.ReadInt32(); + break; + } + case 128: { + MoveSpeedFirst = input.ReadInt32(); + break; + } + case 136: { + MoveSpeedSecond = input.ReadInt32(); + break; + } + case 144: { + MoveSpeedThird = input.ReadInt32(); + break; + } + case 152: { + BearLoad = input.ReadInt32(); + break; + } + case 160: { + Protection = input.ReadInt32(); + break; + } + case 168: { + Health = input.ReadInt32(); + break; + } + case 176: { + RoleStatus = input.ReadInt32(); + break; + } + case 184: { + UserId = input.ReadInt64(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PropTemplateRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PropTemplateRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropTemplateRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropTemplateRequest(PropTemplateRequest other) : this() { + templateId_ = other.templateId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropTemplateRequest Clone() { + return new PropTemplateRequest(this); + } + + /// Field number for the "templateId" field. + public const int TemplateIdFieldNumber = 1; + private long templateId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TemplateId { + get { return templateId_; } + set { + templateId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PropTemplateRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PropTemplateRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TemplateId != other.TemplateId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TemplateId != 0L) hash ^= TemplateId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TemplateId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(TemplateId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TemplateId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(TemplateId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TemplateId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TemplateId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PropTemplateRequest other) { + if (other == null) { + return; + } + if (other.TemplateId != 0L) { + TemplateId = other.TemplateId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TemplateId = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TemplateId = input.ReadInt64(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PropTemplateResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PropTemplateResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropTemplateResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropTemplateResponse(PropTemplateResponse other) : this() { + templateId_ = other.templateId_; + num_ = other.num_; + materialId_ = other.materialId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropTemplateResponse Clone() { + return new PropTemplateResponse(this); + } + + /// Field number for the "TemplateId" field. + public const int TemplateIdFieldNumber = 1; + private long templateId_; + /// + /// 道具模板id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TemplateId { + get { return templateId_; } + set { + templateId_ = value; + } + } + + /// Field number for the "Num" field. + public const int NumFieldNumber = 2; + private long num_; + /// + /// 道具数量 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Num { + get { return num_; } + set { + num_ = value; + } + } + + /// Field number for the "MaterialId" field. + public const int MaterialIdFieldNumber = 3; + private long materialId_; + /// + /// 材料id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long MaterialId { + get { return materialId_; } + set { + materialId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PropTemplateResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PropTemplateResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TemplateId != other.TemplateId) return false; + if (Num != other.Num) return false; + if (MaterialId != other.MaterialId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TemplateId != 0L) hash ^= TemplateId.GetHashCode(); + if (Num != 0L) hash ^= Num.GetHashCode(); + if (MaterialId != 0L) hash ^= MaterialId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TemplateId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(TemplateId); + } + if (Num != 0L) { + output.WriteRawTag(16); + output.WriteInt64(Num); + } + if (MaterialId != 0L) { + output.WriteRawTag(24); + output.WriteInt64(MaterialId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TemplateId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(TemplateId); + } + if (Num != 0L) { + output.WriteRawTag(16); + output.WriteInt64(Num); + } + if (MaterialId != 0L) { + output.WriteRawTag(24); + output.WriteInt64(MaterialId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TemplateId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TemplateId); + } + if (Num != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Num); + } + if (MaterialId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(MaterialId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PropTemplateResponse other) { + if (other == null) { + return; + } + if (other.TemplateId != 0L) { + TemplateId = other.TemplateId; + } + if (other.Num != 0L) { + Num = other.Num; + } + if (other.MaterialId != 0L) { + MaterialId = other.MaterialId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TemplateId = input.ReadInt64(); + break; + } + case 16: { + Num = input.ReadInt64(); + break; + } + case 24: { + MaterialId = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TemplateId = input.ReadInt64(); + break; + } + case 16: { + Num = input.ReadInt64(); + break; + } + case 24: { + MaterialId = input.ReadInt64(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PpcPropResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PpcPropResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[9]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PpcPropResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PpcPropResponse(PpcPropResponse other) : this() { + responses_ = other.responses_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PpcPropResponse Clone() { + return new PpcPropResponse(this); + } + + /// Field number for the "responses" field. + public const int ResponsesFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_responses_codec + = pb::FieldCodec.ForMessage(10, global::PropTemplateResponse.Parser); + private readonly pbc::RepeatedField responses_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Responses { + get { return responses_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PpcPropResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PpcPropResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!responses_.Equals(other.responses_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= responses_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + responses_.WriteTo(output, _repeated_responses_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + responses_.WriteTo(ref output, _repeated_responses_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += responses_.CalculateSize(_repeated_responses_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PpcPropResponse other) { + if (other == null) { + return; + } + responses_.Add(other.responses_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + responses_.AddEntriesFrom(input, _repeated_responses_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + responses_.AddEntriesFrom(ref input, _repeated_responses_codec); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class RpcRoomInfoResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RpcRoomInfoResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[10]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RpcRoomInfoResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RpcRoomInfoResponse(RpcRoomInfoResponse other) : this() { + id_ = other.id_; + templateId_ = other.templateId_; + status_ = other.status_; + reserveDate_ = other.reserveDate_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RpcRoomInfoResponse Clone() { + return new RpcRoomInfoResponse(this); + } + + /// Field number for the "Id" field. + public const int IdFieldNumber = 1; + private long id_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Id { + get { return id_; } + set { + id_ = value; + } + } + + /// Field number for the "TemplateId" field. + public const int TemplateIdFieldNumber = 2; + private long templateId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TemplateId { + get { return templateId_; } + set { + templateId_ = value; + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 3; + private long status_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Status { + get { return status_; } + set { + status_ = value; + } + } + + /// Field number for the "ReserveDate" field. + public const int ReserveDateFieldNumber = 4; + private long reserveDate_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long ReserveDate { + get { return reserveDate_; } + set { + reserveDate_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RpcRoomInfoResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RpcRoomInfoResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (TemplateId != other.TemplateId) return false; + if (Status != other.Status) return false; + if (ReserveDate != other.ReserveDate) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id != 0L) hash ^= Id.GetHashCode(); + if (TemplateId != 0L) hash ^= TemplateId.GetHashCode(); + if (Status != 0L) hash ^= Status.GetHashCode(); + if (ReserveDate != 0L) hash ^= ReserveDate.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (TemplateId != 0L) { + output.WriteRawTag(16); + output.WriteInt64(TemplateId); + } + if (Status != 0L) { + output.WriteRawTag(24); + output.WriteInt64(Status); + } + if (ReserveDate != 0L) { + output.WriteRawTag(32); + output.WriteInt64(ReserveDate); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (TemplateId != 0L) { + output.WriteRawTag(16); + output.WriteInt64(TemplateId); + } + if (Status != 0L) { + output.WriteRawTag(24); + output.WriteInt64(Status); + } + if (ReserveDate != 0L) { + output.WriteRawTag(32); + output.WriteInt64(ReserveDate); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Id); + } + if (TemplateId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TemplateId); + } + if (Status != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Status); + } + if (ReserveDate != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(ReserveDate); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RpcRoomInfoResponse other) { + if (other == null) { + return; + } + if (other.Id != 0L) { + Id = other.Id; + } + if (other.TemplateId != 0L) { + TemplateId = other.TemplateId; + } + if (other.Status != 0L) { + Status = other.Status; + } + if (other.ReserveDate != 0L) { + ReserveDate = other.ReserveDate; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 16: { + TemplateId = input.ReadInt64(); + break; + } + case 24: { + Status = input.ReadInt64(); + break; + } + case 32: { + ReserveDate = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 16: { + TemplateId = input.ReadInt64(); + break; + } + case 24: { + Status = input.ReadInt64(); + break; + } + case 32: { + ReserveDate = input.ReadInt64(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserTemplateRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserTemplateRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplateRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplateRequest(UserTemplateRequest other) : this() { + templateId_ = other.templateId_; + roomId_ = other.roomId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplateRequest Clone() { + return new UserTemplateRequest(this); + } + + /// Field number for the "templateId" field. + public const int TemplateIdFieldNumber = 1; + private long templateId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TemplateId { + get { return templateId_; } + set { + templateId_ = value; + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 2; + private string roomId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserTemplateRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserTemplateRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TemplateId != other.TemplateId) return false; + if (RoomId != other.RoomId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TemplateId != 0L) hash ^= TemplateId.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TemplateId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(TemplateId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TemplateId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(TemplateId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TemplateId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TemplateId); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserTemplateRequest other) { + if (other == null) { + return; + } + if (other.TemplateId != 0L) { + TemplateId = other.TemplateId; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TemplateId = input.ReadInt64(); + break; + } + case 18: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TemplateId = input.ReadInt64(); + break; + } + case 18: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserTemplate : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserTemplate()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[12]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplate() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplate(UserTemplate other) : this() { + responses_ = other.responses_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplate Clone() { + return new UserTemplate(this); + } + + /// Field number for the "responses" field. + public const int ResponsesFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_responses_codec + = pb::FieldCodec.ForMessage(10, global::UserTemplateResponse.Parser); + private readonly pbc::RepeatedField responses_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Responses { + get { return responses_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserTemplate); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserTemplate other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!responses_.Equals(other.responses_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= responses_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + responses_.WriteTo(output, _repeated_responses_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + responses_.WriteTo(ref output, _repeated_responses_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += responses_.CalculateSize(_repeated_responses_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserTemplate other) { + if (other == null) { + return; + } + responses_.Add(other.responses_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + responses_.AddEntriesFrom(input, _repeated_responses_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + responses_.AddEntriesFrom(ref input, _repeated_responses_codec); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserTemplateResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserTemplateResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[13]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplateResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplateResponse(UserTemplateResponse other) : this() { + roomId_ = other.roomId_; + userId_ = other.userId_; + status_ = other.status_; + templateId_ = other.templateId_; + roleId_ = other.roleId_; + birthAreaId_ = other.birthAreaId_; + chargeAreaId_ = other.chargeAreaId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserTemplateResponse Clone() { + return new UserTemplateResponse(this); + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 1; + private long roomId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long RoomId { + get { return roomId_; } + set { + roomId_ = value; + } + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 2; + private long userId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long UserId { + get { return userId_; } + set { + userId_ = value; + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 3; + private int status_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Status { + get { return status_; } + set { + status_ = value; + } + } + + /// Field number for the "TemplateId" field. + public const int TemplateIdFieldNumber = 4; + private long templateId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TemplateId { + get { return templateId_; } + set { + templateId_ = value; + } + } + + /// Field number for the "RoleId" field. + public const int RoleIdFieldNumber = 5; + private long roleId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long RoleId { + get { return roleId_; } + set { + roleId_ = value; + } + } + + /// Field number for the "BirthAreaId" field. + public const int BirthAreaIdFieldNumber = 6; + private long birthAreaId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long BirthAreaId { + get { return birthAreaId_; } + set { + birthAreaId_ = value; + } + } + + /// Field number for the "ChargeAreaId" field. + public const int ChargeAreaIdFieldNumber = 7; + private long chargeAreaId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long ChargeAreaId { + get { return chargeAreaId_; } + set { + chargeAreaId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserTemplateResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserTemplateResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + if (UserId != other.UserId) return false; + if (Status != other.Status) return false; + if (TemplateId != other.TemplateId) return false; + if (RoleId != other.RoleId) return false; + if (BirthAreaId != other.BirthAreaId) return false; + if (ChargeAreaId != other.ChargeAreaId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId != 0L) hash ^= RoomId.GetHashCode(); + if (UserId != 0L) hash ^= UserId.GetHashCode(); + if (Status != 0) hash ^= Status.GetHashCode(); + if (TemplateId != 0L) hash ^= TemplateId.GetHashCode(); + if (RoleId != 0L) hash ^= RoleId.GetHashCode(); + if (BirthAreaId != 0L) hash ^= BirthAreaId.GetHashCode(); + if (ChargeAreaId != 0L) hash ^= ChargeAreaId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(RoomId); + } + if (UserId != 0L) { + output.WriteRawTag(16); + output.WriteInt64(UserId); + } + if (Status != 0) { + output.WriteRawTag(24); + output.WriteInt32(Status); + } + if (TemplateId != 0L) { + output.WriteRawTag(32); + output.WriteInt64(TemplateId); + } + if (RoleId != 0L) { + output.WriteRawTag(40); + output.WriteInt64(RoleId); + } + if (BirthAreaId != 0L) { + output.WriteRawTag(48); + output.WriteInt64(BirthAreaId); + } + if (ChargeAreaId != 0L) { + output.WriteRawTag(56); + output.WriteInt64(ChargeAreaId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(RoomId); + } + if (UserId != 0L) { + output.WriteRawTag(16); + output.WriteInt64(UserId); + } + if (Status != 0) { + output.WriteRawTag(24); + output.WriteInt32(Status); + } + if (TemplateId != 0L) { + output.WriteRawTag(32); + output.WriteInt64(TemplateId); + } + if (RoleId != 0L) { + output.WriteRawTag(40); + output.WriteInt64(RoleId); + } + if (BirthAreaId != 0L) { + output.WriteRawTag(48); + output.WriteInt64(BirthAreaId); + } + if (ChargeAreaId != 0L) { + output.WriteRawTag(56); + output.WriteInt64(ChargeAreaId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(RoomId); + } + if (UserId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId); + } + if (Status != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Status); + } + if (TemplateId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TemplateId); + } + if (RoleId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(RoleId); + } + if (BirthAreaId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(BirthAreaId); + } + if (ChargeAreaId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(ChargeAreaId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserTemplateResponse other) { + if (other == null) { + return; + } + if (other.RoomId != 0L) { + RoomId = other.RoomId; + } + if (other.UserId != 0L) { + UserId = other.UserId; + } + if (other.Status != 0) { + Status = other.Status; + } + if (other.TemplateId != 0L) { + TemplateId = other.TemplateId; + } + if (other.RoleId != 0L) { + RoleId = other.RoleId; + } + if (other.BirthAreaId != 0L) { + BirthAreaId = other.BirthAreaId; + } + if (other.ChargeAreaId != 0L) { + ChargeAreaId = other.ChargeAreaId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + RoomId = input.ReadInt64(); + break; + } + case 16: { + UserId = input.ReadInt64(); + break; + } + case 24: { + Status = input.ReadInt32(); + break; + } + case 32: { + TemplateId = input.ReadInt64(); + break; + } + case 40: { + RoleId = input.ReadInt64(); + break; + } + case 48: { + BirthAreaId = input.ReadInt64(); + break; + } + case 56: { + ChargeAreaId = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + RoomId = input.ReadInt64(); + break; + } + case 16: { + UserId = input.ReadInt64(); + break; + } + case 24: { + Status = input.ReadInt32(); + break; + } + case 32: { + TemplateId = input.ReadInt64(); + break; + } + case 40: { + RoleId = input.ReadInt64(); + break; + } + case 48: { + BirthAreaId = input.ReadInt64(); + break; + } + case 56: { + ChargeAreaId = input.ReadInt64(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserInfoRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserInfoRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[14]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserInfoRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserInfoRequest(UserInfoRequest other) : this() { + userId_ = other.userId_; + status_ = other.status_; + roomId_ = other.roomId_; + x_ = other.x_; + y_ = other.y_; + z_ = other.z_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserInfoRequest Clone() { + return new UserInfoRequest(this); + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 1; + private long userId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long UserId { + get { return userId_; } + set { + userId_ = value; + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 2; + private int status_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Status { + get { return status_; } + set { + status_ = value; + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 3; + private string roomId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "x" field. + public const int XFieldNumber = 4; + private float x_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "y" field. + public const int YFieldNumber = 5; + private float y_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "z" field. + public const int ZFieldNumber = 6; + private float z_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserInfoRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserInfoRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + if (Status != other.Status) return false; + if (RoomId != other.RoomId) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId != 0L) hash ^= UserId.GetHashCode(); + if (Status != 0) hash ^= Status.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(UserId); + } + if (Status != 0) { + output.WriteRawTag(16); + output.WriteInt32(Status); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (X != 0F) { + output.WriteRawTag(37); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(45); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(53); + output.WriteFloat(Z); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(UserId); + } + if (Status != 0) { + output.WriteRawTag(16); + output.WriteInt32(Status); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (X != 0F) { + output.WriteRawTag(37); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(45); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(53); + output.WriteFloat(Z); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId); + } + if (Status != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Status); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (Z != 0F) { + size += 1 + 4; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserInfoRequest other) { + if (other == null) { + return; + } + if (other.UserId != 0L) { + UserId = other.UserId; + } + if (other.Status != 0) { + Status = other.Status; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.Z != 0F) { + Z = other.Z; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + UserId = input.ReadInt64(); + break; + } + case 16: { + Status = input.ReadInt32(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + case 37: { + X = input.ReadFloat(); + break; + } + case 45: { + Y = input.ReadFloat(); + break; + } + case 53: { + Z = input.ReadFloat(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + UserId = input.ReadInt64(); + break; + } + case 16: { + Status = input.ReadInt32(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + case 37: { + X = input.ReadFloat(); + break; + } + case 45: { + Y = input.ReadFloat(); + break; + } + case 53: { + Z = input.ReadFloat(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserInfoResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserInfoResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::HallReflection.Descriptor.MessageTypes[15]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserInfoResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserInfoResponse(UserInfoResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserInfoResponse Clone() { + return new UserInfoResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserInfoResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserInfoResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserInfoResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Hall.cs.meta b/xiaofang/Assets/comm/Proto/Hall.cs.meta new file mode 100644 index 00000000..949acf0b --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Hall.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fd26537609bdf14b8eb7d5150ef5262 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Join.cs b/xiaofang/Assets/comm/Proto/Join.cs new file mode 100644 index 00000000..33bae7dc --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Join.cs @@ -0,0 +1,675 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: join.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from join.proto +public static partial class JoinReflection { + + #region Descriptor + /// File descriptor for join.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static JoinReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgpqb2luLnByb3RvIogBChBVc2VySm9pblJlc3BvbnNlEg4KBnVzZXJJZBgB", + "IAEoAxIQCghuaWNrTmFtZRgCIAEoCRIQCghyb2xlTmFtZRgDIAEoCRIOCgZy", + "b29tSWQYBCABKAkSDgoGb25saW5lGAUgASgIEhMKC21lc3NhZ2VUeXBlGAYg", + "ASgFEgsKA2NtZBgHIAEoCSI3ChBSb29tVXNlclJlc3BvbnNlEiMKCHVzZXJM", + "aXN0GAEgAygLMhEuVXNlckpvaW5SZXNwb25zZUIHWgUuLztwYmIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::UserJoinResponse), global::UserJoinResponse.Parser, new[]{ "UserId", "NickName", "RoleName", "RoomId", "Online", "MessageType", "Cmd" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::RoomUserResponse), global::RoomUserResponse.Parser, new[]{ "UserList" }, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserJoinResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserJoinResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::JoinReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserJoinResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserJoinResponse(UserJoinResponse other) : this() { + userId_ = other.userId_; + nickName_ = other.nickName_; + roleName_ = other.roleName_; + roomId_ = other.roomId_; + online_ = other.online_; + messageType_ = other.messageType_; + cmd_ = other.cmd_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserJoinResponse Clone() { + return new UserJoinResponse(this); + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 1; + private long userId_; + /// + /// 用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long UserId { + get { return userId_; } + set { + userId_ = value; + } + } + + /// Field number for the "nickName" field. + public const int NickNameFieldNumber = 2; + private string nickName_ = ""; + /// + /// 用户名 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string NickName { + get { return nickName_; } + set { + nickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "roleName" field. + public const int RoleNameFieldNumber = 3; + private string roleName_ = ""; + /// + /// 用户角色 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoleName { + get { return roleName_; } + set { + roleName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 4; + private string roomId_ = ""; + /// + ///房间号 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "online" field. + public const int OnlineFieldNumber = 5; + private bool online_; + /// + ///状态 接收这个用户是不是掉线了 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Online { + get { return online_; } + set { + online_ = value; + } + } + + /// Field number for the "messageType" field. + public const int MessageTypeFieldNumber = 6; + private int messageType_; + /// + ///事件状态 1 用户上线 2用户下线 3 用户加入房间 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int MessageType { + get { return messageType_; } + set { + messageType_ = value; + } + } + + /// Field number for the "cmd" field. + public const int CmdFieldNumber = 7; + private string cmd_ = ""; + /// + ///操作指令 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Cmd { + get { return cmd_; } + set { + cmd_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserJoinResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserJoinResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + if (NickName != other.NickName) return false; + if (RoleName != other.RoleName) return false; + if (RoomId != other.RoomId) return false; + if (Online != other.Online) return false; + if (MessageType != other.MessageType) return false; + if (Cmd != other.Cmd) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId != 0L) hash ^= UserId.GetHashCode(); + if (NickName.Length != 0) hash ^= NickName.GetHashCode(); + if (RoleName.Length != 0) hash ^= RoleName.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (Online != false) hash ^= Online.GetHashCode(); + if (MessageType != 0) hash ^= MessageType.GetHashCode(); + if (Cmd.Length != 0) hash ^= Cmd.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(UserId); + } + if (NickName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(NickName); + } + if (RoleName.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoleName); + } + if (RoomId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(RoomId); + } + if (Online != false) { + output.WriteRawTag(40); + output.WriteBool(Online); + } + if (MessageType != 0) { + output.WriteRawTag(48); + output.WriteInt32(MessageType); + } + if (Cmd.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Cmd); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserId != 0L) { + output.WriteRawTag(8); + output.WriteInt64(UserId); + } + if (NickName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(NickName); + } + if (RoleName.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoleName); + } + if (RoomId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(RoomId); + } + if (Online != false) { + output.WriteRawTag(40); + output.WriteBool(Online); + } + if (MessageType != 0) { + output.WriteRawTag(48); + output.WriteInt32(MessageType); + } + if (Cmd.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Cmd); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId); + } + if (NickName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName); + } + if (RoleName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoleName); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (Online != false) { + size += 1 + 1; + } + if (MessageType != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(MessageType); + } + if (Cmd.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Cmd); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserJoinResponse other) { + if (other == null) { + return; + } + if (other.UserId != 0L) { + UserId = other.UserId; + } + if (other.NickName.Length != 0) { + NickName = other.NickName; + } + if (other.RoleName.Length != 0) { + RoleName = other.RoleName; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.Online != false) { + Online = other.Online; + } + if (other.MessageType != 0) { + MessageType = other.MessageType; + } + if (other.Cmd.Length != 0) { + Cmd = other.Cmd; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + UserId = input.ReadInt64(); + break; + } + case 18: { + NickName = input.ReadString(); + break; + } + case 26: { + RoleName = input.ReadString(); + break; + } + case 34: { + RoomId = input.ReadString(); + break; + } + case 40: { + Online = input.ReadBool(); + break; + } + case 48: { + MessageType = input.ReadInt32(); + break; + } + case 58: { + Cmd = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + UserId = input.ReadInt64(); + break; + } + case 18: { + NickName = input.ReadString(); + break; + } + case 26: { + RoleName = input.ReadString(); + break; + } + case 34: { + RoomId = input.ReadString(); + break; + } + case 40: { + Online = input.ReadBool(); + break; + } + case 48: { + MessageType = input.ReadInt32(); + break; + } + case 58: { + Cmd = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class RoomUserResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RoomUserResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::JoinReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoomUserResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoomUserResponse(RoomUserResponse other) : this() { + userList_ = other.userList_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoomUserResponse Clone() { + return new RoomUserResponse(this); + } + + /// Field number for the "userList" field. + public const int UserListFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_userList_codec + = pb::FieldCodec.ForMessage(10, global::UserJoinResponse.Parser); + private readonly pbc::RepeatedField userList_ = new pbc::RepeatedField(); + /// + ///用户列表 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField UserList { + get { return userList_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RoomUserResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RoomUserResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!userList_.Equals(other.userList_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= userList_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + userList_.WriteTo(output, _repeated_userList_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + userList_.WriteTo(ref output, _repeated_userList_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += userList_.CalculateSize(_repeated_userList_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RoomUserResponse other) { + if (other == null) { + return; + } + userList_.Add(other.userList_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + userList_.AddEntriesFrom(input, _repeated_userList_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + userList_.AddEntriesFrom(ref input, _repeated_userList_codec); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Join.cs.meta b/xiaofang/Assets/comm/Proto/Join.cs.meta new file mode 100644 index 00000000..1b6c2aaf --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Join.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63abcfa0f6080534d8642cfb5eae1ac0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/MessageBroadcast.cs b/xiaofang/Assets/comm/Proto/MessageBroadcast.cs new file mode 100644 index 00000000..090d9636 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/MessageBroadcast.cs @@ -0,0 +1,525 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: message_broadcast.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from message_broadcast.proto +public static partial class MessageBroadcastReflection { + + #region Descriptor + /// File descriptor for message_broadcast.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static MessageBroadcastReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChdtZXNzYWdlX2Jyb2FkY2FzdC5wcm90byJUChdNZXNzYWdlQnJvYWRjYXN0", + "UmVxdWVzdBIOCgZyb29tSWQYASABKAkSDAoEdHlwZRgCIAEoBRIOCgZyb2xl", + "SWQYAyABKAkSCwoDY21kGAQgASgJIhoKGE1lc3NhZ2VCcm9hZGNhc3RSZXNw", + "b25zZUIHWgUuLztwYmIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::MessageBroadcastRequest), global::MessageBroadcastRequest.Parser, new[]{ "RoomId", "Type", "RoleId", "Cmd" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::MessageBroadcastResponse), global::MessageBroadcastResponse.Parser, null, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class MessageBroadcastRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MessageBroadcastRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MessageBroadcastReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageBroadcastRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageBroadcastRequest(MessageBroadcastRequest other) : this() { + roomId_ = other.roomId_; + type_ = other.type_; + roleId_ = other.roleId_; + cmd_ = other.cmd_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageBroadcastRequest Clone() { + return new MessageBroadcastRequest(this); + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "type" field. + public const int TypeFieldNumber = 2; + private int type_; + /// + /// 消息类型 1. 文本 2. 图片 3. 语音 4. 视频 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Type { + get { return type_; } + set { + type_ = value; + } + } + + /// Field number for the "roleId" field. + public const int RoleIdFieldNumber = 3; + private string roleId_ = ""; + /// + /// 角色Id 如果为空就是给所有人发 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoleId { + get { return roleId_; } + set { + roleId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "cmd" field. + public const int CmdFieldNumber = 4; + private string cmd_ = ""; + /// + /// 自定义命令 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Cmd { + get { return cmd_; } + set { + cmd_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MessageBroadcastRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MessageBroadcastRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + if (Type != other.Type) return false; + if (RoleId != other.RoleId) return false; + if (Cmd != other.Cmd) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (Type != 0) hash ^= Type.GetHashCode(); + if (RoleId.Length != 0) hash ^= RoleId.GetHashCode(); + if (Cmd.Length != 0) hash ^= Cmd.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (Type != 0) { + output.WriteRawTag(16); + output.WriteInt32(Type); + } + if (RoleId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoleId); + } + if (Cmd.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Cmd); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (Type != 0) { + output.WriteRawTag(16); + output.WriteInt32(Type); + } + if (RoleId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoleId); + } + if (Cmd.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Cmd); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (Type != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type); + } + if (RoleId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoleId); + } + if (Cmd.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Cmd); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MessageBroadcastRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.Type != 0) { + Type = other.Type; + } + if (other.RoleId.Length != 0) { + RoleId = other.RoleId; + } + if (other.Cmd.Length != 0) { + Cmd = other.Cmd; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 16: { + Type = input.ReadInt32(); + break; + } + case 26: { + RoleId = input.ReadString(); + break; + } + case 34: { + Cmd = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 16: { + Type = input.ReadInt32(); + break; + } + case 26: { + RoleId = input.ReadString(); + break; + } + case 34: { + Cmd = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class MessageBroadcastResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MessageBroadcastResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MessageBroadcastReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageBroadcastResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageBroadcastResponse(MessageBroadcastResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageBroadcastResponse Clone() { + return new MessageBroadcastResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MessageBroadcastResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MessageBroadcastResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MessageBroadcastResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/MessageBroadcast.cs.meta b/xiaofang/Assets/comm/Proto/MessageBroadcast.cs.meta new file mode 100644 index 00000000..fab2149e --- /dev/null +++ b/xiaofang/Assets/comm/Proto/MessageBroadcast.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 061900a49550cc74582eb8e4598a886b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Move.cs b/xiaofang/Assets/comm/Proto/Move.cs new file mode 100644 index 00000000..cd58110a --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Move.cs @@ -0,0 +1,1927 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: move.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from move.proto +public static partial class MoveReflection { + + #region Descriptor + /// File descriptor for move.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static MoveReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgptb3ZlLnByb3RvIiIKEE5wY0NyZWF0ZVJlcXVlc3QSDgoGcm9vbUlkGAEg", + "ASgJIhMKEU5wY0NyZWF0ZVJlc3BvbnNlIi8KC01vdmVSZXF1ZXN0Eg4KBnJv", + "b21JZBgBIAEoCRIQCghtb3ZlVHlwZRgCIAEoBSJKCgxNb3ZlUmVzcG9uc2US", + "DgoGdXNlcklkGAIgASgJEg4KBnJvb21JZBgDIAEoCRIaCghtb3ZlRGF0YRgB", + "IAMoCzIILk5wY0RhdGEifAoHTnBjRGF0YRIJCgF4GAEgASgCEgkKAXkYAiAB", + "KAISCQoBehgDIAEoAhIOCgZ1c2VySWQYBCABKAkSEAoIbmlja05hbWUYCCAB", + "KAkSDAoEdHlwZRgFIAEoBRIRCglmb3JtYXRpb24YBiABKAUSDQoFZXZlbnQY", + "ByABKAUiVQoSTW92ZVJvb21Bb2lSZXF1ZXN0Eg4KBnJvb21JZBgBIAEoCRIO", + "CgZ1c2VySWQYAiABKAMSCQoBeBgDIAEoAhIJCgF5GAQgASgCEgkKAXoYBSAB", + "KAIiFQoTTW92ZVJvb21Bb2lSZXNwb25zZUIHWgUuLztwYmIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::NpcCreateRequest), global::NpcCreateRequest.Parser, new[]{ "RoomId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::NpcCreateResponse), global::NpcCreateResponse.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::MoveRequest), global::MoveRequest.Parser, new[]{ "RoomId", "MoveType" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::MoveResponse), global::MoveResponse.Parser, new[]{ "UserId", "RoomId", "MoveData" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::NpcData), global::NpcData.Parser, new[]{ "X", "Y", "Z", "UserId", "NickName", "Type", "Formation", "Event" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::MoveRoomAoiRequest), global::MoveRoomAoiRequest.Parser, new[]{ "RoomId", "UserId", "X", "Y", "Z" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::MoveRoomAoiResponse), global::MoveRoomAoiResponse.Parser, null, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class NpcCreateRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NpcCreateRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcCreateRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcCreateRequest(NpcCreateRequest other) : this() { + roomId_ = other.roomId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcCreateRequest Clone() { + return new NpcCreateRequest(this); + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as NpcCreateRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(NpcCreateRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(NpcCreateRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class NpcCreateResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NpcCreateResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcCreateResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcCreateResponse(NpcCreateResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcCreateResponse Clone() { + return new NpcCreateResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as NpcCreateResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(NpcCreateResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(NpcCreateResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class MoveRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MoveRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRequest(MoveRequest other) : this() { + roomId_ = other.roomId_; + moveType_ = other.moveType_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRequest Clone() { + return new MoveRequest(this); + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "moveType" field. + public const int MoveTypeFieldNumber = 2; + private int moveType_; + /// + /// 移动类型 1.窗子边的移动 2. 门边的移动 3. 一起移动 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int MoveType { + get { return moveType_; } + set { + moveType_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MoveRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MoveRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + if (MoveType != other.MoveType) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (MoveType != 0) hash ^= MoveType.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (MoveType != 0) { + output.WriteRawTag(16); + output.WriteInt32(MoveType); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (MoveType != 0) { + output.WriteRawTag(16); + output.WriteInt32(MoveType); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (MoveType != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(MoveType); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MoveRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.MoveType != 0) { + MoveType = other.MoveType; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 16: { + MoveType = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 16: { + MoveType = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class MoveResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MoveResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveResponse(MoveResponse other) : this() { + userId_ = other.userId_; + roomId_ = other.roomId_; + moveData_ = other.moveData_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveResponse Clone() { + return new MoveResponse(this); + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 2; + private string userId_ = ""; + /// + /// 用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 3; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "moveData" field. + public const int MoveDataFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_moveData_codec + = pb::FieldCodec.ForMessage(10, global::NpcData.Parser); + private readonly pbc::RepeatedField moveData_ = new pbc::RepeatedField(); + /// + /// 移动数据 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField MoveData { + get { return moveData_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MoveResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MoveResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + if (RoomId != other.RoomId) return false; + if(!moveData_.Equals(other.moveData_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + hash ^= moveData_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + moveData_.WriteTo(output, _repeated_moveData_codec); + if (UserId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(UserId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + moveData_.WriteTo(ref output, _repeated_moveData_codec); + if (UserId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(UserId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + size += moveData_.CalculateSize(_repeated_moveData_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MoveResponse other) { + if (other == null) { + return; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + moveData_.Add(other.moveData_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + moveData_.AddEntriesFrom(input, _repeated_moveData_codec); + break; + } + case 18: { + UserId = input.ReadString(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + moveData_.AddEntriesFrom(ref input, _repeated_moveData_codec); + break; + } + case 18: { + UserId = input.ReadString(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class NpcData : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NpcData()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcData() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcData(NpcData other) : this() { + x_ = other.x_; + y_ = other.y_; + z_ = other.z_; + userId_ = other.userId_; + nickName_ = other.nickName_; + type_ = other.type_; + formation_ = other.formation_; + event_ = other.event_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NpcData Clone() { + return new NpcData(this); + } + + /// Field number for the "x" field. + public const int XFieldNumber = 1; + private float x_; + /// + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "y" field. + public const int YFieldNumber = 2; + private float y_; + /// + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "z" field. + public const int ZFieldNumber = 3; + private float z_; + /// + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 4; + private string userId_ = ""; + /// + /// 移动的npc的id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "nickName" field. + public const int NickNameFieldNumber = 8; + private string nickName_ = ""; + /// + /// 昵称 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string NickName { + get { return nickName_; } + set { + nickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "type" field. + public const int TypeFieldNumber = 5; + private int type_; + /// + /// 类型 1 玩家 2 NPC + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Type { + get { return type_; } + set { + type_ = value; + } + } + + /// Field number for the "formation" field. + public const int FormationFieldNumber = 6; + private int formation_; + /// + /// 下楼对应的阵型 1-靠两侧 2-并排 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Formation { + get { return formation_; } + set { + formation_ = value; + } + } + + /// Field number for the "event" field. + public const int EventFieldNumber = 7; + private int event_; + /// + /// 1 进入 2 保持 3 离开 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Event { + get { return event_; } + set { + event_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as NpcData); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(NpcData other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + if (UserId != other.UserId) return false; + if (NickName != other.NickName) return false; + if (Type != other.Type) return false; + if (Formation != other.Formation) return false; + if (Event != other.Event) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (NickName.Length != 0) hash ^= NickName.GetHashCode(); + if (Type != 0) hash ^= Type.GetHashCode(); + if (Formation != 0) hash ^= Formation.GetHashCode(); + if (Event != 0) hash ^= Event.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (X != 0F) { + output.WriteRawTag(13); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(21); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(29); + output.WriteFloat(Z); + } + if (UserId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(UserId); + } + if (Type != 0) { + output.WriteRawTag(40); + output.WriteInt32(Type); + } + if (Formation != 0) { + output.WriteRawTag(48); + output.WriteInt32(Formation); + } + if (Event != 0) { + output.WriteRawTag(56); + output.WriteInt32(Event); + } + if (NickName.Length != 0) { + output.WriteRawTag(66); + output.WriteString(NickName); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (X != 0F) { + output.WriteRawTag(13); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(21); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(29); + output.WriteFloat(Z); + } + if (UserId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(UserId); + } + if (Type != 0) { + output.WriteRawTag(40); + output.WriteInt32(Type); + } + if (Formation != 0) { + output.WriteRawTag(48); + output.WriteInt32(Formation); + } + if (Event != 0) { + output.WriteRawTag(56); + output.WriteInt32(Event); + } + if (NickName.Length != 0) { + output.WriteRawTag(66); + output.WriteString(NickName); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (Z != 0F) { + size += 1 + 4; + } + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (NickName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName); + } + if (Type != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type); + } + if (Formation != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Formation); + } + if (Event != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Event); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(NpcData other) { + if (other == null) { + return; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.Z != 0F) { + Z = other.Z; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + if (other.NickName.Length != 0) { + NickName = other.NickName; + } + if (other.Type != 0) { + Type = other.Type; + } + if (other.Formation != 0) { + Formation = other.Formation; + } + if (other.Event != 0) { + Event = other.Event; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 13: { + X = input.ReadFloat(); + break; + } + case 21: { + Y = input.ReadFloat(); + break; + } + case 29: { + Z = input.ReadFloat(); + break; + } + case 34: { + UserId = input.ReadString(); + break; + } + case 40: { + Type = input.ReadInt32(); + break; + } + case 48: { + Formation = input.ReadInt32(); + break; + } + case 56: { + Event = input.ReadInt32(); + break; + } + case 66: { + NickName = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 13: { + X = input.ReadFloat(); + break; + } + case 21: { + Y = input.ReadFloat(); + break; + } + case 29: { + Z = input.ReadFloat(); + break; + } + case 34: { + UserId = input.ReadString(); + break; + } + case 40: { + Type = input.ReadInt32(); + break; + } + case 48: { + Formation = input.ReadInt32(); + break; + } + case 56: { + Event = input.ReadInt32(); + break; + } + case 66: { + NickName = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class MoveRoomAoiRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MoveRoomAoiRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRoomAoiRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRoomAoiRequest(MoveRoomAoiRequest other) : this() { + roomId_ = other.roomId_; + userId_ = other.userId_; + x_ = other.x_; + y_ = other.y_; + z_ = other.z_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRoomAoiRequest Clone() { + return new MoveRoomAoiRequest(this); + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + /// + /// 房间Id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 2; + private long userId_; + /// + /// 用户Id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long UserId { + get { return userId_; } + set { + userId_ = value; + } + } + + /// Field number for the "x" field. + public const int XFieldNumber = 3; + private float x_; + /// + /// x + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "y" field. + public const int YFieldNumber = 4; + private float y_; + /// + /// y + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "z" field. + public const int ZFieldNumber = 5; + private float z_; + /// + /// z + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MoveRoomAoiRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MoveRoomAoiRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + if (UserId != other.UserId) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (UserId != 0L) hash ^= UserId.GetHashCode(); + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (UserId != 0L) { + output.WriteRawTag(16); + output.WriteInt64(UserId); + } + if (X != 0F) { + output.WriteRawTag(29); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(37); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(45); + output.WriteFloat(Z); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (UserId != 0L) { + output.WriteRawTag(16); + output.WriteInt64(UserId); + } + if (X != 0F) { + output.WriteRawTag(29); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(37); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(45); + output.WriteFloat(Z); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (UserId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId); + } + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (Z != 0F) { + size += 1 + 4; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MoveRoomAoiRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.UserId != 0L) { + UserId = other.UserId; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.Z != 0F) { + Z = other.Z; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 16: { + UserId = input.ReadInt64(); + break; + } + case 29: { + X = input.ReadFloat(); + break; + } + case 37: { + Y = input.ReadFloat(); + break; + } + case 45: { + Z = input.ReadFloat(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 16: { + UserId = input.ReadInt64(); + break; + } + case 29: { + X = input.ReadFloat(); + break; + } + case 37: { + Y = input.ReadFloat(); + break; + } + case 45: { + Z = input.ReadFloat(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class MoveRoomAoiResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MoveRoomAoiResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::MoveReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRoomAoiResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRoomAoiResponse(MoveRoomAoiResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MoveRoomAoiResponse Clone() { + return new MoveRoomAoiResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MoveRoomAoiResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MoveRoomAoiResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MoveRoomAoiResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Move.cs.meta b/xiaofang/Assets/comm/Proto/Move.cs.meta new file mode 100644 index 00000000..aaef8006 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Move.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b549e9113344b542a6f785f98166927 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Prop.cs b/xiaofang/Assets/comm/Proto/Prop.cs new file mode 100644 index 00000000..8ddccef3 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Prop.cs @@ -0,0 +1,1921 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: prop.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from prop.proto +public static partial class PropReflection { + + #region Descriptor + /// File descriptor for prop.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static PropReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgpwcm9wLnByb3RvIlMKC1Byb3BSZXF1ZXN0Eg4KBnByb3BJZBgBIAEoBRIO", + "CgZhY3Rpb24YAiABKAUSFAoMcHJvcFNlcnZlcklkGAMgASgJEg4KBnJvb21J", + "ZBgEIAEoCSJhCgxQcm9wUmVzcG9uc2USDgoGcHJvcElkGAEgASgFEhQKDHBy", + "b3BTZXJ2ZXJJZBgFIAEoCRIMCgRuYW1lGAIgASgJEgwKBGNvZGUYAyABKAUS", + "DwoHbWVzc2FnZRgEIAEoCSIeChBQcm9wTW9kZWxSZXF1ZXN0EgoKAmlkGAEg", + "ASgFIvYCChFQcm9wTW9kZWxSZXNwb25zZRIKCgJpZBgBIAEoCRIQCghjYXRl", + "Z29yeRgCIAEoCRIMCgROb3RlGAMgASgJEgwKBE5hbWUYBCABKAkSDgoGV2Vp", + "Z2h0GAUgASgJEg0KBVNjZW5lGAYgASgJEgwKBEljb24YByABKAkSDwoHUmVz", + "UGF0aBgIIAEoCRIWCg5Db25zdW1hYmxlVHlwZRgJIAEoCRIRCglEdXJhdGlv", + "bnMYCiABKAkSEAoISXNQaWNrdXAYCyABKAkSCwoDTnVtGAwgASgFEhMKC0Nh", + "bGN1bGF0aW9uGA0gASgIEhAKCExvc3NUaW1lGA4gASgFEhQKDFByb3BTZXJ2", + "ZXJJZBgPIAEoCRIMCgRVc2VkGBAgASgIEg4KBlVzZXJJZBgRIAEoCRIOCgZS", + "b29tSWQYEiABKAkSEAoIVG90YWxOdW0YEyABKAUSDwoHUmVzdE51bRgUIAEo", + "BRIRCglBdHRyaWJ1dGUYFSABKAlCB1oFLi87cGJiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::PropRequest), global::PropRequest.Parser, new[]{ "PropId", "Action", "PropServerId", "RoomId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PropResponse), global::PropResponse.Parser, new[]{ "PropId", "PropServerId", "Name", "Code", "Message" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PropModelRequest), global::PropModelRequest.Parser, new[]{ "Id" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PropModelResponse), global::PropModelResponse.Parser, new[]{ "Id", "Category", "Note", "Name", "Weight", "Scene", "Icon", "ResPath", "ConsumableType", "Durations", "IsPickup", "Num", "Calculation", "LossTime", "PropServerId", "Used", "UserId", "RoomId", "TotalNum", "RestNum", "Attribute" }, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PropRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PropRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::PropReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropRequest(PropRequest other) : this() { + propId_ = other.propId_; + action_ = other.action_; + propServerId_ = other.propServerId_; + roomId_ = other.roomId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropRequest Clone() { + return new PropRequest(this); + } + + /// Field number for the "propId" field. + public const int PropIdFieldNumber = 1; + private int propId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int PropId { + get { return propId_; } + set { + propId_ = value; + } + } + + /// Field number for the "action" field. + public const int ActionFieldNumber = 2; + private int action_; + /// + /// 1 使用 2 丢弃 3 转交 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Action { + get { return action_; } + set { + action_ = value; + } + } + + /// Field number for the "propServerId" field. + public const int PropServerIdFieldNumber = 3; + private string propServerId_ = ""; + /// + /// 服务端ID 不存在这个id的时候为-1 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PropServerId { + get { return propServerId_; } + set { + propServerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 4; + private string roomId_ = ""; + /// + /// 房间ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PropRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PropRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PropId != other.PropId) return false; + if (Action != other.Action) return false; + if (PropServerId != other.PropServerId) return false; + if (RoomId != other.RoomId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (PropId != 0) hash ^= PropId.GetHashCode(); + if (Action != 0) hash ^= Action.GetHashCode(); + if (PropServerId.Length != 0) hash ^= PropServerId.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (PropId != 0) { + output.WriteRawTag(8); + output.WriteInt32(PropId); + } + if (Action != 0) { + output.WriteRawTag(16); + output.WriteInt32(Action); + } + if (PropServerId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(PropServerId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (PropId != 0) { + output.WriteRawTag(8); + output.WriteInt32(PropId); + } + if (Action != 0) { + output.WriteRawTag(16); + output.WriteInt32(Action); + } + if (PropServerId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(PropServerId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (PropId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(PropId); + } + if (Action != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Action); + } + if (PropServerId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PropServerId); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PropRequest other) { + if (other == null) { + return; + } + if (other.PropId != 0) { + PropId = other.PropId; + } + if (other.Action != 0) { + Action = other.Action; + } + if (other.PropServerId.Length != 0) { + PropServerId = other.PropServerId; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PropId = input.ReadInt32(); + break; + } + case 16: { + Action = input.ReadInt32(); + break; + } + case 26: { + PropServerId = input.ReadString(); + break; + } + case 34: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PropId = input.ReadInt32(); + break; + } + case 16: { + Action = input.ReadInt32(); + break; + } + case 26: { + PropServerId = input.ReadString(); + break; + } + case 34: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PropResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PropResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::PropReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropResponse(PropResponse other) : this() { + propId_ = other.propId_; + propServerId_ = other.propServerId_; + name_ = other.name_; + code_ = other.code_; + message_ = other.message_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropResponse Clone() { + return new PropResponse(this); + } + + /// Field number for the "propId" field. + public const int PropIdFieldNumber = 1; + private int propId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int PropId { + get { return propId_; } + set { + propId_ = value; + } + } + + /// Field number for the "propServerId" field. + public const int PropServerIdFieldNumber = 5; + private string propServerId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PropServerId { + get { return propServerId_; } + set { + propServerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 2; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "code" field. + public const int CodeFieldNumber = 3; + private int code_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Code { + get { return code_; } + set { + code_ = value; + } + } + + /// Field number for the "message" field. + public const int MessageFieldNumber = 4; + private string message_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Message { + get { return message_; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PropResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PropResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PropId != other.PropId) return false; + if (PropServerId != other.PropServerId) return false; + if (Name != other.Name) return false; + if (Code != other.Code) return false; + if (Message != other.Message) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (PropId != 0) hash ^= PropId.GetHashCode(); + if (PropServerId.Length != 0) hash ^= PropServerId.GetHashCode(); + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (Code != 0) hash ^= Code.GetHashCode(); + if (Message.Length != 0) hash ^= Message.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (PropId != 0) { + output.WriteRawTag(8); + output.WriteInt32(PropId); + } + if (Name.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (Code != 0) { + output.WriteRawTag(24); + output.WriteInt32(Code); + } + if (Message.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Message); + } + if (PropServerId.Length != 0) { + output.WriteRawTag(42); + output.WriteString(PropServerId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (PropId != 0) { + output.WriteRawTag(8); + output.WriteInt32(PropId); + } + if (Name.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (Code != 0) { + output.WriteRawTag(24); + output.WriteInt32(Code); + } + if (Message.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Message); + } + if (PropServerId.Length != 0) { + output.WriteRawTag(42); + output.WriteString(PropServerId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (PropId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(PropId); + } + if (PropServerId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PropServerId); + } + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (Code != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Code); + } + if (Message.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PropResponse other) { + if (other == null) { + return; + } + if (other.PropId != 0) { + PropId = other.PropId; + } + if (other.PropServerId.Length != 0) { + PropServerId = other.PropServerId; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.Code != 0) { + Code = other.Code; + } + if (other.Message.Length != 0) { + Message = other.Message; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PropId = input.ReadInt32(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + case 24: { + Code = input.ReadInt32(); + break; + } + case 34: { + Message = input.ReadString(); + break; + } + case 42: { + PropServerId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PropId = input.ReadInt32(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + case 24: { + Code = input.ReadInt32(); + break; + } + case 34: { + Message = input.ReadString(); + break; + } + case 42: { + PropServerId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PropModelRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PropModelRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::PropReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropModelRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropModelRequest(PropModelRequest other) : this() { + id_ = other.id_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropModelRequest Clone() { + return new PropModelRequest(this); + } + + /// Field number for the "id" field. + public const int IdFieldNumber = 1; + private int id_; + /// + /// 道具ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Id { + get { return id_; } + set { + id_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PropModelRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PropModelRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id != 0) hash ^= Id.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id != 0) { + output.WriteRawTag(8); + output.WriteInt32(Id); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id != 0) { + output.WriteRawTag(8); + output.WriteInt32(Id); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Id); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PropModelRequest other) { + if (other == null) { + return; + } + if (other.Id != 0) { + Id = other.Id; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Id = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Id = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PropModelResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PropModelResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::PropReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropModelResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropModelResponse(PropModelResponse other) : this() { + id_ = other.id_; + category_ = other.category_; + note_ = other.note_; + name_ = other.name_; + weight_ = other.weight_; + scene_ = other.scene_; + icon_ = other.icon_; + resPath_ = other.resPath_; + consumableType_ = other.consumableType_; + durations_ = other.durations_; + isPickup_ = other.isPickup_; + num_ = other.num_; + calculation_ = other.calculation_; + lossTime_ = other.lossTime_; + propServerId_ = other.propServerId_; + used_ = other.used_; + userId_ = other.userId_; + roomId_ = other.roomId_; + totalNum_ = other.totalNum_; + restNum_ = other.restNum_; + attribute_ = other.attribute_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PropModelResponse Clone() { + return new PropModelResponse(this); + } + + /// Field number for the "id" field. + public const int IdFieldNumber = 1; + private string id_ = ""; + /// + /// 物资id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Id { + get { return id_; } + set { + id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "category" field. + public const int CategoryFieldNumber = 2; + private string category_ = ""; + /// + /// 物资分类 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Category { + get { return category_; } + set { + category_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Note" field. + public const int NoteFieldNumber = 3; + private string note_ = ""; + /// + /// 备注 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Note { + get { return note_; } + set { + note_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Name" field. + public const int NameFieldNumber = 4; + private string name_ = ""; + /// + /// 关联到文本表ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Weight" field. + public const int WeightFieldNumber = 5; + private string weight_ = ""; + /// + /// 重量 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Weight { + get { return weight_; } + set { + weight_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Scene" field. + public const int SceneFieldNumber = 6; + private string scene_ = ""; + /// + /// 使用场景 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Scene { + get { return scene_; } + set { + scene_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Icon" field. + public const int IconFieldNumber = 7; + private string icon_ = ""; + /// + /// 图标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Icon { + get { return icon_; } + set { + icon_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ResPath" field. + public const int ResPathFieldNumber = 8; + private string resPath_ = ""; + /// + /// 图片资源 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ResPath { + get { return resPath_; } + set { + resPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ConsumableType" field. + public const int ConsumableTypeFieldNumber = 9; + private string consumableType_ = ""; + /// + /// 是否消耗品 0=非消耗品 1=消耗品 2=穿戴类 3=可穿戴消耗品 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ConsumableType { + get { return consumableType_; } + set { + consumableType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Durations" field. + public const int DurationsFieldNumber = 10; + private string durations_ = ""; + /// + /// 有效时间 -1 无限制 单位 秒 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Durations { + get { return durations_; } + set { + durations_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "IsPickup" field. + public const int IsPickupFieldNumber = 11; + private string isPickup_ = ""; + /// + /// 可被拾取 职业ID1,是否可拾取1|职业ID2,是否可拾取2 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string IsPickup { + get { return isPickup_; } + set { + isPickup_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Num" field. + public const int NumFieldNumber = 12; + private int num_; + /// + /// 道具数量 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Num { + get { return num_; } + set { + num_ = value; + } + } + + /// Field number for the "Calculation" field. + public const int CalculationFieldNumber = 13; + private bool calculation_; + /// + /// 是否计算属性 true=计算 false=不计算 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Calculation { + get { return calculation_; } + set { + calculation_ = value; + } + } + + /// Field number for the "LossTime" field. + public const int LossTimeFieldNumber = 14; + private int lossTime_; + /// + /// 剩余时间 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int LossTime { + get { return lossTime_; } + set { + lossTime_ = value; + } + } + + /// Field number for the "PropServerId" field. + public const int PropServerIdFieldNumber = 15; + private string propServerId_ = ""; + /// + /// 道具服务器ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PropServerId { + get { return propServerId_; } + set { + propServerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Used" field. + public const int UsedFieldNumber = 16; + private bool used_; + /// + /// 是否正在使用 true=正在使用 false=未使用 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Used { + get { return used_; } + set { + used_ = value; + } + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 17; + private string userId_ = ""; + /// + /// 用户ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 18; + private string roomId_ = ""; + /// + /// 房间ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TotalNum" field. + public const int TotalNumFieldNumber = 19; + private int totalNum_; + /// + /// 总数量 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int TotalNum { + get { return totalNum_; } + set { + totalNum_ = value; + } + } + + /// Field number for the "RestNum" field. + public const int RestNumFieldNumber = 20; + private int restNum_; + /// + /// 剩余数量 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RestNum { + get { return restNum_; } + set { + restNum_ = value; + } + } + + /// Field number for the "Attribute" field. + public const int AttributeFieldNumber = 21; + private string attribute_ = ""; + /// + /// 属性种类,属性值 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Attribute { + get { return attribute_; } + set { + attribute_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PropModelResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PropModelResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (Category != other.Category) return false; + if (Note != other.Note) return false; + if (Name != other.Name) return false; + if (Weight != other.Weight) return false; + if (Scene != other.Scene) return false; + if (Icon != other.Icon) return false; + if (ResPath != other.ResPath) return false; + if (ConsumableType != other.ConsumableType) return false; + if (Durations != other.Durations) return false; + if (IsPickup != other.IsPickup) return false; + if (Num != other.Num) return false; + if (Calculation != other.Calculation) return false; + if (LossTime != other.LossTime) return false; + if (PropServerId != other.PropServerId) return false; + if (Used != other.Used) return false; + if (UserId != other.UserId) return false; + if (RoomId != other.RoomId) return false; + if (TotalNum != other.TotalNum) return false; + if (RestNum != other.RestNum) return false; + if (Attribute != other.Attribute) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id.Length != 0) hash ^= Id.GetHashCode(); + if (Category.Length != 0) hash ^= Category.GetHashCode(); + if (Note.Length != 0) hash ^= Note.GetHashCode(); + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (Weight.Length != 0) hash ^= Weight.GetHashCode(); + if (Scene.Length != 0) hash ^= Scene.GetHashCode(); + if (Icon.Length != 0) hash ^= Icon.GetHashCode(); + if (ResPath.Length != 0) hash ^= ResPath.GetHashCode(); + if (ConsumableType.Length != 0) hash ^= ConsumableType.GetHashCode(); + if (Durations.Length != 0) hash ^= Durations.GetHashCode(); + if (IsPickup.Length != 0) hash ^= IsPickup.GetHashCode(); + if (Num != 0) hash ^= Num.GetHashCode(); + if (Calculation != false) hash ^= Calculation.GetHashCode(); + if (LossTime != 0) hash ^= LossTime.GetHashCode(); + if (PropServerId.Length != 0) hash ^= PropServerId.GetHashCode(); + if (Used != false) hash ^= Used.GetHashCode(); + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (TotalNum != 0) hash ^= TotalNum.GetHashCode(); + if (RestNum != 0) hash ^= RestNum.GetHashCode(); + if (Attribute.Length != 0) hash ^= Attribute.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (Category.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Category); + } + if (Note.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Note); + } + if (Name.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Name); + } + if (Weight.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Weight); + } + if (Scene.Length != 0) { + output.WriteRawTag(50); + output.WriteString(Scene); + } + if (Icon.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Icon); + } + if (ResPath.Length != 0) { + output.WriteRawTag(66); + output.WriteString(ResPath); + } + if (ConsumableType.Length != 0) { + output.WriteRawTag(74); + output.WriteString(ConsumableType); + } + if (Durations.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Durations); + } + if (IsPickup.Length != 0) { + output.WriteRawTag(90); + output.WriteString(IsPickup); + } + if (Num != 0) { + output.WriteRawTag(96); + output.WriteInt32(Num); + } + if (Calculation != false) { + output.WriteRawTag(104); + output.WriteBool(Calculation); + } + if (LossTime != 0) { + output.WriteRawTag(112); + output.WriteInt32(LossTime); + } + if (PropServerId.Length != 0) { + output.WriteRawTag(122); + output.WriteString(PropServerId); + } + if (Used != false) { + output.WriteRawTag(128, 1); + output.WriteBool(Used); + } + if (UserId.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(UserId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(146, 1); + output.WriteString(RoomId); + } + if (TotalNum != 0) { + output.WriteRawTag(152, 1); + output.WriteInt32(TotalNum); + } + if (RestNum != 0) { + output.WriteRawTag(160, 1); + output.WriteInt32(RestNum); + } + if (Attribute.Length != 0) { + output.WriteRawTag(170, 1); + output.WriteString(Attribute); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (Category.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Category); + } + if (Note.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Note); + } + if (Name.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Name); + } + if (Weight.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Weight); + } + if (Scene.Length != 0) { + output.WriteRawTag(50); + output.WriteString(Scene); + } + if (Icon.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Icon); + } + if (ResPath.Length != 0) { + output.WriteRawTag(66); + output.WriteString(ResPath); + } + if (ConsumableType.Length != 0) { + output.WriteRawTag(74); + output.WriteString(ConsumableType); + } + if (Durations.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Durations); + } + if (IsPickup.Length != 0) { + output.WriteRawTag(90); + output.WriteString(IsPickup); + } + if (Num != 0) { + output.WriteRawTag(96); + output.WriteInt32(Num); + } + if (Calculation != false) { + output.WriteRawTag(104); + output.WriteBool(Calculation); + } + if (LossTime != 0) { + output.WriteRawTag(112); + output.WriteInt32(LossTime); + } + if (PropServerId.Length != 0) { + output.WriteRawTag(122); + output.WriteString(PropServerId); + } + if (Used != false) { + output.WriteRawTag(128, 1); + output.WriteBool(Used); + } + if (UserId.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(UserId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(146, 1); + output.WriteString(RoomId); + } + if (TotalNum != 0) { + output.WriteRawTag(152, 1); + output.WriteInt32(TotalNum); + } + if (RestNum != 0) { + output.WriteRawTag(160, 1); + output.WriteInt32(RestNum); + } + if (Attribute.Length != 0) { + output.WriteRawTag(170, 1); + output.WriteString(Attribute); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); + } + if (Category.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Category); + } + if (Note.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Note); + } + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (Weight.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Weight); + } + if (Scene.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Scene); + } + if (Icon.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Icon); + } + if (ResPath.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ResPath); + } + if (ConsumableType.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ConsumableType); + } + if (Durations.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Durations); + } + if (IsPickup.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(IsPickup); + } + if (Num != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Num); + } + if (Calculation != false) { + size += 1 + 1; + } + if (LossTime != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(LossTime); + } + if (PropServerId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PropServerId); + } + if (Used != false) { + size += 2 + 1; + } + if (UserId.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (RoomId.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (TotalNum != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(TotalNum); + } + if (RestNum != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestNum); + } + if (Attribute.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(Attribute); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PropModelResponse other) { + if (other == null) { + return; + } + if (other.Id.Length != 0) { + Id = other.Id; + } + if (other.Category.Length != 0) { + Category = other.Category; + } + if (other.Note.Length != 0) { + Note = other.Note; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.Weight.Length != 0) { + Weight = other.Weight; + } + if (other.Scene.Length != 0) { + Scene = other.Scene; + } + if (other.Icon.Length != 0) { + Icon = other.Icon; + } + if (other.ResPath.Length != 0) { + ResPath = other.ResPath; + } + if (other.ConsumableType.Length != 0) { + ConsumableType = other.ConsumableType; + } + if (other.Durations.Length != 0) { + Durations = other.Durations; + } + if (other.IsPickup.Length != 0) { + IsPickup = other.IsPickup; + } + if (other.Num != 0) { + Num = other.Num; + } + if (other.Calculation != false) { + Calculation = other.Calculation; + } + if (other.LossTime != 0) { + LossTime = other.LossTime; + } + if (other.PropServerId.Length != 0) { + PropServerId = other.PropServerId; + } + if (other.Used != false) { + Used = other.Used; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.TotalNum != 0) { + TotalNum = other.TotalNum; + } + if (other.RestNum != 0) { + RestNum = other.RestNum; + } + if (other.Attribute.Length != 0) { + Attribute = other.Attribute; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 18: { + Category = input.ReadString(); + break; + } + case 26: { + Note = input.ReadString(); + break; + } + case 34: { + Name = input.ReadString(); + break; + } + case 42: { + Weight = input.ReadString(); + break; + } + case 50: { + Scene = input.ReadString(); + break; + } + case 58: { + Icon = input.ReadString(); + break; + } + case 66: { + ResPath = input.ReadString(); + break; + } + case 74: { + ConsumableType = input.ReadString(); + break; + } + case 82: { + Durations = input.ReadString(); + break; + } + case 90: { + IsPickup = input.ReadString(); + break; + } + case 96: { + Num = input.ReadInt32(); + break; + } + case 104: { + Calculation = input.ReadBool(); + break; + } + case 112: { + LossTime = input.ReadInt32(); + break; + } + case 122: { + PropServerId = input.ReadString(); + break; + } + case 128: { + Used = input.ReadBool(); + break; + } + case 138: { + UserId = input.ReadString(); + break; + } + case 146: { + RoomId = input.ReadString(); + break; + } + case 152: { + TotalNum = input.ReadInt32(); + break; + } + case 160: { + RestNum = input.ReadInt32(); + break; + } + case 170: { + Attribute = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 18: { + Category = input.ReadString(); + break; + } + case 26: { + Note = input.ReadString(); + break; + } + case 34: { + Name = input.ReadString(); + break; + } + case 42: { + Weight = input.ReadString(); + break; + } + case 50: { + Scene = input.ReadString(); + break; + } + case 58: { + Icon = input.ReadString(); + break; + } + case 66: { + ResPath = input.ReadString(); + break; + } + case 74: { + ConsumableType = input.ReadString(); + break; + } + case 82: { + Durations = input.ReadString(); + break; + } + case 90: { + IsPickup = input.ReadString(); + break; + } + case 96: { + Num = input.ReadInt32(); + break; + } + case 104: { + Calculation = input.ReadBool(); + break; + } + case 112: { + LossTime = input.ReadInt32(); + break; + } + case 122: { + PropServerId = input.ReadString(); + break; + } + case 128: { + Used = input.ReadBool(); + break; + } + case 138: { + UserId = input.ReadString(); + break; + } + case 146: { + RoomId = input.ReadString(); + break; + } + case 152: { + TotalNum = input.ReadInt32(); + break; + } + case 160: { + RestNum = input.ReadInt32(); + break; + } + case 170: { + Attribute = input.ReadString(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Prop.cs.meta b/xiaofang/Assets/comm/Proto/Prop.cs.meta new file mode 100644 index 00000000..c8ce4cfa --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Prop.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 66a0cd6fc174b4042b409c9030c08516 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/ProtoBufffer.cs b/xiaofang/Assets/comm/Proto/ProtoBufffer.cs new file mode 100644 index 00000000..46b1d5a6 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/ProtoBufffer.cs @@ -0,0 +1,28 @@ +using Google.Protobuf; +using System; +public class ProtoBufffer +{ + public static byte[] Serialize(IMessage message) + { + return message.ToByteArray(); + } + + public static T DeSerialize(byte[] packet) where T : IMessage, new() + { + IMessage message = new T(); + try + { + return (T)message.Descriptor.Parser.ParseFrom(packet); + } + catch (System.Exception e) + { + throw; + } + } + + internal static T DeSerialize(ByteString data) + { + throw new NotImplementedException(); + } +} + diff --git a/xiaofang/Assets/comm/Proto/ProtoBufffer.cs.meta b/xiaofang/Assets/comm/Proto/ProtoBufffer.cs.meta new file mode 100644 index 00000000..0c279cd2 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/ProtoBufffer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09a7d1a0777441d489f8b7ffae5077c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Room.cs b/xiaofang/Assets/comm/Proto/Room.cs new file mode 100644 index 00000000..e138e5de --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Room.cs @@ -0,0 +1,2750 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: room.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from room.proto +public static partial class RoomReflection { + + #region Descriptor + /// File descriptor for room.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static RoomReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgpyb29tLnByb3RvIvMCChRSb29tVGVtcGxhdGVSZXNwb25zZRIKCgJJZBgB", + "IAEoAxIUCgxUZW1wbGF0ZU5hbWUYAiABKAkSEQoJQ29tcGFueUlkGAMgASgJ", + "Eg8KB1NjZW5lSWQYBCABKAkSEQoJU3ViamVjdElkGAUgASgJEg4KBlN0YXR1", + "cxgGIAEoCRISCgpJc1RlbXBsYXRlGAcgASgJEhAKCENyZWF0ZUJ5GAggASgJ", + "EhIKCkNyZWF0ZVRpbWUYCSABKAkSEAoIVXBkYXRlQnkYCiABKAkSEgoKVXBk", + "YXRlVGltZRgLIAEoCRIOCgZSZW1hcmsYDCABKAkSDAoETW9kZRgNIAEoCRIY", + "ChBEaXNhc3RlckxvY2F0aW9uGA4gASgJEhAKCEZpcmV3YWxsGA8gASgJEiEK", + "C3Rhc2tPcm1EYXRhGBAgAygLMgwuVGFza09ybURhdGESJQoNc2VsZWN0T3Jt", + "RGF0YRgRIAMoCzIOLlNlbGVjdE9ybURhdGEi1QMKC1Rhc2tPcm1EYXRhEgoK", + "AklkGAEgASgDEhAKCFRhc2tOYW1lGAIgASgJEhAKCEdhbWVOYW1lGAMgASgJ", + "EhAKCEdhbWVUeXBlGAQgASgFEhAKCEdhbWVEZXNjGAUgASgJEhYKDkdhbWVQ", + "bGF5U2NyaXB0GAYgASgJEhMKC0dhbWVUcmlnZ2VyGAcgASgJEhgKEEdhbWVU", + "cmlnZ2VyTG9naWMYCCABKAkSFwoPR2FtZU92ZXJzZWVDb25kGAkgASgJEhUK", + "DUdhbWVUaW1lTGltaXQYCiABKAkSEAoIR2FtZVJvbGUYCyABKAkSEwoLR2Ft", + "ZVNlbGVjdHMYDCABKAkSFgoOR2FtZVRhcmdldFR5cGUYDSABKAkSGAoQR2Ft", + "ZVRhcmdldHNGaXJzdBgOIAEoCRIZChFHYW1lVGFyZ2V0c1NlY29uZBgPIAEo", + "CRIeChZHYW1lVGFyZ2V0c1NlY29uZExvZ2ljGBAgASgJEhYKDkdhbWVFeHRy", + "YVZhbHVlGBEgASgJEhAKCEdhbWVTb3J0GBIgASgJEhIKCkdhbWVJc1Nob3cY", + "EyABKAkSFQoNR2FtZUV4Y2x1c2l2ZRgUIAEoCRISCgpHYW1lUmV3YXJkGBUg", + "ASgJIp4DCg1TZWxlY3RPcm1EYXRhEgoKAklkGAEgASgDEgwKBE5vdGUYAiAB", + "KAkSDQoFR3JvdXAYAyABKAkSEAoIU2hvd1RleHQYBCABKAkSDAoESWNvbhgF", + "IAEoCRIVCg1QcmVjb25kaXRpb25zGAYgASgJEhEKCUV4Y2x1c2l2ZRgHIAEo", + "CRIQCghUYXNrVGltZRgIIAEoAxIRCglUaW1lTGltaXQYCSABKAMSEgoKTmV4", + "dFNlbGVjdBgKIAEoCRIQCghUYXNrTGluaxgLIAEoCRIXCg9UYXNrTGlua0Rl", + "dGFpbHMYDCABKAkSEAoIQ2FsbE1vZGUYDSABKAkSFQoNQ2FsbFJlY2lwaWVu", + "dBgOIAEoCRIVCg1Db3JyZWN0T3B0aW9uGA8gASgJEg4KBlJld2FyZBgQIAEo", + "CRIOCgZSZXN1bHQYESABKAkSDQoFUm91dGUYEiABKAkSFAoMVGltaW5nQ2hh", + "bmdlGBMgASgJEhEKCUFwcGxpZWRVSRgUIAEoCRIRCglVSURldGFpbHMYFSAB", + "KAkSCwoDU2VxGBYgASgJQgdaBS4vO3BiYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::RoomTemplateResponse), global::RoomTemplateResponse.Parser, new[]{ "Id", "TemplateName", "CompanyId", "SceneId", "SubjectId", "Status", "IsTemplate", "CreateBy", "CreateTime", "UpdateBy", "UpdateTime", "Remark", "Mode", "DisasterLocation", "Firewall", "TaskOrmData", "SelectOrmData" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::TaskOrmData), global::TaskOrmData.Parser, new[]{ "Id", "TaskName", "GameName", "GameType", "GameDesc", "GamePlayScript", "GameTrigger", "GameTriggerLogic", "GameOverseeCond", "GameTimeLimit", "GameRole", "GameSelects", "GameTargetType", "GameTargetsFirst", "GameTargetsSecond", "GameTargetsSecondLogic", "GameExtraValue", "GameSort", "GameIsShow", "GameExclusive", "GameReward" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::SelectOrmData), global::SelectOrmData.Parser, new[]{ "Id", "Note", "Group", "ShowText", "Icon", "Preconditions", "Exclusive", "TaskTime", "TimeLimit", "NextSelect", "TaskLink", "TaskLinkDetails", "CallMode", "CallRecipient", "CorrectOption", "Reward", "Result", "Route", "TimingChange", "AppliedUI", "UIDetails", "Seq" }, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class RoomTemplateResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RoomTemplateResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::RoomReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoomTemplateResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoomTemplateResponse(RoomTemplateResponse other) : this() { + id_ = other.id_; + templateName_ = other.templateName_; + companyId_ = other.companyId_; + sceneId_ = other.sceneId_; + subjectId_ = other.subjectId_; + status_ = other.status_; + isTemplate_ = other.isTemplate_; + createBy_ = other.createBy_; + createTime_ = other.createTime_; + updateBy_ = other.updateBy_; + updateTime_ = other.updateTime_; + remark_ = other.remark_; + mode_ = other.mode_; + disasterLocation_ = other.disasterLocation_; + firewall_ = other.firewall_; + taskOrmData_ = other.taskOrmData_.Clone(); + selectOrmData_ = other.selectOrmData_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoomTemplateResponse Clone() { + return new RoomTemplateResponse(this); + } + + /// Field number for the "Id" field. + public const int IdFieldNumber = 1; + private long id_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Id { + get { return id_; } + set { + id_ = value; + } + } + + /// Field number for the "TemplateName" field. + public const int TemplateNameFieldNumber = 2; + private string templateName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TemplateName { + get { return templateName_; } + set { + templateName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CompanyId" field. + public const int CompanyIdFieldNumber = 3; + private string companyId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CompanyId { + get { return companyId_; } + set { + companyId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "SceneId" field. + public const int SceneIdFieldNumber = 4; + private string sceneId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SceneId { + get { return sceneId_; } + set { + sceneId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "SubjectId" field. + public const int SubjectIdFieldNumber = 5; + private string subjectId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SubjectId { + get { return subjectId_; } + set { + subjectId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 6; + private string status_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Status { + get { return status_; } + set { + status_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "IsTemplate" field. + public const int IsTemplateFieldNumber = 7; + private string isTemplate_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string IsTemplate { + get { return isTemplate_; } + set { + isTemplate_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CreateBy" field. + public const int CreateByFieldNumber = 8; + private string createBy_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CreateBy { + get { return createBy_; } + set { + createBy_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CreateTime" field. + public const int CreateTimeFieldNumber = 9; + private string createTime_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CreateTime { + get { return createTime_; } + set { + createTime_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UpdateBy" field. + public const int UpdateByFieldNumber = 10; + private string updateBy_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UpdateBy { + get { return updateBy_; } + set { + updateBy_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UpdateTime" field. + public const int UpdateTimeFieldNumber = 11; + private string updateTime_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UpdateTime { + get { return updateTime_; } + set { + updateTime_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Remark" field. + public const int RemarkFieldNumber = 12; + private string remark_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Remark { + get { return remark_; } + set { + remark_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Mode" field. + public const int ModeFieldNumber = 13; + private string mode_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Mode { + get { return mode_; } + set { + mode_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "DisasterLocation" field. + public const int DisasterLocationFieldNumber = 14; + private string disasterLocation_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string DisasterLocation { + get { return disasterLocation_; } + set { + disasterLocation_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Firewall" field. + public const int FirewallFieldNumber = 15; + private string firewall_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Firewall { + get { return firewall_; } + set { + firewall_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "taskOrmData" field. + public const int TaskOrmDataFieldNumber = 16; + private static readonly pb::FieldCodec _repeated_taskOrmData_codec + = pb::FieldCodec.ForMessage(130, global::TaskOrmData.Parser); + private readonly pbc::RepeatedField taskOrmData_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField TaskOrmData { + get { return taskOrmData_; } + } + + /// Field number for the "selectOrmData" field. + public const int SelectOrmDataFieldNumber = 17; + private static readonly pb::FieldCodec _repeated_selectOrmData_codec + = pb::FieldCodec.ForMessage(138, global::SelectOrmData.Parser); + private readonly pbc::RepeatedField selectOrmData_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField SelectOrmData { + get { return selectOrmData_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RoomTemplateResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RoomTemplateResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (TemplateName != other.TemplateName) return false; + if (CompanyId != other.CompanyId) return false; + if (SceneId != other.SceneId) return false; + if (SubjectId != other.SubjectId) return false; + if (Status != other.Status) return false; + if (IsTemplate != other.IsTemplate) return false; + if (CreateBy != other.CreateBy) return false; + if (CreateTime != other.CreateTime) return false; + if (UpdateBy != other.UpdateBy) return false; + if (UpdateTime != other.UpdateTime) return false; + if (Remark != other.Remark) return false; + if (Mode != other.Mode) return false; + if (DisasterLocation != other.DisasterLocation) return false; + if (Firewall != other.Firewall) return false; + if(!taskOrmData_.Equals(other.taskOrmData_)) return false; + if(!selectOrmData_.Equals(other.selectOrmData_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id != 0L) hash ^= Id.GetHashCode(); + if (TemplateName.Length != 0) hash ^= TemplateName.GetHashCode(); + if (CompanyId.Length != 0) hash ^= CompanyId.GetHashCode(); + if (SceneId.Length != 0) hash ^= SceneId.GetHashCode(); + if (SubjectId.Length != 0) hash ^= SubjectId.GetHashCode(); + if (Status.Length != 0) hash ^= Status.GetHashCode(); + if (IsTemplate.Length != 0) hash ^= IsTemplate.GetHashCode(); + if (CreateBy.Length != 0) hash ^= CreateBy.GetHashCode(); + if (CreateTime.Length != 0) hash ^= CreateTime.GetHashCode(); + if (UpdateBy.Length != 0) hash ^= UpdateBy.GetHashCode(); + if (UpdateTime.Length != 0) hash ^= UpdateTime.GetHashCode(); + if (Remark.Length != 0) hash ^= Remark.GetHashCode(); + if (Mode.Length != 0) hash ^= Mode.GetHashCode(); + if (DisasterLocation.Length != 0) hash ^= DisasterLocation.GetHashCode(); + if (Firewall.Length != 0) hash ^= Firewall.GetHashCode(); + hash ^= taskOrmData_.GetHashCode(); + hash ^= selectOrmData_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (TemplateName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(TemplateName); + } + if (CompanyId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(CompanyId); + } + if (SceneId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(SceneId); + } + if (SubjectId.Length != 0) { + output.WriteRawTag(42); + output.WriteString(SubjectId); + } + if (Status.Length != 0) { + output.WriteRawTag(50); + output.WriteString(Status); + } + if (IsTemplate.Length != 0) { + output.WriteRawTag(58); + output.WriteString(IsTemplate); + } + if (CreateBy.Length != 0) { + output.WriteRawTag(66); + output.WriteString(CreateBy); + } + if (CreateTime.Length != 0) { + output.WriteRawTag(74); + output.WriteString(CreateTime); + } + if (UpdateBy.Length != 0) { + output.WriteRawTag(82); + output.WriteString(UpdateBy); + } + if (UpdateTime.Length != 0) { + output.WriteRawTag(90); + output.WriteString(UpdateTime); + } + if (Remark.Length != 0) { + output.WriteRawTag(98); + output.WriteString(Remark); + } + if (Mode.Length != 0) { + output.WriteRawTag(106); + output.WriteString(Mode); + } + if (DisasterLocation.Length != 0) { + output.WriteRawTag(114); + output.WriteString(DisasterLocation); + } + if (Firewall.Length != 0) { + output.WriteRawTag(122); + output.WriteString(Firewall); + } + taskOrmData_.WriteTo(output, _repeated_taskOrmData_codec); + selectOrmData_.WriteTo(output, _repeated_selectOrmData_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (TemplateName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(TemplateName); + } + if (CompanyId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(CompanyId); + } + if (SceneId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(SceneId); + } + if (SubjectId.Length != 0) { + output.WriteRawTag(42); + output.WriteString(SubjectId); + } + if (Status.Length != 0) { + output.WriteRawTag(50); + output.WriteString(Status); + } + if (IsTemplate.Length != 0) { + output.WriteRawTag(58); + output.WriteString(IsTemplate); + } + if (CreateBy.Length != 0) { + output.WriteRawTag(66); + output.WriteString(CreateBy); + } + if (CreateTime.Length != 0) { + output.WriteRawTag(74); + output.WriteString(CreateTime); + } + if (UpdateBy.Length != 0) { + output.WriteRawTag(82); + output.WriteString(UpdateBy); + } + if (UpdateTime.Length != 0) { + output.WriteRawTag(90); + output.WriteString(UpdateTime); + } + if (Remark.Length != 0) { + output.WriteRawTag(98); + output.WriteString(Remark); + } + if (Mode.Length != 0) { + output.WriteRawTag(106); + output.WriteString(Mode); + } + if (DisasterLocation.Length != 0) { + output.WriteRawTag(114); + output.WriteString(DisasterLocation); + } + if (Firewall.Length != 0) { + output.WriteRawTag(122); + output.WriteString(Firewall); + } + taskOrmData_.WriteTo(ref output, _repeated_taskOrmData_codec); + selectOrmData_.WriteTo(ref output, _repeated_selectOrmData_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Id); + } + if (TemplateName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TemplateName); + } + if (CompanyId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CompanyId); + } + if (SceneId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SceneId); + } + if (SubjectId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SubjectId); + } + if (Status.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Status); + } + if (IsTemplate.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(IsTemplate); + } + if (CreateBy.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CreateBy); + } + if (CreateTime.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CreateTime); + } + if (UpdateBy.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UpdateBy); + } + if (UpdateTime.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UpdateTime); + } + if (Remark.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Remark); + } + if (Mode.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Mode); + } + if (DisasterLocation.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(DisasterLocation); + } + if (Firewall.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Firewall); + } + size += taskOrmData_.CalculateSize(_repeated_taskOrmData_codec); + size += selectOrmData_.CalculateSize(_repeated_selectOrmData_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RoomTemplateResponse other) { + if (other == null) { + return; + } + if (other.Id != 0L) { + Id = other.Id; + } + if (other.TemplateName.Length != 0) { + TemplateName = other.TemplateName; + } + if (other.CompanyId.Length != 0) { + CompanyId = other.CompanyId; + } + if (other.SceneId.Length != 0) { + SceneId = other.SceneId; + } + if (other.SubjectId.Length != 0) { + SubjectId = other.SubjectId; + } + if (other.Status.Length != 0) { + Status = other.Status; + } + if (other.IsTemplate.Length != 0) { + IsTemplate = other.IsTemplate; + } + if (other.CreateBy.Length != 0) { + CreateBy = other.CreateBy; + } + if (other.CreateTime.Length != 0) { + CreateTime = other.CreateTime; + } + if (other.UpdateBy.Length != 0) { + UpdateBy = other.UpdateBy; + } + if (other.UpdateTime.Length != 0) { + UpdateTime = other.UpdateTime; + } + if (other.Remark.Length != 0) { + Remark = other.Remark; + } + if (other.Mode.Length != 0) { + Mode = other.Mode; + } + if (other.DisasterLocation.Length != 0) { + DisasterLocation = other.DisasterLocation; + } + if (other.Firewall.Length != 0) { + Firewall = other.Firewall; + } + taskOrmData_.Add(other.taskOrmData_); + selectOrmData_.Add(other.selectOrmData_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 18: { + TemplateName = input.ReadString(); + break; + } + case 26: { + CompanyId = input.ReadString(); + break; + } + case 34: { + SceneId = input.ReadString(); + break; + } + case 42: { + SubjectId = input.ReadString(); + break; + } + case 50: { + Status = input.ReadString(); + break; + } + case 58: { + IsTemplate = input.ReadString(); + break; + } + case 66: { + CreateBy = input.ReadString(); + break; + } + case 74: { + CreateTime = input.ReadString(); + break; + } + case 82: { + UpdateBy = input.ReadString(); + break; + } + case 90: { + UpdateTime = input.ReadString(); + break; + } + case 98: { + Remark = input.ReadString(); + break; + } + case 106: { + Mode = input.ReadString(); + break; + } + case 114: { + DisasterLocation = input.ReadString(); + break; + } + case 122: { + Firewall = input.ReadString(); + break; + } + case 130: { + taskOrmData_.AddEntriesFrom(input, _repeated_taskOrmData_codec); + break; + } + case 138: { + selectOrmData_.AddEntriesFrom(input, _repeated_selectOrmData_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 18: { + TemplateName = input.ReadString(); + break; + } + case 26: { + CompanyId = input.ReadString(); + break; + } + case 34: { + SceneId = input.ReadString(); + break; + } + case 42: { + SubjectId = input.ReadString(); + break; + } + case 50: { + Status = input.ReadString(); + break; + } + case 58: { + IsTemplate = input.ReadString(); + break; + } + case 66: { + CreateBy = input.ReadString(); + break; + } + case 74: { + CreateTime = input.ReadString(); + break; + } + case 82: { + UpdateBy = input.ReadString(); + break; + } + case 90: { + UpdateTime = input.ReadString(); + break; + } + case 98: { + Remark = input.ReadString(); + break; + } + case 106: { + Mode = input.ReadString(); + break; + } + case 114: { + DisasterLocation = input.ReadString(); + break; + } + case 122: { + Firewall = input.ReadString(); + break; + } + case 130: { + taskOrmData_.AddEntriesFrom(ref input, _repeated_taskOrmData_codec); + break; + } + case 138: { + selectOrmData_.AddEntriesFrom(ref input, _repeated_selectOrmData_codec); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskOrmData : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskOrmData()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::RoomReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskOrmData() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskOrmData(TaskOrmData other) : this() { + id_ = other.id_; + taskName_ = other.taskName_; + gameName_ = other.gameName_; + gameType_ = other.gameType_; + gameDesc_ = other.gameDesc_; + gamePlayScript_ = other.gamePlayScript_; + gameTrigger_ = other.gameTrigger_; + gameTriggerLogic_ = other.gameTriggerLogic_; + gameOverseeCond_ = other.gameOverseeCond_; + gameTimeLimit_ = other.gameTimeLimit_; + gameRole_ = other.gameRole_; + gameSelects_ = other.gameSelects_; + gameTargetType_ = other.gameTargetType_; + gameTargetsFirst_ = other.gameTargetsFirst_; + gameTargetsSecond_ = other.gameTargetsSecond_; + gameTargetsSecondLogic_ = other.gameTargetsSecondLogic_; + gameExtraValue_ = other.gameExtraValue_; + gameSort_ = other.gameSort_; + gameIsShow_ = other.gameIsShow_; + gameExclusive_ = other.gameExclusive_; + gameReward_ = other.gameReward_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskOrmData Clone() { + return new TaskOrmData(this); + } + + /// Field number for the "Id" field. + public const int IdFieldNumber = 1; + private long id_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Id { + get { return id_; } + set { + id_ = value; + } + } + + /// Field number for the "TaskName" field. + public const int TaskNameFieldNumber = 2; + private string taskName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TaskName { + get { return taskName_; } + set { + taskName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameName" field. + public const int GameNameFieldNumber = 3; + private string gameName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameName { + get { return gameName_; } + set { + gameName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameType" field. + public const int GameTypeFieldNumber = 4; + private int gameType_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int GameType { + get { return gameType_; } + set { + gameType_ = value; + } + } + + /// Field number for the "GameDesc" field. + public const int GameDescFieldNumber = 5; + private string gameDesc_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameDesc { + get { return gameDesc_; } + set { + gameDesc_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GamePlayScript" field. + public const int GamePlayScriptFieldNumber = 6; + private string gamePlayScript_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GamePlayScript { + get { return gamePlayScript_; } + set { + gamePlayScript_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTrigger" field. + public const int GameTriggerFieldNumber = 7; + private string gameTrigger_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTrigger { + get { return gameTrigger_; } + set { + gameTrigger_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTriggerLogic" field. + public const int GameTriggerLogicFieldNumber = 8; + private string gameTriggerLogic_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTriggerLogic { + get { return gameTriggerLogic_; } + set { + gameTriggerLogic_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameOverseeCond" field. + public const int GameOverseeCondFieldNumber = 9; + private string gameOverseeCond_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameOverseeCond { + get { return gameOverseeCond_; } + set { + gameOverseeCond_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTimeLimit" field. + public const int GameTimeLimitFieldNumber = 10; + private string gameTimeLimit_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTimeLimit { + get { return gameTimeLimit_; } + set { + gameTimeLimit_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameRole" field. + public const int GameRoleFieldNumber = 11; + private string gameRole_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameRole { + get { return gameRole_; } + set { + gameRole_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameSelects" field. + public const int GameSelectsFieldNumber = 12; + private string gameSelects_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameSelects { + get { return gameSelects_; } + set { + gameSelects_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTargetType" field. + public const int GameTargetTypeFieldNumber = 13; + private string gameTargetType_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTargetType { + get { return gameTargetType_; } + set { + gameTargetType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTargetsFirst" field. + public const int GameTargetsFirstFieldNumber = 14; + private string gameTargetsFirst_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTargetsFirst { + get { return gameTargetsFirst_; } + set { + gameTargetsFirst_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTargetsSecond" field. + public const int GameTargetsSecondFieldNumber = 15; + private string gameTargetsSecond_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTargetsSecond { + get { return gameTargetsSecond_; } + set { + gameTargetsSecond_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameTargetsSecondLogic" field. + public const int GameTargetsSecondLogicFieldNumber = 16; + private string gameTargetsSecondLogic_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameTargetsSecondLogic { + get { return gameTargetsSecondLogic_; } + set { + gameTargetsSecondLogic_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameExtraValue" field. + public const int GameExtraValueFieldNumber = 17; + private string gameExtraValue_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameExtraValue { + get { return gameExtraValue_; } + set { + gameExtraValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameSort" field. + public const int GameSortFieldNumber = 18; + private string gameSort_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameSort { + get { return gameSort_; } + set { + gameSort_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameIsShow" field. + public const int GameIsShowFieldNumber = 19; + private string gameIsShow_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameIsShow { + get { return gameIsShow_; } + set { + gameIsShow_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameExclusive" field. + public const int GameExclusiveFieldNumber = 20; + private string gameExclusive_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameExclusive { + get { return gameExclusive_; } + set { + gameExclusive_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "GameReward" field. + public const int GameRewardFieldNumber = 21; + private string gameReward_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string GameReward { + get { return gameReward_; } + set { + gameReward_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskOrmData); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskOrmData other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (TaskName != other.TaskName) return false; + if (GameName != other.GameName) return false; + if (GameType != other.GameType) return false; + if (GameDesc != other.GameDesc) return false; + if (GamePlayScript != other.GamePlayScript) return false; + if (GameTrigger != other.GameTrigger) return false; + if (GameTriggerLogic != other.GameTriggerLogic) return false; + if (GameOverseeCond != other.GameOverseeCond) return false; + if (GameTimeLimit != other.GameTimeLimit) return false; + if (GameRole != other.GameRole) return false; + if (GameSelects != other.GameSelects) return false; + if (GameTargetType != other.GameTargetType) return false; + if (GameTargetsFirst != other.GameTargetsFirst) return false; + if (GameTargetsSecond != other.GameTargetsSecond) return false; + if (GameTargetsSecondLogic != other.GameTargetsSecondLogic) return false; + if (GameExtraValue != other.GameExtraValue) return false; + if (GameSort != other.GameSort) return false; + if (GameIsShow != other.GameIsShow) return false; + if (GameExclusive != other.GameExclusive) return false; + if (GameReward != other.GameReward) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id != 0L) hash ^= Id.GetHashCode(); + if (TaskName.Length != 0) hash ^= TaskName.GetHashCode(); + if (GameName.Length != 0) hash ^= GameName.GetHashCode(); + if (GameType != 0) hash ^= GameType.GetHashCode(); + if (GameDesc.Length != 0) hash ^= GameDesc.GetHashCode(); + if (GamePlayScript.Length != 0) hash ^= GamePlayScript.GetHashCode(); + if (GameTrigger.Length != 0) hash ^= GameTrigger.GetHashCode(); + if (GameTriggerLogic.Length != 0) hash ^= GameTriggerLogic.GetHashCode(); + if (GameOverseeCond.Length != 0) hash ^= GameOverseeCond.GetHashCode(); + if (GameTimeLimit.Length != 0) hash ^= GameTimeLimit.GetHashCode(); + if (GameRole.Length != 0) hash ^= GameRole.GetHashCode(); + if (GameSelects.Length != 0) hash ^= GameSelects.GetHashCode(); + if (GameTargetType.Length != 0) hash ^= GameTargetType.GetHashCode(); + if (GameTargetsFirst.Length != 0) hash ^= GameTargetsFirst.GetHashCode(); + if (GameTargetsSecond.Length != 0) hash ^= GameTargetsSecond.GetHashCode(); + if (GameTargetsSecondLogic.Length != 0) hash ^= GameTargetsSecondLogic.GetHashCode(); + if (GameExtraValue.Length != 0) hash ^= GameExtraValue.GetHashCode(); + if (GameSort.Length != 0) hash ^= GameSort.GetHashCode(); + if (GameIsShow.Length != 0) hash ^= GameIsShow.GetHashCode(); + if (GameExclusive.Length != 0) hash ^= GameExclusive.GetHashCode(); + if (GameReward.Length != 0) hash ^= GameReward.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (TaskName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(TaskName); + } + if (GameName.Length != 0) { + output.WriteRawTag(26); + output.WriteString(GameName); + } + if (GameType != 0) { + output.WriteRawTag(32); + output.WriteInt32(GameType); + } + if (GameDesc.Length != 0) { + output.WriteRawTag(42); + output.WriteString(GameDesc); + } + if (GamePlayScript.Length != 0) { + output.WriteRawTag(50); + output.WriteString(GamePlayScript); + } + if (GameTrigger.Length != 0) { + output.WriteRawTag(58); + output.WriteString(GameTrigger); + } + if (GameTriggerLogic.Length != 0) { + output.WriteRawTag(66); + output.WriteString(GameTriggerLogic); + } + if (GameOverseeCond.Length != 0) { + output.WriteRawTag(74); + output.WriteString(GameOverseeCond); + } + if (GameTimeLimit.Length != 0) { + output.WriteRawTag(82); + output.WriteString(GameTimeLimit); + } + if (GameRole.Length != 0) { + output.WriteRawTag(90); + output.WriteString(GameRole); + } + if (GameSelects.Length != 0) { + output.WriteRawTag(98); + output.WriteString(GameSelects); + } + if (GameTargetType.Length != 0) { + output.WriteRawTag(106); + output.WriteString(GameTargetType); + } + if (GameTargetsFirst.Length != 0) { + output.WriteRawTag(114); + output.WriteString(GameTargetsFirst); + } + if (GameTargetsSecond.Length != 0) { + output.WriteRawTag(122); + output.WriteString(GameTargetsSecond); + } + if (GameTargetsSecondLogic.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(GameTargetsSecondLogic); + } + if (GameExtraValue.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(GameExtraValue); + } + if (GameSort.Length != 0) { + output.WriteRawTag(146, 1); + output.WriteString(GameSort); + } + if (GameIsShow.Length != 0) { + output.WriteRawTag(154, 1); + output.WriteString(GameIsShow); + } + if (GameExclusive.Length != 0) { + output.WriteRawTag(162, 1); + output.WriteString(GameExclusive); + } + if (GameReward.Length != 0) { + output.WriteRawTag(170, 1); + output.WriteString(GameReward); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (TaskName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(TaskName); + } + if (GameName.Length != 0) { + output.WriteRawTag(26); + output.WriteString(GameName); + } + if (GameType != 0) { + output.WriteRawTag(32); + output.WriteInt32(GameType); + } + if (GameDesc.Length != 0) { + output.WriteRawTag(42); + output.WriteString(GameDesc); + } + if (GamePlayScript.Length != 0) { + output.WriteRawTag(50); + output.WriteString(GamePlayScript); + } + if (GameTrigger.Length != 0) { + output.WriteRawTag(58); + output.WriteString(GameTrigger); + } + if (GameTriggerLogic.Length != 0) { + output.WriteRawTag(66); + output.WriteString(GameTriggerLogic); + } + if (GameOverseeCond.Length != 0) { + output.WriteRawTag(74); + output.WriteString(GameOverseeCond); + } + if (GameTimeLimit.Length != 0) { + output.WriteRawTag(82); + output.WriteString(GameTimeLimit); + } + if (GameRole.Length != 0) { + output.WriteRawTag(90); + output.WriteString(GameRole); + } + if (GameSelects.Length != 0) { + output.WriteRawTag(98); + output.WriteString(GameSelects); + } + if (GameTargetType.Length != 0) { + output.WriteRawTag(106); + output.WriteString(GameTargetType); + } + if (GameTargetsFirst.Length != 0) { + output.WriteRawTag(114); + output.WriteString(GameTargetsFirst); + } + if (GameTargetsSecond.Length != 0) { + output.WriteRawTag(122); + output.WriteString(GameTargetsSecond); + } + if (GameTargetsSecondLogic.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(GameTargetsSecondLogic); + } + if (GameExtraValue.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(GameExtraValue); + } + if (GameSort.Length != 0) { + output.WriteRawTag(146, 1); + output.WriteString(GameSort); + } + if (GameIsShow.Length != 0) { + output.WriteRawTag(154, 1); + output.WriteString(GameIsShow); + } + if (GameExclusive.Length != 0) { + output.WriteRawTag(162, 1); + output.WriteString(GameExclusive); + } + if (GameReward.Length != 0) { + output.WriteRawTag(170, 1); + output.WriteString(GameReward); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Id); + } + if (TaskName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TaskName); + } + if (GameName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameName); + } + if (GameType != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(GameType); + } + if (GameDesc.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameDesc); + } + if (GamePlayScript.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GamePlayScript); + } + if (GameTrigger.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameTrigger); + } + if (GameTriggerLogic.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameTriggerLogic); + } + if (GameOverseeCond.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameOverseeCond); + } + if (GameTimeLimit.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameTimeLimit); + } + if (GameRole.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRole); + } + if (GameSelects.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSelects); + } + if (GameTargetType.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameTargetType); + } + if (GameTargetsFirst.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameTargetsFirst); + } + if (GameTargetsSecond.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(GameTargetsSecond); + } + if (GameTargetsSecondLogic.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(GameTargetsSecondLogic); + } + if (GameExtraValue.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(GameExtraValue); + } + if (GameSort.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(GameSort); + } + if (GameIsShow.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(GameIsShow); + } + if (GameExclusive.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(GameExclusive); + } + if (GameReward.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(GameReward); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskOrmData other) { + if (other == null) { + return; + } + if (other.Id != 0L) { + Id = other.Id; + } + if (other.TaskName.Length != 0) { + TaskName = other.TaskName; + } + if (other.GameName.Length != 0) { + GameName = other.GameName; + } + if (other.GameType != 0) { + GameType = other.GameType; + } + if (other.GameDesc.Length != 0) { + GameDesc = other.GameDesc; + } + if (other.GamePlayScript.Length != 0) { + GamePlayScript = other.GamePlayScript; + } + if (other.GameTrigger.Length != 0) { + GameTrigger = other.GameTrigger; + } + if (other.GameTriggerLogic.Length != 0) { + GameTriggerLogic = other.GameTriggerLogic; + } + if (other.GameOverseeCond.Length != 0) { + GameOverseeCond = other.GameOverseeCond; + } + if (other.GameTimeLimit.Length != 0) { + GameTimeLimit = other.GameTimeLimit; + } + if (other.GameRole.Length != 0) { + GameRole = other.GameRole; + } + if (other.GameSelects.Length != 0) { + GameSelects = other.GameSelects; + } + if (other.GameTargetType.Length != 0) { + GameTargetType = other.GameTargetType; + } + if (other.GameTargetsFirst.Length != 0) { + GameTargetsFirst = other.GameTargetsFirst; + } + if (other.GameTargetsSecond.Length != 0) { + GameTargetsSecond = other.GameTargetsSecond; + } + if (other.GameTargetsSecondLogic.Length != 0) { + GameTargetsSecondLogic = other.GameTargetsSecondLogic; + } + if (other.GameExtraValue.Length != 0) { + GameExtraValue = other.GameExtraValue; + } + if (other.GameSort.Length != 0) { + GameSort = other.GameSort; + } + if (other.GameIsShow.Length != 0) { + GameIsShow = other.GameIsShow; + } + if (other.GameExclusive.Length != 0) { + GameExclusive = other.GameExclusive; + } + if (other.GameReward.Length != 0) { + GameReward = other.GameReward; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 18: { + TaskName = input.ReadString(); + break; + } + case 26: { + GameName = input.ReadString(); + break; + } + case 32: { + GameType = input.ReadInt32(); + break; + } + case 42: { + GameDesc = input.ReadString(); + break; + } + case 50: { + GamePlayScript = input.ReadString(); + break; + } + case 58: { + GameTrigger = input.ReadString(); + break; + } + case 66: { + GameTriggerLogic = input.ReadString(); + break; + } + case 74: { + GameOverseeCond = input.ReadString(); + break; + } + case 82: { + GameTimeLimit = input.ReadString(); + break; + } + case 90: { + GameRole = input.ReadString(); + break; + } + case 98: { + GameSelects = input.ReadString(); + break; + } + case 106: { + GameTargetType = input.ReadString(); + break; + } + case 114: { + GameTargetsFirst = input.ReadString(); + break; + } + case 122: { + GameTargetsSecond = input.ReadString(); + break; + } + case 130: { + GameTargetsSecondLogic = input.ReadString(); + break; + } + case 138: { + GameExtraValue = input.ReadString(); + break; + } + case 146: { + GameSort = input.ReadString(); + break; + } + case 154: { + GameIsShow = input.ReadString(); + break; + } + case 162: { + GameExclusive = input.ReadString(); + break; + } + case 170: { + GameReward = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 18: { + TaskName = input.ReadString(); + break; + } + case 26: { + GameName = input.ReadString(); + break; + } + case 32: { + GameType = input.ReadInt32(); + break; + } + case 42: { + GameDesc = input.ReadString(); + break; + } + case 50: { + GamePlayScript = input.ReadString(); + break; + } + case 58: { + GameTrigger = input.ReadString(); + break; + } + case 66: { + GameTriggerLogic = input.ReadString(); + break; + } + case 74: { + GameOverseeCond = input.ReadString(); + break; + } + case 82: { + GameTimeLimit = input.ReadString(); + break; + } + case 90: { + GameRole = input.ReadString(); + break; + } + case 98: { + GameSelects = input.ReadString(); + break; + } + case 106: { + GameTargetType = input.ReadString(); + break; + } + case 114: { + GameTargetsFirst = input.ReadString(); + break; + } + case 122: { + GameTargetsSecond = input.ReadString(); + break; + } + case 130: { + GameTargetsSecondLogic = input.ReadString(); + break; + } + case 138: { + GameExtraValue = input.ReadString(); + break; + } + case 146: { + GameSort = input.ReadString(); + break; + } + case 154: { + GameIsShow = input.ReadString(); + break; + } + case 162: { + GameExclusive = input.ReadString(); + break; + } + case 170: { + GameReward = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class SelectOrmData : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SelectOrmData()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::RoomReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SelectOrmData() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SelectOrmData(SelectOrmData other) : this() { + id_ = other.id_; + note_ = other.note_; + group_ = other.group_; + showText_ = other.showText_; + icon_ = other.icon_; + preconditions_ = other.preconditions_; + exclusive_ = other.exclusive_; + taskTime_ = other.taskTime_; + timeLimit_ = other.timeLimit_; + nextSelect_ = other.nextSelect_; + taskLink_ = other.taskLink_; + taskLinkDetails_ = other.taskLinkDetails_; + callMode_ = other.callMode_; + callRecipient_ = other.callRecipient_; + correctOption_ = other.correctOption_; + reward_ = other.reward_; + result_ = other.result_; + route_ = other.route_; + timingChange_ = other.timingChange_; + appliedUI_ = other.appliedUI_; + uIDetails_ = other.uIDetails_; + seq_ = other.seq_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SelectOrmData Clone() { + return new SelectOrmData(this); + } + + /// Field number for the "Id" field. + public const int IdFieldNumber = 1; + private long id_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Id { + get { return id_; } + set { + id_ = value; + } + } + + /// Field number for the "Note" field. + public const int NoteFieldNumber = 2; + private string note_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Note { + get { return note_; } + set { + note_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Group" field. + public const int GroupFieldNumber = 3; + private string group_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Group { + get { return group_; } + set { + group_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ShowText" field. + public const int ShowTextFieldNumber = 4; + private string showText_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ShowText { + get { return showText_; } + set { + showText_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Icon" field. + public const int IconFieldNumber = 5; + private string icon_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Icon { + get { return icon_; } + set { + icon_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Preconditions" field. + public const int PreconditionsFieldNumber = 6; + private string preconditions_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Preconditions { + get { return preconditions_; } + set { + preconditions_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Exclusive" field. + public const int ExclusiveFieldNumber = 7; + private string exclusive_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Exclusive { + get { return exclusive_; } + set { + exclusive_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TaskTime" field. + public const int TaskTimeFieldNumber = 8; + private long taskTime_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TaskTime { + get { return taskTime_; } + set { + taskTime_ = value; + } + } + + /// Field number for the "TimeLimit" field. + public const int TimeLimitFieldNumber = 9; + private long timeLimit_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TimeLimit { + get { return timeLimit_; } + set { + timeLimit_ = value; + } + } + + /// Field number for the "NextSelect" field. + public const int NextSelectFieldNumber = 10; + private string nextSelect_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string NextSelect { + get { return nextSelect_; } + set { + nextSelect_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TaskLink" field. + public const int TaskLinkFieldNumber = 11; + private string taskLink_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TaskLink { + get { return taskLink_; } + set { + taskLink_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TaskLinkDetails" field. + public const int TaskLinkDetailsFieldNumber = 12; + private string taskLinkDetails_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TaskLinkDetails { + get { return taskLinkDetails_; } + set { + taskLinkDetails_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CallMode" field. + public const int CallModeFieldNumber = 13; + private string callMode_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CallMode { + get { return callMode_; } + set { + callMode_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CallRecipient" field. + public const int CallRecipientFieldNumber = 14; + private string callRecipient_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CallRecipient { + get { return callRecipient_; } + set { + callRecipient_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CorrectOption" field. + public const int CorrectOptionFieldNumber = 15; + private string correctOption_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CorrectOption { + get { return correctOption_; } + set { + correctOption_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Reward" field. + public const int RewardFieldNumber = 16; + private string reward_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Reward { + get { return reward_; } + set { + reward_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Result" field. + public const int ResultFieldNumber = 17; + private string result_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Result { + get { return result_; } + set { + result_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Route" field. + public const int RouteFieldNumber = 18; + private string route_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Route { + get { return route_; } + set { + route_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TimingChange" field. + public const int TimingChangeFieldNumber = 19; + private string timingChange_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TimingChange { + get { return timingChange_; } + set { + timingChange_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "AppliedUI" field. + public const int AppliedUIFieldNumber = 20; + private string appliedUI_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string AppliedUI { + get { return appliedUI_; } + set { + appliedUI_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UIDetails" field. + public const int UIDetailsFieldNumber = 21; + private string uIDetails_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UIDetails { + get { return uIDetails_; } + set { + uIDetails_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Seq" field. + public const int SeqFieldNumber = 22; + private string seq_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Seq { + get { return seq_; } + set { + seq_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SelectOrmData); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SelectOrmData other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (Note != other.Note) return false; + if (Group != other.Group) return false; + if (ShowText != other.ShowText) return false; + if (Icon != other.Icon) return false; + if (Preconditions != other.Preconditions) return false; + if (Exclusive != other.Exclusive) return false; + if (TaskTime != other.TaskTime) return false; + if (TimeLimit != other.TimeLimit) return false; + if (NextSelect != other.NextSelect) return false; + if (TaskLink != other.TaskLink) return false; + if (TaskLinkDetails != other.TaskLinkDetails) return false; + if (CallMode != other.CallMode) return false; + if (CallRecipient != other.CallRecipient) return false; + if (CorrectOption != other.CorrectOption) return false; + if (Reward != other.Reward) return false; + if (Result != other.Result) return false; + if (Route != other.Route) return false; + if (TimingChange != other.TimingChange) return false; + if (AppliedUI != other.AppliedUI) return false; + if (UIDetails != other.UIDetails) return false; + if (Seq != other.Seq) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id != 0L) hash ^= Id.GetHashCode(); + if (Note.Length != 0) hash ^= Note.GetHashCode(); + if (Group.Length != 0) hash ^= Group.GetHashCode(); + if (ShowText.Length != 0) hash ^= ShowText.GetHashCode(); + if (Icon.Length != 0) hash ^= Icon.GetHashCode(); + if (Preconditions.Length != 0) hash ^= Preconditions.GetHashCode(); + if (Exclusive.Length != 0) hash ^= Exclusive.GetHashCode(); + if (TaskTime != 0L) hash ^= TaskTime.GetHashCode(); + if (TimeLimit != 0L) hash ^= TimeLimit.GetHashCode(); + if (NextSelect.Length != 0) hash ^= NextSelect.GetHashCode(); + if (TaskLink.Length != 0) hash ^= TaskLink.GetHashCode(); + if (TaskLinkDetails.Length != 0) hash ^= TaskLinkDetails.GetHashCode(); + if (CallMode.Length != 0) hash ^= CallMode.GetHashCode(); + if (CallRecipient.Length != 0) hash ^= CallRecipient.GetHashCode(); + if (CorrectOption.Length != 0) hash ^= CorrectOption.GetHashCode(); + if (Reward.Length != 0) hash ^= Reward.GetHashCode(); + if (Result.Length != 0) hash ^= Result.GetHashCode(); + if (Route.Length != 0) hash ^= Route.GetHashCode(); + if (TimingChange.Length != 0) hash ^= TimingChange.GetHashCode(); + if (AppliedUI.Length != 0) hash ^= AppliedUI.GetHashCode(); + if (UIDetails.Length != 0) hash ^= UIDetails.GetHashCode(); + if (Seq.Length != 0) hash ^= Seq.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (Note.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Note); + } + if (Group.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Group); + } + if (ShowText.Length != 0) { + output.WriteRawTag(34); + output.WriteString(ShowText); + } + if (Icon.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Icon); + } + if (Preconditions.Length != 0) { + output.WriteRawTag(50); + output.WriteString(Preconditions); + } + if (Exclusive.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Exclusive); + } + if (TaskTime != 0L) { + output.WriteRawTag(64); + output.WriteInt64(TaskTime); + } + if (TimeLimit != 0L) { + output.WriteRawTag(72); + output.WriteInt64(TimeLimit); + } + if (NextSelect.Length != 0) { + output.WriteRawTag(82); + output.WriteString(NextSelect); + } + if (TaskLink.Length != 0) { + output.WriteRawTag(90); + output.WriteString(TaskLink); + } + if (TaskLinkDetails.Length != 0) { + output.WriteRawTag(98); + output.WriteString(TaskLinkDetails); + } + if (CallMode.Length != 0) { + output.WriteRawTag(106); + output.WriteString(CallMode); + } + if (CallRecipient.Length != 0) { + output.WriteRawTag(114); + output.WriteString(CallRecipient); + } + if (CorrectOption.Length != 0) { + output.WriteRawTag(122); + output.WriteString(CorrectOption); + } + if (Reward.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(Reward); + } + if (Result.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(Result); + } + if (Route.Length != 0) { + output.WriteRawTag(146, 1); + output.WriteString(Route); + } + if (TimingChange.Length != 0) { + output.WriteRawTag(154, 1); + output.WriteString(TimingChange); + } + if (AppliedUI.Length != 0) { + output.WriteRawTag(162, 1); + output.WriteString(AppliedUI); + } + if (UIDetails.Length != 0) { + output.WriteRawTag(170, 1); + output.WriteString(UIDetails); + } + if (Seq.Length != 0) { + output.WriteRawTag(178, 1); + output.WriteString(Seq); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Id); + } + if (Note.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Note); + } + if (Group.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Group); + } + if (ShowText.Length != 0) { + output.WriteRawTag(34); + output.WriteString(ShowText); + } + if (Icon.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Icon); + } + if (Preconditions.Length != 0) { + output.WriteRawTag(50); + output.WriteString(Preconditions); + } + if (Exclusive.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Exclusive); + } + if (TaskTime != 0L) { + output.WriteRawTag(64); + output.WriteInt64(TaskTime); + } + if (TimeLimit != 0L) { + output.WriteRawTag(72); + output.WriteInt64(TimeLimit); + } + if (NextSelect.Length != 0) { + output.WriteRawTag(82); + output.WriteString(NextSelect); + } + if (TaskLink.Length != 0) { + output.WriteRawTag(90); + output.WriteString(TaskLink); + } + if (TaskLinkDetails.Length != 0) { + output.WriteRawTag(98); + output.WriteString(TaskLinkDetails); + } + if (CallMode.Length != 0) { + output.WriteRawTag(106); + output.WriteString(CallMode); + } + if (CallRecipient.Length != 0) { + output.WriteRawTag(114); + output.WriteString(CallRecipient); + } + if (CorrectOption.Length != 0) { + output.WriteRawTag(122); + output.WriteString(CorrectOption); + } + if (Reward.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(Reward); + } + if (Result.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(Result); + } + if (Route.Length != 0) { + output.WriteRawTag(146, 1); + output.WriteString(Route); + } + if (TimingChange.Length != 0) { + output.WriteRawTag(154, 1); + output.WriteString(TimingChange); + } + if (AppliedUI.Length != 0) { + output.WriteRawTag(162, 1); + output.WriteString(AppliedUI); + } + if (UIDetails.Length != 0) { + output.WriteRawTag(170, 1); + output.WriteString(UIDetails); + } + if (Seq.Length != 0) { + output.WriteRawTag(178, 1); + output.WriteString(Seq); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Id); + } + if (Note.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Note); + } + if (Group.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Group); + } + if (ShowText.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ShowText); + } + if (Icon.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Icon); + } + if (Preconditions.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Preconditions); + } + if (Exclusive.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Exclusive); + } + if (TaskTime != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TaskTime); + } + if (TimeLimit != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TimeLimit); + } + if (NextSelect.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NextSelect); + } + if (TaskLink.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TaskLink); + } + if (TaskLinkDetails.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TaskLinkDetails); + } + if (CallMode.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CallMode); + } + if (CallRecipient.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CallRecipient); + } + if (CorrectOption.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CorrectOption); + } + if (Reward.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(Reward); + } + if (Result.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(Result); + } + if (Route.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(Route); + } + if (TimingChange.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(TimingChange); + } + if (AppliedUI.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(AppliedUI); + } + if (UIDetails.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(UIDetails); + } + if (Seq.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(Seq); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SelectOrmData other) { + if (other == null) { + return; + } + if (other.Id != 0L) { + Id = other.Id; + } + if (other.Note.Length != 0) { + Note = other.Note; + } + if (other.Group.Length != 0) { + Group = other.Group; + } + if (other.ShowText.Length != 0) { + ShowText = other.ShowText; + } + if (other.Icon.Length != 0) { + Icon = other.Icon; + } + if (other.Preconditions.Length != 0) { + Preconditions = other.Preconditions; + } + if (other.Exclusive.Length != 0) { + Exclusive = other.Exclusive; + } + if (other.TaskTime != 0L) { + TaskTime = other.TaskTime; + } + if (other.TimeLimit != 0L) { + TimeLimit = other.TimeLimit; + } + if (other.NextSelect.Length != 0) { + NextSelect = other.NextSelect; + } + if (other.TaskLink.Length != 0) { + TaskLink = other.TaskLink; + } + if (other.TaskLinkDetails.Length != 0) { + TaskLinkDetails = other.TaskLinkDetails; + } + if (other.CallMode.Length != 0) { + CallMode = other.CallMode; + } + if (other.CallRecipient.Length != 0) { + CallRecipient = other.CallRecipient; + } + if (other.CorrectOption.Length != 0) { + CorrectOption = other.CorrectOption; + } + if (other.Reward.Length != 0) { + Reward = other.Reward; + } + if (other.Result.Length != 0) { + Result = other.Result; + } + if (other.Route.Length != 0) { + Route = other.Route; + } + if (other.TimingChange.Length != 0) { + TimingChange = other.TimingChange; + } + if (other.AppliedUI.Length != 0) { + AppliedUI = other.AppliedUI; + } + if (other.UIDetails.Length != 0) { + UIDetails = other.UIDetails; + } + if (other.Seq.Length != 0) { + Seq = other.Seq; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 18: { + Note = input.ReadString(); + break; + } + case 26: { + Group = input.ReadString(); + break; + } + case 34: { + ShowText = input.ReadString(); + break; + } + case 42: { + Icon = input.ReadString(); + break; + } + case 50: { + Preconditions = input.ReadString(); + break; + } + case 58: { + Exclusive = input.ReadString(); + break; + } + case 64: { + TaskTime = input.ReadInt64(); + break; + } + case 72: { + TimeLimit = input.ReadInt64(); + break; + } + case 82: { + NextSelect = input.ReadString(); + break; + } + case 90: { + TaskLink = input.ReadString(); + break; + } + case 98: { + TaskLinkDetails = input.ReadString(); + break; + } + case 106: { + CallMode = input.ReadString(); + break; + } + case 114: { + CallRecipient = input.ReadString(); + break; + } + case 122: { + CorrectOption = input.ReadString(); + break; + } + case 130: { + Reward = input.ReadString(); + break; + } + case 138: { + Result = input.ReadString(); + break; + } + case 146: { + Route = input.ReadString(); + break; + } + case 154: { + TimingChange = input.ReadString(); + break; + } + case 162: { + AppliedUI = input.ReadString(); + break; + } + case 170: { + UIDetails = input.ReadString(); + break; + } + case 178: { + Seq = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Id = input.ReadInt64(); + break; + } + case 18: { + Note = input.ReadString(); + break; + } + case 26: { + Group = input.ReadString(); + break; + } + case 34: { + ShowText = input.ReadString(); + break; + } + case 42: { + Icon = input.ReadString(); + break; + } + case 50: { + Preconditions = input.ReadString(); + break; + } + case 58: { + Exclusive = input.ReadString(); + break; + } + case 64: { + TaskTime = input.ReadInt64(); + break; + } + case 72: { + TimeLimit = input.ReadInt64(); + break; + } + case 82: { + NextSelect = input.ReadString(); + break; + } + case 90: { + TaskLink = input.ReadString(); + break; + } + case 98: { + TaskLinkDetails = input.ReadString(); + break; + } + case 106: { + CallMode = input.ReadString(); + break; + } + case 114: { + CallRecipient = input.ReadString(); + break; + } + case 122: { + CorrectOption = input.ReadString(); + break; + } + case 130: { + Reward = input.ReadString(); + break; + } + case 138: { + Result = input.ReadString(); + break; + } + case 146: { + Route = input.ReadString(); + break; + } + case 154: { + TimingChange = input.ReadString(); + break; + } + case 162: { + AppliedUI = input.ReadString(); + break; + } + case 170: { + UIDetails = input.ReadString(); + break; + } + case 178: { + Seq = input.ReadString(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Room.cs.meta b/xiaofang/Assets/comm/Proto/Room.cs.meta new file mode 100644 index 00000000..8b4ed676 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Room.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: efe7f33d728ac2948956f9a0bcf43259 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/Task.cs b/xiaofang/Assets/comm/Proto/Task.cs new file mode 100644 index 00000000..2b0e0bd6 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Task.cs @@ -0,0 +1,2826 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: task.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from task.proto +public static partial class TaskReflection { + + #region Descriptor + /// File descriptor for task.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static TaskReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgp0YXNrLnByb3RvIiMKEVRhc2tDcmVhdGVSZXF1ZXN0Eg4KBnJvb21JZBgB", + "IAEoCSIWCghCYXNlVGFzaxIKCgJJZBgBIAEoCSJvChJUYXNrQ3JlYXRlUmVz", + "cG9uc2USCgoCSWQYASABKAkSCQoBWBgCIAEoAhIJCgFZGAMgASgCEgkKAVoY", + "BCABKAISDAoEVHlwZRgFIAEoBRIOCgZSb29tSWQYBiABKAkSDgoGVXNlcklk", + "GAcgASgJIrwBChFUYXNrVXBkYXRlUmVxdWVzdBIOCgZSb29tSWQYASABKAkS", + "DgoGVGFza0lkGAIgASgJEg4KBlVzZXJJZBgDIAEoCRIQCghTZWxlY3RJZBgE", + "IAEoCRIQCghUb1VzZXJJZBgFIAEoCRIQCghVc2VyTmFtZRgGIAEoCRIOCgZQ", + "cm9wSWQYByABKAkSEAoIUHJvcE5hbWUYCCABKAkSDwoHUHJvcE51bRgJIAEo", + "BRIOCgZTdGF0dXMYCiABKAkingIKDFRhc2tSZXNwb25zZRIOCgZUYXNrSWQY", + "ASABKAkSDgoGU3RhdHVzGAIgASgJEg4KBlJvb21JZBgDIAEoCRIJCgFYGAQg", + "ASgCEgkKAVkYBSABKAISCQoBWhgGIAEoAhIMCgRUeXBlGAcgASgJEhEKCVRp", + "bWVMaW1pdBgIIAEoAxIMCgREZXNjGAkgASgJEg8KB1RyaWdnZXIYCiABKAkS", + "EQoJTmV4dFRhc2tzGAsgASgJEhIKClRhcmdldFR5cGUYDCABKAkSDgoGUmV3", + "YXJkGA0gASgJEgwKBE5vdGUYDiABKAkSEgoKQ3JlYXRlVGltZRgPIAEoCRIS", + "CgpVcGRhdGVUaW1lGBAgASgJEhAKCFRvVXNlcklkGBEgASgJIlEKC1Rhc2tU", + "cmlnZ2VyEg4KBlVzZXJJZBgCIAEoCRIOCgZSb29tSWQYAyABKAkSEQoJVHJp", + "Z2dlcklkGAQgASgJEg8KB1R5cGVTdHIYBSABKAkiIwoOVGFza09ybVJlcXVl", + "c3QSEQoJc3ViamVjdElkGAEgASgJQgdaBS4vO3BiYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::TaskCreateRequest), global::TaskCreateRequest.Parser, new[]{ "RoomId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::BaseTask), global::BaseTask.Parser, new[]{ "Id" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::TaskCreateResponse), global::TaskCreateResponse.Parser, new[]{ "Id", "X", "Y", "Z", "Type", "RoomId", "UserId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::TaskUpdateRequest), global::TaskUpdateRequest.Parser, new[]{ "RoomId", "TaskId", "UserId", "SelectId", "ToUserId", "UserName", "PropId", "PropName", "PropNum", "Status" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::TaskResponse), global::TaskResponse.Parser, new[]{ "TaskId", "Status", "RoomId", "X", "Y", "Z", "Type", "TimeLimit", "Desc", "Trigger", "NextTasks", "TargetType", "Reward", "Note", "CreateTime", "UpdateTime", "ToUserId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::TaskTrigger), global::TaskTrigger.Parser, new[]{ "UserId", "RoomId", "TriggerId", "TypeStr" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::TaskOrmRequest), global::TaskOrmRequest.Parser, new[]{ "SubjectId" }, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskCreateRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskCreateRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskCreateRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskCreateRequest(TaskCreateRequest other) : this() { + roomId_ = other.roomId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskCreateRequest Clone() { + return new TaskCreateRequest(this); + } + + /// Field number for the "roomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskCreateRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskCreateRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskCreateRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class BaseTask : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BaseTask()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public BaseTask() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public BaseTask(BaseTask other) : this() { + id_ = other.id_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public BaseTask Clone() { + return new BaseTask(this); + } + + /// Field number for the "Id" field. + public const int IdFieldNumber = 1; + private string id_ = ""; + /// + /// 任务id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Id { + get { return id_; } + set { + id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as BaseTask); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(BaseTask other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id.Length != 0) hash ^= Id.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(BaseTask other) { + if (other == null) { + return; + } + if (other.Id.Length != 0) { + Id = other.Id; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Id = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Id = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskCreateResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskCreateResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskCreateResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskCreateResponse(TaskCreateResponse other) : this() { + id_ = other.id_; + x_ = other.x_; + y_ = other.y_; + z_ = other.z_; + type_ = other.type_; + roomId_ = other.roomId_; + userId_ = other.userId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskCreateResponse Clone() { + return new TaskCreateResponse(this); + } + + /// Field number for the "Id" field. + public const int IdFieldNumber = 1; + private string id_ = ""; + /// + /// 任务id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Id { + get { return id_; } + set { + id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "X" field. + public const int XFieldNumber = 2; + private float x_; + /// + /// x坐标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "Y" field. + public const int YFieldNumber = 3; + private float y_; + /// + /// y坐标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "Z" field. + public const int ZFieldNumber = 4; + private float z_; + /// + /// z坐标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + /// Field number for the "Type" field. + public const int TypeFieldNumber = 5; + private int type_; + /// + /// 类型 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Type { + get { return type_; } + set { + type_ = value; + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 6; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 7; + private string userId_ = ""; + /// + /// 用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskCreateResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskCreateResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + if (Type != other.Type) return false; + if (RoomId != other.RoomId) return false; + if (UserId != other.UserId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id.Length != 0) hash ^= Id.GetHashCode(); + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (Type != 0) hash ^= Type.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (X != 0F) { + output.WriteRawTag(21); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(29); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(37); + output.WriteFloat(Z); + } + if (Type != 0) { + output.WriteRawTag(40); + output.WriteInt32(Type); + } + if (RoomId.Length != 0) { + output.WriteRawTag(50); + output.WriteString(RoomId); + } + if (UserId.Length != 0) { + output.WriteRawTag(58); + output.WriteString(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (X != 0F) { + output.WriteRawTag(21); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(29); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(37); + output.WriteFloat(Z); + } + if (Type != 0) { + output.WriteRawTag(40); + output.WriteInt32(Type); + } + if (RoomId.Length != 0) { + output.WriteRawTag(50); + output.WriteString(RoomId); + } + if (UserId.Length != 0) { + output.WriteRawTag(58); + output.WriteString(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); + } + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (Z != 0F) { + size += 1 + 4; + } + if (Type != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskCreateResponse other) { + if (other == null) { + return; + } + if (other.Id.Length != 0) { + Id = other.Id; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.Z != 0F) { + Z = other.Z; + } + if (other.Type != 0) { + Type = other.Type; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 21: { + X = input.ReadFloat(); + break; + } + case 29: { + Y = input.ReadFloat(); + break; + } + case 37: { + Z = input.ReadFloat(); + break; + } + case 40: { + Type = input.ReadInt32(); + break; + } + case 50: { + RoomId = input.ReadString(); + break; + } + case 58: { + UserId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 21: { + X = input.ReadFloat(); + break; + } + case 29: { + Y = input.ReadFloat(); + break; + } + case 37: { + Z = input.ReadFloat(); + break; + } + case 40: { + Type = input.ReadInt32(); + break; + } + case 50: { + RoomId = input.ReadString(); + break; + } + case 58: { + UserId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskUpdateRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskUpdateRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskUpdateRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskUpdateRequest(TaskUpdateRequest other) : this() { + roomId_ = other.roomId_; + taskId_ = other.taskId_; + userId_ = other.userId_; + selectId_ = other.selectId_; + toUserId_ = other.toUserId_; + userName_ = other.userName_; + propId_ = other.propId_; + propName_ = other.propName_; + propNum_ = other.propNum_; + status_ = other.status_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskUpdateRequest Clone() { + return new TaskUpdateRequest(this); + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 1; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TaskId" field. + public const int TaskIdFieldNumber = 2; + private string taskId_ = ""; + /// + /// 任务id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TaskId { + get { return taskId_; } + set { + taskId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 3; + private string userId_ = ""; + /// + /// 用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "SelectId" field. + public const int SelectIdFieldNumber = 4; + private string selectId_ = ""; + /// + /// 选项ID 界面按钮 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SelectId { + get { return selectId_; } + set { + selectId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ToUserId" field. + public const int ToUserIdFieldNumber = 5; + private string toUserId_ = ""; + /// + /// 目标用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ToUserId { + get { return toUserId_; } + set { + toUserId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UserName" field. + public const int UserNameFieldNumber = 6; + private string userName_ = ""; + /// + /// 用户名 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserName { + get { return userName_; } + set { + userName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "PropId" field. + public const int PropIdFieldNumber = 7; + private string propId_ = ""; + /// + ///道具id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PropId { + get { return propId_; } + set { + propId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "PropName" field. + public const int PropNameFieldNumber = 8; + private string propName_ = ""; + /// + ///道具名称 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PropName { + get { return propName_; } + set { + propName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "PropNum" field. + public const int PropNumFieldNumber = 9; + private int propNum_; + /// + ///道具数量 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int PropNum { + get { return propNum_; } + set { + propNum_ = value; + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 10; + private string status_ = ""; + /// + /// 任务状态 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Status { + get { return status_; } + set { + status_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskUpdateRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskUpdateRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomId != other.RoomId) return false; + if (TaskId != other.TaskId) return false; + if (UserId != other.UserId) return false; + if (SelectId != other.SelectId) return false; + if (ToUserId != other.ToUserId) return false; + if (UserName != other.UserName) return false; + if (PropId != other.PropId) return false; + if (PropName != other.PropName) return false; + if (PropNum != other.PropNum) return false; + if (Status != other.Status) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (TaskId.Length != 0) hash ^= TaskId.GetHashCode(); + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (SelectId.Length != 0) hash ^= SelectId.GetHashCode(); + if (ToUserId.Length != 0) hash ^= ToUserId.GetHashCode(); + if (UserName.Length != 0) hash ^= UserName.GetHashCode(); + if (PropId.Length != 0) hash ^= PropId.GetHashCode(); + if (PropName.Length != 0) hash ^= PropName.GetHashCode(); + if (PropNum != 0) hash ^= PropNum.GetHashCode(); + if (Status.Length != 0) hash ^= Status.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (TaskId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(TaskId); + } + if (UserId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(UserId); + } + if (SelectId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(SelectId); + } + if (ToUserId.Length != 0) { + output.WriteRawTag(42); + output.WriteString(ToUserId); + } + if (UserName.Length != 0) { + output.WriteRawTag(50); + output.WriteString(UserName); + } + if (PropId.Length != 0) { + output.WriteRawTag(58); + output.WriteString(PropId); + } + if (PropName.Length != 0) { + output.WriteRawTag(66); + output.WriteString(PropName); + } + if (PropNum != 0) { + output.WriteRawTag(72); + output.WriteInt32(PropNum); + } + if (Status.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Status); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoomId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RoomId); + } + if (TaskId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(TaskId); + } + if (UserId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(UserId); + } + if (SelectId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(SelectId); + } + if (ToUserId.Length != 0) { + output.WriteRawTag(42); + output.WriteString(ToUserId); + } + if (UserName.Length != 0) { + output.WriteRawTag(50); + output.WriteString(UserName); + } + if (PropId.Length != 0) { + output.WriteRawTag(58); + output.WriteString(PropId); + } + if (PropName.Length != 0) { + output.WriteRawTag(66); + output.WriteString(PropName); + } + if (PropNum != 0) { + output.WriteRawTag(72); + output.WriteInt32(PropNum); + } + if (Status.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Status); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (TaskId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TaskId); + } + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (SelectId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SelectId); + } + if (ToUserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ToUserId); + } + if (UserName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserName); + } + if (PropId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PropId); + } + if (PropName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PropName); + } + if (PropNum != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(PropNum); + } + if (Status.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Status); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskUpdateRequest other) { + if (other == null) { + return; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.TaskId.Length != 0) { + TaskId = other.TaskId; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + if (other.SelectId.Length != 0) { + SelectId = other.SelectId; + } + if (other.ToUserId.Length != 0) { + ToUserId = other.ToUserId; + } + if (other.UserName.Length != 0) { + UserName = other.UserName; + } + if (other.PropId.Length != 0) { + PropId = other.PropId; + } + if (other.PropName.Length != 0) { + PropName = other.PropName; + } + if (other.PropNum != 0) { + PropNum = other.PropNum; + } + if (other.Status.Length != 0) { + Status = other.Status; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 18: { + TaskId = input.ReadString(); + break; + } + case 26: { + UserId = input.ReadString(); + break; + } + case 34: { + SelectId = input.ReadString(); + break; + } + case 42: { + ToUserId = input.ReadString(); + break; + } + case 50: { + UserName = input.ReadString(); + break; + } + case 58: { + PropId = input.ReadString(); + break; + } + case 66: { + PropName = input.ReadString(); + break; + } + case 72: { + PropNum = input.ReadInt32(); + break; + } + case 82: { + Status = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + RoomId = input.ReadString(); + break; + } + case 18: { + TaskId = input.ReadString(); + break; + } + case 26: { + UserId = input.ReadString(); + break; + } + case 34: { + SelectId = input.ReadString(); + break; + } + case 42: { + ToUserId = input.ReadString(); + break; + } + case 50: { + UserName = input.ReadString(); + break; + } + case 58: { + PropId = input.ReadString(); + break; + } + case 66: { + PropName = input.ReadString(); + break; + } + case 72: { + PropNum = input.ReadInt32(); + break; + } + case 82: { + Status = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskResponse(TaskResponse other) : this() { + taskId_ = other.taskId_; + status_ = other.status_; + roomId_ = other.roomId_; + x_ = other.x_; + y_ = other.y_; + z_ = other.z_; + type_ = other.type_; + timeLimit_ = other.timeLimit_; + desc_ = other.desc_; + trigger_ = other.trigger_; + nextTasks_ = other.nextTasks_; + targetType_ = other.targetType_; + reward_ = other.reward_; + note_ = other.note_; + createTime_ = other.createTime_; + updateTime_ = other.updateTime_; + toUserId_ = other.toUserId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskResponse Clone() { + return new TaskResponse(this); + } + + /// Field number for the "TaskId" field. + public const int TaskIdFieldNumber = 1; + private string taskId_ = ""; + /// + /// 任务id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TaskId { + get { return taskId_; } + set { + taskId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 2; + private string status_ = ""; + /// + /// 状态 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Status { + get { return status_; } + set { + status_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 3; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "X" field. + public const int XFieldNumber = 4; + private float x_; + /// + /// x坐标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "Y" field. + public const int YFieldNumber = 5; + private float y_; + /// + /// y坐标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Y { + get { return y_; } + set { + y_ = value; + } + } + + /// Field number for the "Z" field. + public const int ZFieldNumber = 6; + private float z_; + /// + /// z坐标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Z { + get { return z_; } + set { + z_ = value; + } + } + + /// Field number for the "Type" field. + public const int TypeFieldNumber = 7; + private string type_ = ""; + /// + /// 类型 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Type { + get { return type_; } + set { + type_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TimeLimit" field. + public const int TimeLimitFieldNumber = 8; + private long timeLimit_; + /// + /// 时间限制 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long TimeLimit { + get { return timeLimit_; } + set { + timeLimit_ = value; + } + } + + /// Field number for the "Desc" field. + public const int DescFieldNumber = 9; + private string desc_ = ""; + /// + /// 描述 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Desc { + get { return desc_; } + set { + desc_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Trigger" field. + public const int TriggerFieldNumber = 10; + private string trigger_ = ""; + /// + /// 触发条件 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Trigger { + get { return trigger_; } + set { + trigger_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "NextTasks" field. + public const int NextTasksFieldNumber = 11; + private string nextTasks_ = ""; + /// + /// 下一步任务 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string NextTasks { + get { return nextTasks_; } + set { + nextTasks_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TargetType" field. + public const int TargetTypeFieldNumber = 12; + private string targetType_ = ""; + /// + /// 目标类型 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TargetType { + get { return targetType_; } + set { + targetType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Reward" field. + public const int RewardFieldNumber = 13; + private string reward_ = ""; + /// + /// 奖励 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Reward { + get { return reward_; } + set { + reward_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Note" field. + public const int NoteFieldNumber = 14; + private string note_ = ""; + /// + /// 备注 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Note { + get { return note_; } + set { + note_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "CreateTime" field. + public const int CreateTimeFieldNumber = 15; + private string createTime_ = ""; + /// + /// 创建时间 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string CreateTime { + get { return createTime_; } + set { + createTime_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "UpdateTime" field. + public const int UpdateTimeFieldNumber = 16; + private string updateTime_ = ""; + /// + /// 更新时间 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UpdateTime { + get { return updateTime_; } + set { + updateTime_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ToUserId" field. + public const int ToUserIdFieldNumber = 17; + private string toUserId_ = ""; + /// + /// 目标用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ToUserId { + get { return toUserId_; } + set { + toUserId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TaskId != other.TaskId) return false; + if (Status != other.Status) return false; + if (RoomId != other.RoomId) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(X, other.X)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Y, other.Y)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Z, other.Z)) return false; + if (Type != other.Type) return false; + if (TimeLimit != other.TimeLimit) return false; + if (Desc != other.Desc) return false; + if (Trigger != other.Trigger) return false; + if (NextTasks != other.NextTasks) return false; + if (TargetType != other.TargetType) return false; + if (Reward != other.Reward) return false; + if (Note != other.Note) return false; + if (CreateTime != other.CreateTime) return false; + if (UpdateTime != other.UpdateTime) return false; + if (ToUserId != other.ToUserId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TaskId.Length != 0) hash ^= TaskId.GetHashCode(); + if (Status.Length != 0) hash ^= Status.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (X != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(X); + if (Y != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Y); + if (Z != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Z); + if (Type.Length != 0) hash ^= Type.GetHashCode(); + if (TimeLimit != 0L) hash ^= TimeLimit.GetHashCode(); + if (Desc.Length != 0) hash ^= Desc.GetHashCode(); + if (Trigger.Length != 0) hash ^= Trigger.GetHashCode(); + if (NextTasks.Length != 0) hash ^= NextTasks.GetHashCode(); + if (TargetType.Length != 0) hash ^= TargetType.GetHashCode(); + if (Reward.Length != 0) hash ^= Reward.GetHashCode(); + if (Note.Length != 0) hash ^= Note.GetHashCode(); + if (CreateTime.Length != 0) hash ^= CreateTime.GetHashCode(); + if (UpdateTime.Length != 0) hash ^= UpdateTime.GetHashCode(); + if (ToUserId.Length != 0) hash ^= ToUserId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TaskId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(TaskId); + } + if (Status.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Status); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (X != 0F) { + output.WriteRawTag(37); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(45); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(53); + output.WriteFloat(Z); + } + if (Type.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Type); + } + if (TimeLimit != 0L) { + output.WriteRawTag(64); + output.WriteInt64(TimeLimit); + } + if (Desc.Length != 0) { + output.WriteRawTag(74); + output.WriteString(Desc); + } + if (Trigger.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Trigger); + } + if (NextTasks.Length != 0) { + output.WriteRawTag(90); + output.WriteString(NextTasks); + } + if (TargetType.Length != 0) { + output.WriteRawTag(98); + output.WriteString(TargetType); + } + if (Reward.Length != 0) { + output.WriteRawTag(106); + output.WriteString(Reward); + } + if (Note.Length != 0) { + output.WriteRawTag(114); + output.WriteString(Note); + } + if (CreateTime.Length != 0) { + output.WriteRawTag(122); + output.WriteString(CreateTime); + } + if (UpdateTime.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(UpdateTime); + } + if (ToUserId.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(ToUserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TaskId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(TaskId); + } + if (Status.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Status); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (X != 0F) { + output.WriteRawTag(37); + output.WriteFloat(X); + } + if (Y != 0F) { + output.WriteRawTag(45); + output.WriteFloat(Y); + } + if (Z != 0F) { + output.WriteRawTag(53); + output.WriteFloat(Z); + } + if (Type.Length != 0) { + output.WriteRawTag(58); + output.WriteString(Type); + } + if (TimeLimit != 0L) { + output.WriteRawTag(64); + output.WriteInt64(TimeLimit); + } + if (Desc.Length != 0) { + output.WriteRawTag(74); + output.WriteString(Desc); + } + if (Trigger.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Trigger); + } + if (NextTasks.Length != 0) { + output.WriteRawTag(90); + output.WriteString(NextTasks); + } + if (TargetType.Length != 0) { + output.WriteRawTag(98); + output.WriteString(TargetType); + } + if (Reward.Length != 0) { + output.WriteRawTag(106); + output.WriteString(Reward); + } + if (Note.Length != 0) { + output.WriteRawTag(114); + output.WriteString(Note); + } + if (CreateTime.Length != 0) { + output.WriteRawTag(122); + output.WriteString(CreateTime); + } + if (UpdateTime.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(UpdateTime); + } + if (ToUserId.Length != 0) { + output.WriteRawTag(138, 1); + output.WriteString(ToUserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TaskId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TaskId); + } + if (Status.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Status); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (X != 0F) { + size += 1 + 4; + } + if (Y != 0F) { + size += 1 + 4; + } + if (Z != 0F) { + size += 1 + 4; + } + if (Type.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Type); + } + if (TimeLimit != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(TimeLimit); + } + if (Desc.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Desc); + } + if (Trigger.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Trigger); + } + if (NextTasks.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NextTasks); + } + if (TargetType.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TargetType); + } + if (Reward.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Reward); + } + if (Note.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Note); + } + if (CreateTime.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CreateTime); + } + if (UpdateTime.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(UpdateTime); + } + if (ToUserId.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(ToUserId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskResponse other) { + if (other == null) { + return; + } + if (other.TaskId.Length != 0) { + TaskId = other.TaskId; + } + if (other.Status.Length != 0) { + Status = other.Status; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.X != 0F) { + X = other.X; + } + if (other.Y != 0F) { + Y = other.Y; + } + if (other.Z != 0F) { + Z = other.Z; + } + if (other.Type.Length != 0) { + Type = other.Type; + } + if (other.TimeLimit != 0L) { + TimeLimit = other.TimeLimit; + } + if (other.Desc.Length != 0) { + Desc = other.Desc; + } + if (other.Trigger.Length != 0) { + Trigger = other.Trigger; + } + if (other.NextTasks.Length != 0) { + NextTasks = other.NextTasks; + } + if (other.TargetType.Length != 0) { + TargetType = other.TargetType; + } + if (other.Reward.Length != 0) { + Reward = other.Reward; + } + if (other.Note.Length != 0) { + Note = other.Note; + } + if (other.CreateTime.Length != 0) { + CreateTime = other.CreateTime; + } + if (other.UpdateTime.Length != 0) { + UpdateTime = other.UpdateTime; + } + if (other.ToUserId.Length != 0) { + ToUserId = other.ToUserId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + TaskId = input.ReadString(); + break; + } + case 18: { + Status = input.ReadString(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + case 37: { + X = input.ReadFloat(); + break; + } + case 45: { + Y = input.ReadFloat(); + break; + } + case 53: { + Z = input.ReadFloat(); + break; + } + case 58: { + Type = input.ReadString(); + break; + } + case 64: { + TimeLimit = input.ReadInt64(); + break; + } + case 74: { + Desc = input.ReadString(); + break; + } + case 82: { + Trigger = input.ReadString(); + break; + } + case 90: { + NextTasks = input.ReadString(); + break; + } + case 98: { + TargetType = input.ReadString(); + break; + } + case 106: { + Reward = input.ReadString(); + break; + } + case 114: { + Note = input.ReadString(); + break; + } + case 122: { + CreateTime = input.ReadString(); + break; + } + case 130: { + UpdateTime = input.ReadString(); + break; + } + case 138: { + ToUserId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + TaskId = input.ReadString(); + break; + } + case 18: { + Status = input.ReadString(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + case 37: { + X = input.ReadFloat(); + break; + } + case 45: { + Y = input.ReadFloat(); + break; + } + case 53: { + Z = input.ReadFloat(); + break; + } + case 58: { + Type = input.ReadString(); + break; + } + case 64: { + TimeLimit = input.ReadInt64(); + break; + } + case 74: { + Desc = input.ReadString(); + break; + } + case 82: { + Trigger = input.ReadString(); + break; + } + case 90: { + NextTasks = input.ReadString(); + break; + } + case 98: { + TargetType = input.ReadString(); + break; + } + case 106: { + Reward = input.ReadString(); + break; + } + case 114: { + Note = input.ReadString(); + break; + } + case 122: { + CreateTime = input.ReadString(); + break; + } + case 130: { + UpdateTime = input.ReadString(); + break; + } + case 138: { + ToUserId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskTrigger : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskTrigger()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskTrigger() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskTrigger(TaskTrigger other) : this() { + userId_ = other.userId_; + roomId_ = other.roomId_; + triggerId_ = other.triggerId_; + typeStr_ = other.typeStr_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskTrigger Clone() { + return new TaskTrigger(this); + } + + /// Field number for the "UserId" field. + public const int UserIdFieldNumber = 2; + private string userId_ = ""; + /// + /// 用户id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "RoomId" field. + public const int RoomIdFieldNumber = 3; + private string roomId_ = ""; + /// + /// 房间id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoomId { + get { return roomId_; } + set { + roomId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TriggerId" field. + public const int TriggerIdFieldNumber = 4; + private string triggerId_ = ""; + /// + /// 触发器id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TriggerId { + get { return triggerId_; } + set { + triggerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "TypeStr" field. + public const int TypeStrFieldNumber = 5; + private string typeStr_ = ""; + /// + /// 触发器类型 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TypeStr { + get { return typeStr_; } + set { + typeStr_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskTrigger); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskTrigger other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + if (RoomId != other.RoomId) return false; + if (TriggerId != other.TriggerId) return false; + if (TypeStr != other.TypeStr) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (RoomId.Length != 0) hash ^= RoomId.GetHashCode(); + if (TriggerId.Length != 0) hash ^= TriggerId.GetHashCode(); + if (TypeStr.Length != 0) hash ^= TypeStr.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(UserId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (TriggerId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(TriggerId); + } + if (TypeStr.Length != 0) { + output.WriteRawTag(42); + output.WriteString(TypeStr); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserId.Length != 0) { + output.WriteRawTag(18); + output.WriteString(UserId); + } + if (RoomId.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RoomId); + } + if (TriggerId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(TriggerId); + } + if (TypeStr.Length != 0) { + output.WriteRawTag(42); + output.WriteString(TypeStr); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (RoomId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomId); + } + if (TriggerId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TriggerId); + } + if (TypeStr.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TypeStr); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskTrigger other) { + if (other == null) { + return; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + if (other.RoomId.Length != 0) { + RoomId = other.RoomId; + } + if (other.TriggerId.Length != 0) { + TriggerId = other.TriggerId; + } + if (other.TypeStr.Length != 0) { + TypeStr = other.TypeStr; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 18: { + UserId = input.ReadString(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + case 34: { + TriggerId = input.ReadString(); + break; + } + case 42: { + TypeStr = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 18: { + UserId = input.ReadString(); + break; + } + case 26: { + RoomId = input.ReadString(); + break; + } + case 34: { + TriggerId = input.ReadString(); + break; + } + case 42: { + TypeStr = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class TaskOrmRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TaskOrmRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::TaskReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskOrmRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskOrmRequest(TaskOrmRequest other) : this() { + subjectId_ = other.subjectId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TaskOrmRequest Clone() { + return new TaskOrmRequest(this); + } + + /// Field number for the "subjectId" field. + public const int SubjectIdFieldNumber = 1; + private string subjectId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SubjectId { + get { return subjectId_; } + set { + subjectId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TaskOrmRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TaskOrmRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (SubjectId != other.SubjectId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (SubjectId.Length != 0) hash ^= SubjectId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (SubjectId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(SubjectId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (SubjectId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(SubjectId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (SubjectId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SubjectId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TaskOrmRequest other) { + if (other == null) { + return; + } + if (other.SubjectId.Length != 0) { + SubjectId = other.SubjectId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + SubjectId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + SubjectId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/Task.cs.meta b/xiaofang/Assets/comm/Proto/Task.cs.meta new file mode 100644 index 00000000..823f2628 --- /dev/null +++ b/xiaofang/Assets/comm/Proto/Task.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7dc2c5b09fa1821438dbc817a6f5cb74 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/Proto/User.cs b/xiaofang/Assets/comm/Proto/User.cs new file mode 100644 index 00000000..a818a57a --- /dev/null +++ b/xiaofang/Assets/comm/Proto/User.cs @@ -0,0 +1,1031 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: user.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from user.proto +public static partial class UserReflection { + + #region Descriptor + /// File descriptor for user.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static UserReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgp1c2VyLnByb3RvIiQKElVzZXJPZmZsaW5lUmVxdWVzdBIOCgZ1c2VySWQY", + "ASABKAkiJQoTVXNlck9mZmxpbmVSZXNwb25zZRIOCgZ1c2VySWQYASABKAki", + "IQoPVXNlclJvbGVSZXF1ZXN0Eg4KBnJvbGVJZBgBIAEoBSKCAQoQVXNlclJv", + "bGVSZXNwb25zZRIOCgZyb2xlSWQYASABKAUSEAoIcm9sZU5hbWUYAiABKAkS", + "EgoKYWN0aW9uTW9kZRgDIAEoBRINCgVncm91cBgEIAEoBRITCgtncm91cExl", + "YWRlchgFIAEoBRIUCgxpc0xlYWRpbmdOUEMYBiABKAVCB1oFLi87cGJiBnBy", + "b3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::UserOfflineRequest), global::UserOfflineRequest.Parser, new[]{ "UserId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserOfflineResponse), global::UserOfflineResponse.Parser, new[]{ "UserId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserRoleRequest), global::UserRoleRequest.Parser, new[]{ "RoleId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UserRoleResponse), global::UserRoleResponse.Parser, new[]{ "RoleId", "RoleName", "ActionMode", "Group", "GroupLeader", "IsLeadingNPC" }, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserOfflineRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserOfflineRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::UserReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserOfflineRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserOfflineRequest(UserOfflineRequest other) : this() { + userId_ = other.userId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserOfflineRequest Clone() { + return new UserOfflineRequest(this); + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 1; + private string userId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserOfflineRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserOfflineRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserOfflineRequest other) { + if (other == null) { + return; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + UserId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + UserId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserOfflineResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserOfflineResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::UserReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserOfflineResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserOfflineResponse(UserOfflineResponse other) : this() { + userId_ = other.userId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserOfflineResponse Clone() { + return new UserOfflineResponse(this); + } + + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 1; + private string userId_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string UserId { + get { return userId_; } + set { + userId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserOfflineResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserOfflineResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserId != other.UserId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (UserId.Length != 0) hash ^= UserId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (UserId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (UserId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(UserId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (UserId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(UserId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserOfflineResponse other) { + if (other == null) { + return; + } + if (other.UserId.Length != 0) { + UserId = other.UserId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + UserId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + UserId = input.ReadString(); + break; + } + } + } + } + #endif + +} + +/// +/// 角色信息请求 +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserRoleRequest : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserRoleRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::UserReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserRoleRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserRoleRequest(UserRoleRequest other) : this() { + roleId_ = other.roleId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserRoleRequest Clone() { + return new UserRoleRequest(this); + } + + /// Field number for the "roleId" field. + public const int RoleIdFieldNumber = 1; + private int roleId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RoleId { + get { return roleId_; } + set { + roleId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserRoleRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserRoleRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoleId != other.RoleId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoleId != 0) hash ^= RoleId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoleId != 0) { + output.WriteRawTag(8); + output.WriteInt32(RoleId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoleId != 0) { + output.WriteRawTag(8); + output.WriteInt32(RoleId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoleId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoleId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserRoleRequest other) { + if (other == null) { + return; + } + if (other.RoleId != 0) { + RoleId = other.RoleId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + RoleId = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + RoleId = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +/// +/// 角色信息响应 +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class UserRoleResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserRoleResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::UserReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserRoleResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserRoleResponse(UserRoleResponse other) : this() { + roleId_ = other.roleId_; + roleName_ = other.roleName_; + actionMode_ = other.actionMode_; + group_ = other.group_; + groupLeader_ = other.groupLeader_; + isLeadingNPC_ = other.isLeadingNPC_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UserRoleResponse Clone() { + return new UserRoleResponse(this); + } + + /// Field number for the "roleId" field. + public const int RoleIdFieldNumber = 1; + private int roleId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RoleId { + get { return roleId_; } + set { + roleId_ = value; + } + } + + /// Field number for the "roleName" field. + public const int RoleNameFieldNumber = 2; + private string roleName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RoleName { + get { return roleName_; } + set { + roleName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "actionMode" field. + public const int ActionModeFieldNumber = 3; + private int actionMode_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int ActionMode { + get { return actionMode_; } + set { + actionMode_ = value; + } + } + + /// Field number for the "group" field. + public const int GroupFieldNumber = 4; + private int group_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Group { + get { return group_; } + set { + group_ = value; + } + } + + /// Field number for the "groupLeader" field. + public const int GroupLeaderFieldNumber = 5; + private int groupLeader_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int GroupLeader { + get { return groupLeader_; } + set { + groupLeader_ = value; + } + } + + /// Field number for the "isLeadingNPC" field. + public const int IsLeadingNPCFieldNumber = 6; + private int isLeadingNPC_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int IsLeadingNPC { + get { return isLeadingNPC_; } + set { + isLeadingNPC_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UserRoleResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UserRoleResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoleId != other.RoleId) return false; + if (RoleName != other.RoleName) return false; + if (ActionMode != other.ActionMode) return false; + if (Group != other.Group) return false; + if (GroupLeader != other.GroupLeader) return false; + if (IsLeadingNPC != other.IsLeadingNPC) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (RoleId != 0) hash ^= RoleId.GetHashCode(); + if (RoleName.Length != 0) hash ^= RoleName.GetHashCode(); + if (ActionMode != 0) hash ^= ActionMode.GetHashCode(); + if (Group != 0) hash ^= Group.GetHashCode(); + if (GroupLeader != 0) hash ^= GroupLeader.GetHashCode(); + if (IsLeadingNPC != 0) hash ^= IsLeadingNPC.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (RoleId != 0) { + output.WriteRawTag(8); + output.WriteInt32(RoleId); + } + if (RoleName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(RoleName); + } + if (ActionMode != 0) { + output.WriteRawTag(24); + output.WriteInt32(ActionMode); + } + if (Group != 0) { + output.WriteRawTag(32); + output.WriteInt32(Group); + } + if (GroupLeader != 0) { + output.WriteRawTag(40); + output.WriteInt32(GroupLeader); + } + if (IsLeadingNPC != 0) { + output.WriteRawTag(48); + output.WriteInt32(IsLeadingNPC); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (RoleId != 0) { + output.WriteRawTag(8); + output.WriteInt32(RoleId); + } + if (RoleName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(RoleName); + } + if (ActionMode != 0) { + output.WriteRawTag(24); + output.WriteInt32(ActionMode); + } + if (Group != 0) { + output.WriteRawTag(32); + output.WriteInt32(Group); + } + if (GroupLeader != 0) { + output.WriteRawTag(40); + output.WriteInt32(GroupLeader); + } + if (IsLeadingNPC != 0) { + output.WriteRawTag(48); + output.WriteInt32(IsLeadingNPC); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (RoleId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoleId); + } + if (RoleName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RoleName); + } + if (ActionMode != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(ActionMode); + } + if (Group != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Group); + } + if (GroupLeader != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(GroupLeader); + } + if (IsLeadingNPC != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(IsLeadingNPC); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UserRoleResponse other) { + if (other == null) { + return; + } + if (other.RoleId != 0) { + RoleId = other.RoleId; + } + if (other.RoleName.Length != 0) { + RoleName = other.RoleName; + } + if (other.ActionMode != 0) { + ActionMode = other.ActionMode; + } + if (other.Group != 0) { + Group = other.Group; + } + if (other.GroupLeader != 0) { + GroupLeader = other.GroupLeader; + } + if (other.IsLeadingNPC != 0) { + IsLeadingNPC = other.IsLeadingNPC; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + RoleId = input.ReadInt32(); + break; + } + case 18: { + RoleName = input.ReadString(); + break; + } + case 24: { + ActionMode = input.ReadInt32(); + break; + } + case 32: { + Group = input.ReadInt32(); + break; + } + case 40: { + GroupLeader = input.ReadInt32(); + break; + } + case 48: { + IsLeadingNPC = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + RoleId = input.ReadInt32(); + break; + } + case 18: { + RoleName = input.ReadString(); + break; + } + case 24: { + ActionMode = input.ReadInt32(); + break; + } + case 32: { + Group = input.ReadInt32(); + break; + } + case 40: { + GroupLeader = input.ReadInt32(); + break; + } + case 48: { + IsLeadingNPC = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/comm/Proto/User.cs.meta b/xiaofang/Assets/comm/Proto/User.cs.meta new file mode 100644 index 00000000..19dd7dfd --- /dev/null +++ b/xiaofang/Assets/comm/Proto/User.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 89dab302d915deb4ba459f561a2a9f15 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/test/Ws.cs b/xiaofang/Assets/comm/Proto/Ws.cs similarity index 99% rename from xiaofang/Assets/test/Ws.cs rename to xiaofang/Assets/comm/Proto/Ws.cs index 3da1cd10..a7ce9133 100644 --- a/xiaofang/Assets/test/Ws.cs +++ b/xiaofang/Assets/comm/Proto/Ws.cs @@ -320,7 +320,7 @@ public sealed partial class WSMessage : pb::IMessage } } #endif - } + } #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE [global::System.Diagnostics.DebuggerNonUserCodeAttribute] diff --git a/xiaofang/Assets/test/Ws.cs.meta b/xiaofang/Assets/comm/Proto/Ws.cs.meta similarity index 83% rename from xiaofang/Assets/test/Ws.cs.meta rename to xiaofang/Assets/comm/Proto/Ws.cs.meta index dd9d6b70..f2e9d98e 100644 --- a/xiaofang/Assets/test/Ws.cs.meta +++ b/xiaofang/Assets/comm/Proto/Ws.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b1a0e968aa808f743ae45f5525efa824 +guid: 6d54b057f10017a4d98893bdbd8509e0 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/xiaofang/Assets/comm/WEBScriptListener.cs b/xiaofang/Assets/comm/WEBScriptListener.cs new file mode 100644 index 00000000..436b1336 --- /dev/null +++ b/xiaofang/Assets/comm/WEBScriptListener.cs @@ -0,0 +1,215 @@ +// WebSocket +using Google.Protobuf.WellKnownTypes; +using System; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using UnityEngine; +using UnityWebSocket; +/// +/// Socket +/// +public class WEBScriptListener: MonoBehaviour +{ + public string serverIP = "ws://192.168.3.110"; + //˿ + public int serverPort = 8445; + WebSocket socket; + public string type; // + public delegate void MyCallback(byte[] data); + public event MyCallback OnCallback; + public void ConcatWEBSocket() + { + socket = new WebSocket($"{serverIP}:{serverPort}/safety/cloud"); + socket.OnOpen += Socket_OnOpen; + socket.OnMessage += Socket_OnMessage; + socket.OnError += Socket_OnError; + socket.ConnectAsync(); + Debug.Log($"ִwebsocket"); + } + private void Socket_OnOpen(object sender, OpenEventArgs e) + { + Debug.Log("================"); + } + void Socket_OnMessage(object sender, MessageEventArgs e) + { + var data = Encoding.UTF8.GetString(e.RawData); + if (OnCallback != null) + { + Debug.Log(e.RawData); + OnCallback(e.RawData); + } + + } + void Socket_OnError(object sender, ErrorEventArgs e) + { + Debug.Log(string.Format("Error: {0}", e.Message)); + } + public void SendMessageByte(byte[] message) + { + if (socket != null) + { + Debug.Log("Ϣ"); + Debug.Log(string.Format("Error: {0}", message)); + socket.SendAsync(message); + } + else + { + Debug.LogError("WebSocket is not connected!"); + } + } + public void SendMessageText(string message) + { + if (socket != null) + { + Debug.Log("Ϣ"); + socket.SendAsync(message); + } + else + { + Debug.LogError("WebSocket is not connected!"); + } + } + //˿ + /*public string serverIP = "192.168.3.110"; + public int serverPort = 8445; + Socket socket; + private bool IsConnect = true; + private string recMes = "NULL"; + private int recTimes = 0; + private string staInfo = "NULL"; + private object s_thread; + + public void ConcatWEBSocket() + { + socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + try + { + IPAddress ip = IPAddress.Parse(serverIP); + IPEndPoint point = new IPEndPoint(ip, serverPort); + + socket.Connect(point); + Debug.Log("ӳɹ , " + " ip = " + ip + " port = " + serverPort); + staInfo = ip + ":" + serverPort + " ӳɹ"; + Thread r_thread = new Thread(ReceiveMessage); //µ̣߳ͣĽշϢ + r_thread.IsBackground = true; + r_thread.Start(); + + Thread s_thread = new Thread(SendMessage); //µ̣߳ͣĸϢ + s_thread.IsBackground = true; + s_thread.Start(); + } + catch (Exception) + { + Debug.Log("IP߶˿ںŴ......"); + staInfo = "IP߶˿ںŴ......"; + } + + + + } + + void SendMessage() + { + Debug.Log("Ϣ"); + byte[] data = Encoding.UTF8.GetBytes("CCDDA10100010001A448"); + socket.Send(data); + } + void ReceiveMessage() + { + while (IsConnect) + { + try + { + byte[] buffer = new byte[9]; + //ʵʽյЧֽ + int len = socket.Receive(buffer); + if (len == 0) + { + break; + } + + recMes = HexDecoder.ByteArrayToString(buffer); + Debug.Log("ͻ˽յ " + len); + Debug.Log("ͻ˽յ " + recMes.ToUpper()); + + recTimes++; + staInfo = "յһݣմΪ " + recTimes; + Debug.Log("մΪ" + recTimes); + } + catch { } + } + + } + // HEX תΪ16 + public class HexDecoder + { + public static string ByteArrayToString(byte[] ba) + { + StringBuilder hex = new StringBuilder(ba.Length * 2); + foreach (byte b in ba) + hex.AppendFormat("{0:x2}", b); + return hex.ToString(); + } + }*/ + +} + +/*using System.Net.Sockets; +using System.Net; +using System.Text; +using System.IO; +using UnityEngine; +public class WEBScriptListener +{ + public void TCPServerDemo() + { + //˵IPַ + //նϲѯIP + string serverIP = "192.168.3.218"; + //˿ + int serverPort = 50000; + + Debug.Log("Ϊ"); + Debug.Log($"IP{serverIP}˿ڣ{serverPort}"); + + //ʹָĵַ壬׽ͺЭʵµ׽ + Socket socketServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + //ַַתΪЭַ + IPAddress ipAddress = IPAddress.Parse(serverIP);//ΪIP + //ʹַָͶ˿ںʵµ˵ + IPEndPoint endPoint = new IPEndPoint(ipAddress, serverPort);//ipAddressΪIP 6000Ϊ˿ + Debug.Log(string.Format("Ϣ: {0}", endPoint)); + try + { + //socket뱾սIP˿ + socketServer.Bind(endPoint); + //ȣ + socketServer.Listen(200); + } + catch + { + Debug.Log("IPǷȷ˿Ƿռã"); + socketServer.Close(); + return; + } + + Debug.Log("ȴͻӡ"); + //ȴͻӣûпͻӣһַȴ + //1Ӳ豸ΪTCP_Client + //2ӲĿIP serverIP һµֵ + //3ӲĿĶ˿豸 serverPort һµֵ + //Ӳϣϲ + Socket socket = socketServer.Accept(); + Debug.Log("ӳɹ"); + + string[] strs = socket.RemoteEndPoint.ToString().Split(':'); + Debug.Log("ͻIP" + strs[0] + " ˿ڣ" + strs[1]); + // Ϊݷ + + Debug.Log(""); + } + +} +*/ \ No newline at end of file diff --git a/xiaofang/Assets/comm/WEBScriptListener.cs.meta b/xiaofang/Assets/comm/WEBScriptListener.cs.meta new file mode 100644 index 00000000..b79b8032 --- /dev/null +++ b/xiaofang/Assets/comm/WEBScriptListener.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44720823678ca7c42a08f4409ab025ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/comm/test.cs b/xiaofang/Assets/comm/test.cs new file mode 100644 index 00000000..4ee36644 --- /dev/null +++ b/xiaofang/Assets/comm/test.cs @@ -0,0 +1,347 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Newtonsoft.Json; +using System.Net.Sockets; +using UnityWebSocket; +using System.Text; +using Google.Protobuf; +using System.Net.WebSockets; +using System; +using System.Threading.Tasks; +public class test : MonoBehaviour +{ + public string token; + public WEBScriptListener wEBScriptListener; + public class auth_login + { + public string clientId = "e5cd7e4891bf95d1d19206ce24a7b32e"; + public string grantType = "password"; + public string userType = "company_user"; + public string username = "13699802230"; + public string password = "YYL2230!"; + } + public async void loging() + { + auth_login auth_Login = new auth_login(); + string response = await web.SendRequest(web.URL + "/auth/login", "POST", JsonUtility.ToJson(auth_Login)); + + // ص + server serverData = JsonConvert.DeserializeObject(response); + token = serverData.data.access_token; + //Debug.Log(setverData.msg); + + } + //¼ + void lodingWebSocket() + { + LoginRequest data = new LoginRequest(); + data.UserId = "1846032755921199105"; + data.Account = "13152628999"; + + + WSMessage msg = new WSMessage(); + msg.Module = "hall"; + msg.ServiceName = "Login"; + msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + byte[] sendData = ProtoBufffer.Serialize(msg); + WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + LoginRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + Debug.Log("¼"); + + wEBScriptListener.SendMessageByte(sendData); + } + //뷿 + void JoinRoom() + { + JoinRoomRequest data = new JoinRoomRequest(); + data.RoomId = "168888"; + WSMessage msg = new WSMessage(); + msg.Module = "hall"; + msg.ServiceName = "JoinRoom"; + msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + byte[] sendData = ProtoBufffer.Serialize(msg); + WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + JoinRoomRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + Debug.Log("뷿"); + //BroadcastFrameMsg.FramesFieldNumber + + + wEBScriptListener.SendMessageByte(sendData); + } + + //void BroadcastMessage() + //{ + // WSMessage msg = new WSMessage(); + // msg.Module = "hall"; + // msg.ServiceName = "BroadcastMessage"; + // //msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + // byte[] sendData = ProtoBufffer.Serialize(msg); + // WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + // JoinRoomRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + // Debug.Log("뷿"); + // //BroadcastFrameMsg.FramesFieldNumber + + + // wEBScriptListener.SendMessageByte(sendData); + //} + + // + async void Heartbeat() + { + //WSMessage msg = new WSMessage(); + //msg.Data = ByteString.CopyFrom(new byte[] { 1 }); + //byte[] sendData = ProtoBufffer.Serialize(msg); + //Debug.Log(""); + while (true) + { + WSMessage msg = new WSMessage(); + msg.Module = "ping"; + //msg.Data = ByteString.CopyFrom(new byte[] { 1 }); + byte[] sendData = ProtoBufffer.Serialize(msg); + // ÿִе + Debug.Log("ÿִһ"); + wEBScriptListener.SendMessageByte(sendData); + + // ȴһ + await Task.Delay(1000); + } + } + //֡洢 + //void UpFps() + //{ + // InputData data = new InputData(); + // data.RoomId = "168888"; + // data.Id = "778899"; + // data.SId = "7"; + // data.X = 7f; + // data.Y = 5f; + // data.Z = 4f; + // data.RoomSeatId = 5; + // WSMessage msg = new WSMessage(); + // msg.Module = "fps"; + // msg.ServiceName = "UpFps"; + // msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + // byte[] sendData = ProtoBufffer.Serialize(msg); + // WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + // InputData login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + // Debug.Log("֡洢"); + // //BroadcastFrameMsg.FramesFieldNumber + + // wEBScriptListener.SendMessageByte(sendData); + //} + + //ʰȡ + void PickUpProp() + { + PropRequest data = new PropRequest(); + data.PropId = 1001; + data.RoomId = "168888"; + WSMessage msg = new WSMessage(); + msg.Module = "prop"; + msg.ServiceName = "PickUpProp"; + msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + byte[] sendData = ProtoBufffer.Serialize(msg); + WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + PropRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + Debug.Log("ʰȡ"); + //BroadcastFrameMsg.FramesFieldNumber + + wEBScriptListener.SendMessageByte(sendData); + } + + //ʹõ + void StartUseProp() + { + PropRequest data = new PropRequest(); + data.RoomId = "168888"; + data.PropId = 1001; + data.Action = 1; + data.PropServerId = "MTg1OTc5MDMwOTIyODc4OTc2MA=="; + WSMessage msg = new WSMessage(); + msg.Module = "prop"; + msg.ServiceName = "StartUseProp"; + msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + byte[] sendData = ProtoBufffer.Serialize(msg); + WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + PropRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + Debug.Log("ʹõ"); + //BroadcastFrameMsg.FramesFieldNumber + + wEBScriptListener.SendMessageByte(sendData); + } + //ֹͣʹõ + void StopUseProp() + { + PropRequest data = new PropRequest(); + data.RoomId = "168888"; + data.PropId = 1001; + data.PropServerId = "MTg1OTc5MDMwOTIyODc4OTc2MA=="; + WSMessage msg = new WSMessage(); + msg.Module = "prop"; + msg.ServiceName = "StopUseProp"; + msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + byte[] sendData = ProtoBufffer.Serialize(msg); + WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + PropRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + Debug.Log("ֹͣʹõ"); + //BroadcastFrameMsg.FramesFieldNumber + + wEBScriptListener.SendMessageByte(sendData); + } + + //NPC ========================ʱҪ + //void CreateNpc() + //{ + // PropRequest data = new PropRequest(); + // data.RoomId = "168888"; + // WSMessage msg = new WSMessage(); + // msg.Module = "move"; + // msg.ServiceName = "CreateNpc"; + // msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + // byte[] sendData = ProtoBufffer.Serialize(msg); + // WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + // PropRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + // Debug.Log("NPC"); + // //BroadcastFrameMsg.FramesFieldNumber + + // wEBScriptListener.SendMessageByte(sendData); + //} + + //npcҵϢ ===============ֻҪϢ + //void Location() + //{ + // PropRequest data = new PropRequest(); + // data.RoomId = "168888"; + // WSMessage msg = new WSMessage(); + // msg.Module = "prop"; + // msg.ServiceName = "CreateNpc"; + // msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + // byte[] sendData = ProtoBufffer.Serialize(msg); + // WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + // PropRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + // Debug.Log("npcҵϢ"); + // //BroadcastFrameMsg.FramesFieldNumber + + // wEBScriptListener.SendMessageByte(sendData); + //} + + + + //ʼʱ + void RoomStartTime() + { + JoinRoomRequest data = new JoinRoomRequest(); + data.RoomId = "168888"; + WSMessage msg = new WSMessage(); + msg.Module = "hall"; + msg.ServiceName = "RoomStartTime"; + msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data)); + byte[] sendData = ProtoBufffer.Serialize(msg); + WSMessage deinfo = ProtoBufffer.DeSerialize(sendData); + JoinRoomRequest login = ProtoBufffer.DeSerialize(deinfo.Data.ToByteArray()); + Debug.Log("npcҵϢ"); + //BroadcastFrameMsg.FramesFieldNumber + + wEBScriptListener.SendMessageByte(sendData); + } + + + + + + + + + // Start is called before the first frame update + void Start() + { + //loging(); + wEBScriptListener.ConcatWEBSocket(); + wEBScriptListener.OnCallback += callback; + if (wEBScriptListener != null) + { + lodingWebSocket(); + JoinRoom(); + //Heartbeat(); + //BroadcastMessage(); + //UpFps(); + PickUpProp(); + StartUseProp(); + StopUseProp(); + //RoomStartTime(); + + } + } + + void callback(byte[] data) + { + WSResponse deinfo = ProtoBufffer.DeSerialize(data); + Debug.Log(":"+deinfo.MessageType); + byte[] bytes = deinfo.Data.ToByteArray(); + switch (deinfo.MessageType) + { + // + //¼ + case "hall.Login": + LoginResponse user = ProtoBufffer.DeSerialize(bytes); + Debug.Log(user.Message); + break; + + //뷿 + case "hall.JoinRoom": + JoinRoomResponse joinRoomResponse = ProtoBufffer.DeSerialize(bytes); + byte[] joinByte = joinRoomResponse.Data.ToByteArray(); + PlayerJoinResponse playerJoinResponse = ProtoBufffer.DeSerialize(joinByte); + Debug.Log("ң"+playerJoinResponse.UserName+"뷿:"+playerJoinResponse.RoomId.ToString()); + break; + + //㲥 + case "hall.BroadcastMessage": + UserJoinResponse userJoinResponse = ProtoBufffer.DeSerialize(bytes); + Debug.Log("dzƣ" + userJoinResponse.NickName + ",:" + userJoinResponse.RoomId.ToString() + "ûɫ"+ userJoinResponse.RoleName); + break; + + // + case "fps.UpFps": + InputData inputData = ProtoBufffer.DeSerialize(bytes); + Debug.Log("Id" + inputData.Id + ",sId :" + inputData.SId + "X:"+ inputData.X.ToString() + "Y:" + inputData.Y.ToString() + "roomSeatId :" + inputData.RoomSeatId + "z:" + inputData.Z.ToString() + "roomId:" + inputData.RoomId); + break; + + case "prop.PickUpProp": + PropRequest propRequest = ProtoBufffer.DeSerialize(bytes); + Debug.Log("PropId:" + propRequest.PropId); + break; + + case "prop.StartUseProp": + PropResponse useProp = ProtoBufffer.DeSerialize(bytes); + + Debug.Log("PropId:" + useProp); + break; + + case "prop.StopUseProp": + PropResponse stopuseProp = ProtoBufffer.DeSerialize(bytes); + + Debug.Log("PropId:" + stopuseProp); + break; + + //case "prop.CreateNpc": + // MoveResponse moveResponse = ProtoBufffer.DeSerialize(bytes); + // Debug.Log("UserId:" + moveResponse.UserId + "RoomId:" + moveResponse.RoomId + "x:" + moveResponse.MoveData); + // break; + + + + //case "hall.RoomStartTime": + // JoinRoomRequest joinRoomRequest = ProtoBufffer.DeSerialize(bytes); + // Debug.Log("PropId:" + joinRoomRequest.RoomId); + // break; + //case " hall.MessageToUser": + // //JoinRoomRequest joinRoomRequest = ProtoBufffer.DeSerialize(bytes); + // //Debug.Log("PropId:" + joinRoomRequest.RoomId); + // break; + + } + } + +} diff --git a/xiaofang/Assets/comm/test.cs.meta b/xiaofang/Assets/comm/test.cs.meta new file mode 100644 index 00000000..21f53bce --- /dev/null +++ b/xiaofang/Assets/comm/test.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c68b1dcfbba61b44ca68572c16b16b95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: