Browse Source

临时保存修改

DGJ 1 year ago
parent
commit
0c227884fd
100 changed files with 1990 additions and 52 deletions
  1. 8 0
      Assets/HotUpdate.meta
  2. 18 0
      Assets/HotUpdate/HotUpdate.asmdef
  3. 7 0
      Assets/HotUpdate/HotUpdate.asmdef.meta
  4. 8 0
      Assets/HotUpdate/Scripts.meta
  5. 1 1
      Assets/LangChaoRTC/Remote/ShowRoom/RemoteVideoControl.cs
  6. 109 51
      Assets/Scenes/LangChaoDemo2.unity
  7. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/EmbedRuntime/MonoPosixHelper.dll
  8. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/EmbedRuntime/mono-2.0-bdwgc.dll
  9. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/EmbedRuntime/mono-2.0-sgen.dll
  10. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/MonoPosixHelper.dll
  11. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/al
  12. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/al2
  13. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/aprofutil
  14. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/caspol
  15. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cccheck
  16. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ccrewrite
  17. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cert-sync
  18. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cert2spc
  19. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/certmgr
  20. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/chktrust
  21. 5 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cli
  22. 7 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cli.bat
  23. 4 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cli_x86
  24. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/crlupdate
  25. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/csc
  26. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/csharp
  27. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/csi
  28. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/disco
  29. 3 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/dmcs
  30. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/dtd2rng
  31. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/dtd2xsd
  32. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/gacutil
  33. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/gacutil2
  34. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/genxs
  35. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/httpcfg
  36. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ikdasm
  37. 3 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ilasm
  38. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ilasm.bat
  39. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/illinkanalyzer
  40. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/installvst
  41. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/lc
  42. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/macpack
  43. 3 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/makecert
  44. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mconfig
  45. 3 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mcs
  46. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mcs.bat
  47. 16 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdassembler
  48. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdbrebase
  49. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc
  50. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-assemble
  51. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-export-html
  52. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-export-msxdoc
  53. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-update
  54. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-validate
  55. 3 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdvalidater
  56. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mkbundle
  57. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mod
  58. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono
  59. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-2.0-bdwgc.dll
  60. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-2.0-sgen.dll
  61. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-api-html
  62. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-api-info
  63. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-bdwgc.exe
  64. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-boehm
  65. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-cil-strip
  66. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-configuration-crypto
  67. 10 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-env
  68. 58 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-find-provides
  69. 192 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-find-requires
  70. 352 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-gdb.py
  71. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-hang-watchdog
  72. 283 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-heapviz
  73. 45 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-package-runtime
  74. 40 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-service
  75. 40 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-service2
  76. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-sgen
  77. 352 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-sgen-gdb.py
  78. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-sgen.exe
  79. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-shlib-cop
  80. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-symbolicate
  81. 177 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-test-install
  82. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-xmltool
  83. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono.exe
  84. 20 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monobin-env
  85. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodis
  86. 64 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodocer
  87. 37 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodocs2html
  88. 3 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodocs2slashdoc
  89. 5 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monolinker
  90. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monolinker.bat
  91. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monop
  92. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monop2
  93. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mozroots
  94. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mprof-report
  95. 5 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/nunit-console
  96. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/nunit-console.bat
  97. 5 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/nunit-console2
  98. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/pdb2mdb
  99. BIN
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/pedump
  100. 2 0
      HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/permview

+ 8 - 0
Assets/HotUpdate.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 21f2d5db85fe4ae469882aa50ba9daed
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 18 - 0
Assets/HotUpdate/HotUpdate.asmdef

@@ -0,0 +1,18 @@
+{
+    "name": "hotUpdate",
+    "rootNamespace": "",
+    "references": [
+        "GUID:9ba9e88902f1b884c9fb49c8334fd327",
+        "GUID:fe18191c7a759a941bc257d5713eac02",
+        "GUID:3190795928831fb41a32ddfc599e09c6"
+    ],
+    "includePlatforms": [],
+    "excludePlatforms": [],
+    "allowUnsafeCode": false,
+    "overrideReferences": false,
+    "precompiledReferences": [],
+    "autoReferenced": true,
+    "defineConstraints": [],
+    "versionDefines": [],
+    "noEngineReferences": false
+}

+ 7 - 0
Assets/HotUpdate/HotUpdate.asmdef.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ec5a8772ac7036443b21bc5a944626d2
+AssemblyDefinitionImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/HotUpdate/Scripts.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f639788c7b7e6d045b2fe56febd576bd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
Assets/LangChaoRTC/Remote/ShowRoom/RemoteVideoControl.cs

@@ -76,7 +76,7 @@ public class RemoteVideoControl : MonoBehaviour
         {
             yield return new WaitForSeconds(0.1f);
 
-            switch (avProVideoPlayer.GetVideoState())
+            switch (avProVideoPlayer.mediaPlayer.m_CurrentState)
             {
                 case MediaPlayerCtrl.MEDIAPLAYER_STATE.NOT_READY:
                     if (!Icon.activeSelf)

+ 109 - 51
Assets/Scenes/LangChaoDemo2.unity

@@ -1731,7 +1731,7 @@ Transform:
   - {fileID: 972518865}
   - {fileID: 1677004746}
   m_Father: {fileID: 0}
-  m_RootOrder: 1
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &108023069
 GameObject:
@@ -1949,7 +1949,7 @@ Transform:
   m_Children:
   - {fileID: 2085389668}
   m_Father: {fileID: 0}
-  m_RootOrder: 49
+  m_RootOrder: 36
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &122690070
 GameObject:
@@ -2194,7 +2194,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 20
+  m_RootOrder: 41
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &154394636
 GameObject:
@@ -2316,7 +2316,7 @@ Transform:
   m_Children:
   - {fileID: 503826677}
   m_Father: {fileID: 0}
-  m_RootOrder: 36
+  m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &178447646
 GameObject:
@@ -2463,7 +2463,7 @@ Transform:
   - {fileID: 68575266}
   - {fileID: 238581573}
   m_Father: {fileID: 0}
-  m_RootOrder: 9
+  m_RootOrder: 19
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &183734199
 MonoBehaviour:
@@ -3077,7 +3077,7 @@ RectTransform:
   - {fileID: 1145787686}
   - {fileID: 1113503034}
   m_Father: {fileID: 0}
-  m_RootOrder: 22
+  m_RootOrder: 43
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -3179,7 +3179,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 33
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &264371156
 GameObject:
@@ -3216,7 +3216,7 @@ Transform:
   - {fileID: 1519883030}
   - {fileID: 1158385692}
   m_Father: {fileID: 0}
-  m_RootOrder: 13
+  m_RootOrder: 27
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &274931183
 GameObject:
@@ -3340,7 +3340,7 @@ Transform:
   - {fileID: 781181986}
   - {fileID: 914680420}
   m_Father: {fileID: 0}
-  m_RootOrder: 16
+  m_RootOrder: 33
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &281315257
 MonoBehaviour:
@@ -3717,7 +3717,7 @@ RectTransform:
   m_Children:
   - {fileID: 5466424356890203264}
   m_Father: {fileID: 0}
-  m_RootOrder: 7
+  m_RootOrder: 15
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -3801,7 +3801,7 @@ Transform:
   m_Children:
   - {fileID: 2056682100}
   m_Father: {fileID: 0}
-  m_RootOrder: 18
+  m_RootOrder: 37
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &305417998
 GameObject:
@@ -3895,7 +3895,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 8
+  m_RootOrder: 17
   m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
 --- !u!1 &307087450
 GameObject:
@@ -3993,7 +3993,7 @@ Transform:
   m_Children:
   - {fileID: 1428694659}
   m_Father: {fileID: 0}
-  m_RootOrder: 40
+  m_RootOrder: 18
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &307533891
 GameObject:
@@ -5871,7 +5871,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 25
+  m_RootOrder: 46
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &453102437
 MonoBehaviour:
@@ -6202,7 +6202,7 @@ Transform:
   m_Children:
   - {fileID: 334138222}
   m_Father: {fileID: 0}
-  m_RootOrder: 38
+  m_RootOrder: 14
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &482153408
 GameObject:
@@ -6433,7 +6433,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 4
+  m_RootOrder: 9
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &500805189
 GameObject:
@@ -7685,7 +7685,7 @@ Transform:
   - {fileID: 2050305761}
   - {fileID: 643100344}
   m_Father: {fileID: 0}
-  m_RootOrder: 17
+  m_RootOrder: 35
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &571089642
 MonoBehaviour:
@@ -8729,7 +8729,7 @@ RectTransform:
   m_Children:
   - {fileID: 877159228}
   m_Father: {fileID: 0}
-  m_RootOrder: 14
+  m_RootOrder: 29
   m_LocalEulerAnglesHint: {x: -29.84, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -9234,7 +9234,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 27
+  m_RootOrder: 48
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &684664681
 GameObject:
@@ -9877,7 +9877,7 @@ Transform:
   m_Children:
   - {fileID: 1510149719}
   m_Father: {fileID: 0}
-  m_RootOrder: 11
+  m_RootOrder: 23
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1001 &743926309
 PrefabInstance:
@@ -9888,7 +9888,7 @@ PrefabInstance:
     m_Modifications:
     - target: {fileID: 3274897787036747888, guid: 9e1deb76e7ead614da932413e318b2fc, type: 3}
       propertyPath: m_RootOrder
-      value: 6
+      value: 13
       objectReference: {fileID: 0}
     - target: {fileID: 3274897787036747888, guid: 9e1deb76e7ead614da932413e318b2fc, type: 3}
       propertyPath: m_LocalPosition.x
@@ -9969,7 +9969,7 @@ PrefabInstance:
       objectReference: {fileID: 1032180714776240065, guid: 60e7352108d9d7b4f8323e4aea4ab17a, type: 3}
     - target: {fileID: 3098302890049078550, guid: 0301f7e8d5359e544955cd429da8a623, type: 3}
       propertyPath: m_RootOrder
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 3098302890049078550, guid: 0301f7e8d5359e544955cd429da8a623, type: 3}
       propertyPath: m_LocalPosition.x
@@ -10363,7 +10363,7 @@ Transform:
   m_Children:
   - {fileID: 1301454615}
   m_Father: {fileID: 0}
-  m_RootOrder: 44
+  m_RootOrder: 26
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &791758554
 GameObject:
@@ -10899,7 +10899,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 2
+  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &845639688
 GameObject:
@@ -11658,7 +11658,7 @@ Transform:
   m_Children:
   - {fileID: 1455474013}
   m_Father: {fileID: 0}
-  m_RootOrder: 50
+  m_RootOrder: 38
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &874439297
 GameObject:
@@ -12376,6 +12376,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   global: 1
   player: {fileID: 0}
+  isPushPos: 0
 --- !u!1 &909790808
 GameObject:
   m_ObjectHideFlags: 0
@@ -12978,7 +12979,7 @@ Transform:
   m_Children:
   - {fileID: 1299352959}
   m_Father: {fileID: 0}
-  m_RootOrder: 10
+  m_RootOrder: 21
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &954129974
 GameObject:
@@ -14165,7 +14166,7 @@ Transform:
   m_Children:
   - {fileID: 1007470594}
   m_Father: {fileID: 0}
-  m_RootOrder: 47
+  m_RootOrder: 32
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1007470593
 GameObject:
@@ -14338,7 +14339,7 @@ Transform:
   - {fileID: 1531761702}
   - {fileID: 906004196}
   m_Father: {fileID: 0}
-  m_RootOrder: 23
+  m_RootOrder: 44
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &1012225064
 MonoBehaviour:
@@ -14605,7 +14606,7 @@ Transform:
   m_Children:
   - {fileID: 1195914728}
   m_Father: {fileID: 0}
-  m_RootOrder: 45
+  m_RootOrder: 28
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1038271688
 GameObject:
@@ -14786,7 +14787,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 30
+  m_RootOrder: 51
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &1039426617
 MonoBehaviour:
@@ -15218,6 +15219,63 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 5466424356445212017, guid: 516b1dd9af80bba42b8206d3a09635bb, type: 3}
   m_PrefabInstance: {fileID: 1067717207}
   m_PrefabAsset: {fileID: 0}
+--- !u!1001 &1076785914
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 6007065485426161915, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_Name
+      value: SDKSystem
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_RootOrder
+      value: 52
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: e8f334e4aa3371f4b99a3794427cffd9, type: 3}
 --- !u!1 &1077211057
 GameObject:
   m_ObjectHideFlags: 0
@@ -15838,7 +15896,7 @@ Transform:
   m_Children:
   - {fileID: 1321099324}
   m_Father: {fileID: 0}
-  m_RootOrder: 15
+  m_RootOrder: 31
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!23 &1111232647
 MeshRenderer:
@@ -16597,7 +16655,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 3
+  m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1165372360
 GameObject:
@@ -17195,7 +17253,7 @@ RectTransform:
   m_Children:
   - {fileID: 1990114660}
   m_Father: {fileID: 0}
-  m_RootOrder: 31
+  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -17637,7 +17695,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 34
+  m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1001 &1299352958
 PrefabInstance:
@@ -18226,7 +18284,7 @@ Transform:
   m_Children:
   - {fileID: 1674454061}
   m_Father: {fileID: 0}
-  m_RootOrder: 41
+  m_RootOrder: 20
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1341529265
 GameObject:
@@ -18362,7 +18420,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 24
+  m_RootOrder: 45
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1347902563
 GameObject:
@@ -18774,7 +18832,7 @@ Transform:
   m_Children:
   - {fileID: 1767066921}
   m_Father: {fileID: 0}
-  m_RootOrder: 39
+  m_RootOrder: 16
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &1353351977
 MonoBehaviour:
@@ -19714,7 +19772,7 @@ Transform:
   m_Children:
   - {fileID: 513072084}
   m_Father: {fileID: 0}
-  m_RootOrder: 46
+  m_RootOrder: 30
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1416708796
 GameObject:
@@ -19812,7 +19870,7 @@ Transform:
   m_Children:
   - {fileID: 337898556}
   m_Father: {fileID: 0}
-  m_RootOrder: 48
+  m_RootOrder: 34
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1417717206
 GameObject:
@@ -20171,7 +20229,7 @@ Transform:
   m_Children:
   - {fileID: 1764105085}
   m_Father: {fileID: 0}
-  m_RootOrder: 37
+  m_RootOrder: 12
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1428694658
 GameObject:
@@ -23225,7 +23283,7 @@ Transform:
   m_Children:
   - {fileID: 66988797}
   m_Father: {fileID: 0}
-  m_RootOrder: 42
+  m_RootOrder: 22
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1713568285
 GameObject:
@@ -24093,7 +24151,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 26
+  m_RootOrder: 47
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1764105084
 GameObject:
@@ -24907,7 +24965,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 12
+  m_RootOrder: 25
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &1834266303
 MonoBehaviour:
@@ -25561,7 +25619,7 @@ Transform:
   m_Children:
   - {fileID: 634173867}
   m_Father: {fileID: 0}
-  m_RootOrder: 43
+  m_RootOrder: 24
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1909598945
 GameObject:
@@ -26123,7 +26181,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 8086746782638953769, guid: 2cb5ff62fa16eed42bdf0f348ac8acc0, type: 3}
       propertyPath: m_RootOrder
-      value: 35
+      value: 8
       objectReference: {fileID: 0}
     - target: {fileID: 8086746782638953769, guid: 2cb5ff62fa16eed42bdf0f348ac8acc0, type: 3}
       propertyPath: m_LocalPosition.x
@@ -26356,7 +26414,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 21
+  m_RootOrder: 42
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &1954795442
 MonoBehaviour:
@@ -26505,7 +26563,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 32
+  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1957186011
 GameObject:
@@ -26849,7 +26907,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 51
+  m_RootOrder: 40
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1988093428
 GameObject:
@@ -26880,7 +26938,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 19
+  m_RootOrder: 39
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1990114659
 GameObject:
@@ -29748,7 +29806,7 @@ RectTransform:
   m_Children:
   - {fileID: 6968753639176216594}
   m_Father: {fileID: 0}
-  m_RootOrder: 5
+  m_RootOrder: 11
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -29884,7 +29942,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 8955719703749531883, guid: b8f06988b095a5b47b02ae16f8140d34, type: 3}
       propertyPath: m_RootOrder
-      value: 28
+      value: 49
       objectReference: {fileID: 0}
     - target: {fileID: 8955719703749531883, guid: b8f06988b095a5b47b02ae16f8140d34, type: 3}
       propertyPath: m_LocalPosition.x

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/EmbedRuntime/MonoPosixHelper.dll


BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/EmbedRuntime/mono-2.0-bdwgc.dll


BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/EmbedRuntime/mono-2.0-sgen.dll


BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/MonoPosixHelper.dll


+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/al

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/al.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/al2

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/al.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/aprofutil

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/aprofutil.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/caspol

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/caspol.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cccheck

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/cccheck.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ccrewrite

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/ccrewrite.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cert-sync

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/cert-sync.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cert2spc

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/cert2spc.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/certmgr

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/certmgr.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/chktrust

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/chktrust.exe "$@"

+ 5 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cli

@@ -0,0 +1,5 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+
+$MONO "$@"
+

+ 7 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cli.bat

@@ -0,0 +1,7 @@
+@echo off
+SETLOCAL
+set MONO_PREFIX=%~dp0..
+set MONO=%MONO_PREFIX%\bin\mono
+"%MONO%" %*
+exit /b %ERRORLEVEL%
+ENDLOCAL

+ 4 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/cli_x86

@@ -0,0 +1,4 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+
+arch -i386 $MONO "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/crlupdate

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/crlupdate.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/csc

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono --gc-params=nursery-size=64m $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/csc.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/csharp

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/csharp.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/csi

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono --gc-params=nursery-size=64m $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/csi.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/disco

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/disco.exe "$@"

+ 3 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/dmcs

@@ -0,0 +1,3 @@
+#!/bin/sh
+echo "Note: dmcs is deprecated, please use mcs instead!"
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mcs.exe -sdk:4.0 "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/dtd2rng

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/dtd2rng.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/dtd2xsd

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/dtd2xsd.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/gacutil

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/gacutil.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/gacutil2

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/gacutil.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/genxs

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/genxs.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/httpcfg

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/httpcfg.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ikdasm

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/ikdasm.exe "$@"

+ 3 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ilasm

@@ -0,0 +1,3 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+exec $MONO $MONO_OPTIONS $MONO_PREFIX/lib/mono/4.5/ilasm.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/ilasm.bat

@@ -0,0 +1,2 @@
+@"%~dp0cli.bat" %MONO_OPTIONS% "%~dp0..\lib\mono\4.5\ilasm.exe" %*
+exit /b %ERRORLEVEL%

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/illinkanalyzer

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/illinkanalyzer.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/installvst

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/installvst.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/lc

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/lc.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/macpack

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/macpack.exe "$@"

+ 3 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/makecert

@@ -0,0 +1,3 @@
+#!/bin/sh
+umask 077
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/makecert.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mconfig

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mconfig.exe "$@"

+ 3 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mcs

@@ -0,0 +1,3 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+exec $MONO $MONO_OPTIONS $MONO_PREFIX/lib/mono/4.5/mcs.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mcs.bat

@@ -0,0 +1,2 @@
+@"%~dp0cli.bat" %MONO_OPTIONS% "%~dp0..\lib\mono\4.5\mcs.exe" %*
+exit /b %ERRORLEVEL%

+ 16 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdassembler

@@ -0,0 +1,16 @@
+#!/bin/sh
+cmd_line=
+
+for option do
+	case "$option" in
+		--ecma | --ecmaspec | --error | --man | --simple | --xhtml | --hb)
+			format=`echo $option | sed 's/^--//'`
+			cmd_line="$cmd_line --format=$format"
+			;;
+		*)
+			cmd_line="$cmd_line $option"
+			;;
+	esac
+done
+
+exec mdoc assemble $cmd_line

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdbrebase

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mdbrebase.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mdoc.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-assemble

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec mdoc assemble "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-export-html

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec mdoc export-html "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-export-msxdoc

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec mdoc export-msxdoc "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-update

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec mdoc update "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdoc-validate

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec mdoc validate "$@"

+ 3 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mdvalidater

@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec mdoc validate --format "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mkbundle

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mkbundle.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mod

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mod.exe "$@"

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono


BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-2.0-bdwgc.dll


BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-2.0-sgen.dll


+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-api-html

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-api-html.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-api-info

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-api-info.exe "$@"

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-bdwgc.exe


BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-boehm


+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-cil-strip

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-cil-strip.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-configuration-crypto

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.exe "$@"

+ 10 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-env

@@ -0,0 +1,10 @@
+. $(dirname $0)/monobin-env
+
+export MONO_PREFIX=$(dirname $0)/..
+MONO=$MONO_PREFIX/$MONOBINDIR/mono
+# remove //.. pattern as it causes problem on OSX High Sierra
+MONO=${MONO/\/\/\./\/\.}
+LD_LIBRARY_PATH=$MONO_PREFIX/lib
+[ "$MONOLIBDIR" ] && LD_LIBRARY_PATH="$MONO_PREFIX/$MONOLIBDIR:$LD_LIBRARY_PATH"
+export LD_LIBRARY_PATH
+[ "$MONOETCDIR" ] && export MONO_CONFIG=$MONO_PREFIX/$MONOETCDIR/mono/config

+ 58 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-find-provides

@@ -0,0 +1,58 @@
+#!/bin/bash
+#
+# mono-find-provides
+#
+# Authors:
+#       Ben Maurer (bmaurer@ximian.com)
+#
+# (C) 2005 Novell (http://www.novell.com)
+#
+
+if [ -n "$DISABLE_MONO_RPM_AUTO_DEPS" ]; then exit 0; fi
+
+IFS=$'\n'
+filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
+monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
+
+# Only include files with /gac/, /Facades/ or /4.5/ in path
+#  (Allows packages to contain private assemblies that don't conflict with other packages)
+monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/(gac|Facades|4\\.5)/"))
+# Disabled... see ChangeLog
+
+# Set the prefix, unless it is overriden (used when building mono rpms)
+: ${prefix=/Users/bokken/build/output/Unity-Technologies/mono/tmp}
+
+libdir=$prefix/lib
+bindir=$prefix/bin
+
+# Bail out if monodis or libmono is missing
+if [ ! -x $bindir/monodis ] || [ ! -f $libdir/libmono-2.0.so.1 ] ; then
+	echo "monodis missing or unusable, exiting..." 1>&2
+	exit 1
+fi
+
+
+# set LD_LIBRARY_PATH to ensure that libmono is found
+export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+# and set MONO_PATH to ensure that mscorlib.dll can be found
+export MONO_PATH=$prefix/lib/mono/4.5
+
+for i in "${monolist[@]}"; do
+        ($bindir/monodis --assembly $i | awk '
+                BEGIN { LIBNAME=""; VERSION=""; }
+                /^Version:/ { VERSION=$2 }
+                /^Name:/    { LIBNAME=$2 }
+                END {
+			if (LIBNAME ~ /^policy/) {
+				cnt = split(LIBNAME, toks, ".")
+				VERSION=toks[2] "." toks[3] ".0.0"
+				LIBNAME=""
+				for (i=4; i<= cnt; i++)
+					LIBNAME = (LIBNAME toks[i] ".")
+				LIBNAME=substr(LIBNAME, 1, length(LIBNAME)-1)
+			}
+                        if (VERSION && LIBNAME)
+                                print "mono(" LIBNAME ") = " VERSION
+                }
+            ') 2>/dev/null
+done

+ 192 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-find-requires

@@ -0,0 +1,192 @@
+#!/bin/bash
+#
+# mono-find-requires
+#
+# Authors:
+#       Ben Maurer (bmaurer@ximian.com)
+#       Wade Berrier (wberrier@novell.com)
+#
+# (C) 2008 Novell (http://www.novell.com)
+#
+
+if [ -n "$DISABLE_MONO_RPM_AUTO_DEPS" ]; then exit 0; fi
+
+IFS=$'\n'
+filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
+monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
+
+# parse .config files to find which native libraries to depend on 
+#  (target attribute must have double quotes for this to work, ie: target="file" )
+# Add /etc/mono/config ?
+configlist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.config\$"))
+
+# Set the prefix, unless it is overriden (used when building mono rpms)
+: ${prefix=/Users/bokken/build/output/Unity-Technologies/mono/tmp}
+
+# Can override .config scanning if specified
+: ${IGNORE_CONFIG_SCAN=0}
+
+libdir=$prefix/lib
+bindir=$prefix/bin
+
+# Bail out if monodis or libmono is missing
+if [ ! -x $bindir/monodis ] || [ ! -f $libdir/libmono-2.0.so.1 ] ; then
+	echo "monodis missing or unusable, exiting..." 1>&2
+	exit 1
+fi
+
+# special case for 64bit archs
+if test "xlib" = "xlib64" ; then
+        libext="()(64bit)"
+else
+	# (note, this works on ppc64 since we only have 32bit mono)
+        libext=""
+fi
+
+# Exceptions:
+case `uname -m` in
+	# ia64 doesn't use lib64 for 'libdir' (sles 9 rpm used to provide both... no longer)
+	ia64)	libext="()(64bit)" ;;
+esac
+
+# set LD_LIBRARY_PATH to ensure that libmono is found
+export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+# and set MONO_PATH to ensure that mscorlib.dll can be found
+export MONO_PATH=$prefix/lib/mono/4.5
+
+REQUIRES=$(
+	for i in "${monolist[@]}"; do
+		($bindir/monodis --assemblyref $i | awk '
+			BEGIN { START=0; LIBNAME=""; VERSION=""; }
+			(START==0) && /^[0-9]+: Version=/ {
+				START=1;
+				sub(/Version=/, "", $2);
+				VERSION=$2
+			}
+
+			(START==1) && /^\tName=/ {
+				sub(/Name=/, "", $1);
+				LIBNAME=$1
+				# Allow rpm deps to be resolved for 1.0 profile version
+				if (VERSION=="1.0.3300.0")
+					OP=">="
+				else
+					OP="="
+				print "mono(" LIBNAME ") " OP " " VERSION
+				START=0
+			}
+		    ') 2> /dev/null
+	done
+)
+
+if [ $IGNORE_CONFIG_SCAN -eq 0 ] ; then
+
+rpm_config_REQUIRES=$(
+	# Parse the xml .config files to see what native binaries we call into
+	# TODO: also check monodis --moduleref
+	for i in "${configlist[@]}"; do
+		awk 'match($_, /<dllmap .*target=.*/) {
+			ignore=0
+			req=""
+			split($_, toks, "\"")
+			toks_size=0
+                        for(tok in toks) { toks_size++ }
+			for(i=1; i <= toks_size; i++) {
+				if(toks[i] ~ /target=/) {
+					req=toks[i+1]
+				}
+				if(toks[i] ~ /os=/) {
+					negate=0
+					found=0
+
+					attr=toks[i+1]
+					if(attr ~ /^!/) {
+						attr=substr(attr, 2, length(attr)-1)
+						negate=1
+					}
+
+					split(attr, os_targets, ",")
+					os_targets_size=0
+                                        for(os_target in os_targets) { os_targets_size++ }
+					for(j=1; j <= os_targets_size; j++) {
+						if(os_targets[j] == "linux") {
+							found=1
+						}
+					}
+
+					if(negate) {
+						found=!found
+					}
+					if (!found) {
+						ignore=1
+					} 
+				}
+			}
+			if(!ignore) {
+				print req"'$libext'"
+			}
+		} ' $i 2>/dev/null
+	done
+)
+
+# Resolve provides to packages, warning on missing to stderr
+config_REQUIRES=$(
+	first=1 # avoid an empty line if no .config reqs are found
+	for i in ${rpm_config_REQUIRES[@]} ; do
+		out=$(rpm -q --whatprovides --queryformat "%{NAME}\n" $i)
+		if [ $? -eq 0 ] ; then
+			if [ $first -eq 1 ] ; then
+			       echo ""
+			       first=0
+			fi
+			echo $out
+		else
+			# echo to stderr
+			echo "mono-find-requires: Warning, could not find package that provides: $i" >&2
+		fi
+	done
+)
+
+fi
+
+# Note about above:
+#  Use to do: system("rpm -q --whatprovides --queryformat \"%{NAME}\n\" ""\""req"'$libext'""\"")
+#  rpmlint prefers to have lib names instead of package names.  There was a reason I was using package names but it slips me now...
+#  Ah... now I remember... it's for noarch packs.  The noarch packages can be built on either 32 or 64 bit... so we have to depend
+#   on the package name instead.
+
+PROVIDES=$(
+	for i in "${monolist[@]}"; do
+		($bindir/monodis --assembly $i | awk '
+			BEGIN { LIBNAME=""; VERSION=""; }
+			/^Version:/ { VERSION=$2 }
+			/^Name:/    { LIBNAME=$2 }
+			END {
+				if (VERSION && LIBNAME)
+					print "mono(" LIBNAME ") = " VERSION
+			}
+		    ') 2>/dev/null
+	done
+)
+#
+# This is a little magic trick to get all REQUIRES that are not
+# in PROVIDES. While RPM functions correctly when such deps exist,
+# they make the metadata a bit bloated.
+#
+# TODO: make this use the mono-find-provides script, to share code
+
+# Filter out dups from both lists
+REQUIRES=$(echo "$REQUIRES $config_REQUIRES"  | sort | uniq)
+PROVIDES=$(echo "$PROVIDES" | sort | uniq)
+
+#
+# Get a list of elements that exist in exactly one of PROVIDES or REQUIRES
+#
+UNIQ=$(echo "$PROVIDES
+$REQUIRES" | sort | uniq -u)
+
+#
+# Of those, only choose the ones that are in REQUIRES
+#
+echo "$UNIQ
+$REQUIRES" | sort | uniq -d

+ 352 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-gdb.py

@@ -0,0 +1,352 @@
+#
+# Author: Zoltan Varga (vargaz@gmail.com)
+# License: MIT/X11
+#
+
+#
+# This is a mono support mode for gdb 7.0 and later
+# Usage:
+# - copy/symlink this file to the directory where the mono executable lives.
+# - run mono under gdb, or attach to a mono process started with --debug=gdb using gdb.
+#
+
+from __future__ import print_function
+import os
+
+class StringPrinter:
+    "Print a C# string"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "null"
+
+        obj = self.val.cast (gdb.lookup_type ("MonoString").pointer ()).dereference ()
+        len = obj ['length']
+        chars = obj ['chars']
+        i = 0
+        res = ['"']
+        while i < len:
+            val = (chars.cast(gdb.lookup_type ("gint64")) + (i * 2)).cast(gdb.lookup_type ("gunichar2").pointer ()).dereference ()
+            if val >= 256:
+                c = unichr (val)
+            else:
+                c = chr (val)
+            res.append (c)
+            i = i + 1
+        res.append ('"')
+        return ''.join (res)
+
+def stringify_class_name(ns, name):
+    if ns == "System":
+        if name == "Byte":
+            return "byte"
+        if name == "String":
+            return "string"
+    if ns == "":
+        return name
+    else:
+        return "{0}.{1}".format (ns, name)
+
+class ArrayPrinter:
+    "Print a C# array"
+
+    def __init__(self, val, class_ns, class_name):
+        self.val = val
+        self.class_ns = class_ns
+        self.class_name = class_name
+
+    def to_string(self):
+        obj = self.val.cast (gdb.lookup_type ("MonoArray").pointer ()).dereference ()
+        length = obj ['max_length']
+        return "{0} [{1}]".format (stringify_class_name (self.class_ns, self.class_name [0:len(self.class_name) - 2]), int(length))
+        
+class ObjectPrinter:
+    "Print a C# object"
+
+    def __init__(self, val):
+        if str(val.type)[-1] == "&":
+            self.val = val.address.cast (gdb.lookup_type ("MonoObject").pointer ())
+        else:
+            self.val = val.cast (gdb.lookup_type ("MonoObject").pointer ())
+
+    class _iterator:
+        def __init__(self,obj):
+            self.obj = obj
+            self.iter = self.obj.type.fields ().__iter__ ()
+            pass
+
+        def __iter__(self):
+            return self
+
+        def next(self):
+            field = self.iter.next ()
+            try:
+                if str(self.obj [field.name].type) == "object":
+                    # Avoid recursion
+                    return (field.name, self.obj [field.name].cast (gdb.lookup_type ("void").pointer ()))
+                else:
+                    return (field.name, self.obj [field.name])
+            except:
+                # Superclass
+                return (field.name, self.obj.cast (gdb.lookup_type ("{0}".format (field.name))))
+
+    def children(self):
+        # FIXME: It would be easier if gdb.Value would support iteration itself
+        # It would also be better if we could return None
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return {}.__iter__ ()
+        try:
+            obj = self.val.dereference ()
+            class_ns = obj ['vtable'].dereference ()['klass'].dereference ()['name_space'].string ()
+            class_name = obj ['vtable'].dereference ()['klass'].dereference ()['name'].string ()
+            if class_name [-2:len(class_name)] == "[]":
+                return {}.__iter__ ()
+            try:
+                gdb_type = gdb.lookup_type ("struct {0}_{1}".format (class_ns.replace (".", "_"), class_name))
+                return self._iterator(obj.cast (gdb_type))
+            except:
+                return {}.__iter__ ()
+        except:
+            print (sys.exc_info ()[0])
+            print (sys.exc_info ()[1])
+            return {}.__iter__ ()
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "null"
+        try:
+            obj = self.val.dereference ()
+            class_ns = obj ['vtable'].dereference ()['klass'].dereference ()['name_space'].string ()
+            class_name = obj ['vtable'].dereference ()['klass'].dereference ()['name'].string ()
+            if class_ns == "System" and class_name == "String":
+                return StringPrinter (self.val).to_string ()
+            if class_name [-2:len(class_name)] == "[]":
+                return ArrayPrinter (self.val,class_ns,class_name).to_string ()
+            if class_ns != "":
+                try:
+                    gdb_type = gdb.lookup_type ("struct {0}.{1}".format (class_ns, class_name))
+                except:
+                    # Maybe there is no debug info for that type
+                    return "{0}.{1}".format (class_ns, class_name)
+                #return obj.cast (gdb_type)
+                return "{0}.{1}".format (class_ns, class_name)
+            return class_name
+        except:
+            print (sys.exc_info ()[0])
+            print (sys.exc_info ()[1])
+            # FIXME: This can happen because we don't have liveness information
+            return self.val.cast (gdb.lookup_type ("guint64"))
+        
+class MonoMethodPrinter:
+    "Print a MonoMethod structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        val = self.val.dereference ()
+        klass = val ["klass"].dereference ()
+        class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
+        return "\"{0}:{1} ()\"".format (class_name, val ["name"].string ())
+        # This returns more info but requires calling into the inferior
+        #return "\"{0}\"".format (gdb.parse_and_eval ("mono_method_full_name ({0}, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ())
+
+class MonoClassPrinter:
+    "Print a MonoClass structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string_inner(self, add_quotes):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        klass = self.val.dereference ()
+        class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
+        if add_quotes:
+            return "\"{0}\"".format (class_name)
+        else:
+            return class_name
+        # This returns more info but requires calling into the inferior
+        #return "\"{0}\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*){0})->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64")))))))
+
+    def to_string(self):
+        try:
+            return self.to_string_inner (True)
+        except:
+            #print (sys.exc_info ()[0])
+            #print (sys.exc_info ()[1])
+            return str(self.val.cast (gdb.lookup_type ("gpointer")))
+
+class MonoGenericInstPrinter:
+    "Print a MonoGenericInst structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        inst = self.val.dereference ()
+        inst_len = inst ["type_argc"]
+        inst_args = inst ["type_argv"]
+        inst_str = ""
+        for i in range(0, inst_len):
+            # print (inst_args)
+            type_printer = MonoTypePrinter (inst_args [i])
+            if i > 0:
+                inst_str = inst_str + ", "
+            inst_str = inst_str + type_printer.to_string ()
+        return inst_str
+
+class MonoGenericClassPrinter:
+    "Print a MonoGenericClass structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string_inner(self):
+        gclass = self.val.dereference ()
+        container_str = str(gclass ["container_class"])
+        class_inst = gclass ["context"]["class_inst"]
+        class_inst_str = ""
+        if int(class_inst.cast (gdb.lookup_type ("guint64"))) != 0:
+            class_inst_str  = str(class_inst)
+        method_inst = gclass ["context"]["method_inst"]
+        method_inst_str = ""
+        if int(method_inst.cast (gdb.lookup_type ("guint64"))) != 0:
+            method_inst_str  = str(method_inst)
+        return "{0}, [{1}], [{2}]>".format (container_str, class_inst_str, method_inst_str)
+
+    def to_string(self):
+        try:
+            return self.to_string_inner ()
+        except:
+            #print (sys.exc_info ()[0])
+            #print (sys.exc_info ()[1])
+            return str(self.val.cast (gdb.lookup_type ("gpointer")))
+
+class MonoTypePrinter:
+    "Print a MonoType structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string_inner(self, csharp):
+        try:
+            t = self.val.referenced_value ()
+
+            kind = str (t ["type"]).replace ("MONO_TYPE_", "").lower ()
+            info = ""
+
+            if kind == "class":
+                p = MonoClassPrinter(t ["data"]["klass"])
+                info = p.to_string ()
+            elif kind == "genericinst":
+                info = str(t ["data"]["generic_class"])
+
+            if info != "":
+                return "{{{0}, {1}}}".format (kind, info)
+            else:
+                return "{{{0}}}".format (kind)
+        except:
+            #print (sys.exc_info ()[0])
+            #print (sys.exc_info ()[1])
+            return str(self.val.cast (gdb.lookup_type ("gpointer")))
+
+    def to_string(self):
+        return self.to_string_inner (False)
+
+class MonoMethodRgctxPrinter:
+    "Print a MonoMethodRgctx structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        rgctx = self.val.dereference ()
+        klass = rgctx ["class_vtable"].dereference () ["klass"]
+        klass_printer = MonoClassPrinter (klass)
+        inst = rgctx ["method_inst"].dereference ()
+        inst_len = inst ["type_argc"]
+        inst_args = inst ["type_argv"]
+        inst_str = ""
+        for i in range(0, inst_len):
+            # print (inst_args)
+            type_printer = MonoTypePrinter (inst_args [i])
+            if i > 0:
+                inst_str = inst_str + ", "
+            inst_str = inst_str + type_printer.to_string ()
+        return "MRGCTX[{0}, [{1}]]".format (klass_printer.to_string(), inst_str)
+
+class MonoVTablePrinter:
+    "Print a MonoVTable structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        vtable = self.val.dereference ()
+        klass = vtable ["klass"]
+        klass_printer = MonoClassPrinter (klass)
+
+        return "vtable({0})".format (klass_printer.to_string ())
+
+def lookup_pretty_printer(val):
+    t = str (val.type)
+    if t == "object":
+        return ObjectPrinter (val)
+    if t[0:5] == "class" and t[-1] == "&":
+        return ObjectPrinter (val)    
+    if t == "string":
+        return StringPrinter (val)
+    if t == "MonoString *":
+        return StringPrinter (val)
+    if t == "MonoMethod *":
+        return MonoMethodPrinter (val)
+    if t == "MonoClass *":
+        return MonoClassPrinter (val)
+    if t == "MonoType *":
+        return MonoTypePrinter (val)
+    if t == "MonoGenericInst *":
+        return MonoGenericInstPrinter (val)
+    if t == "MonoGenericClass *":
+        return MonoGenericClassPrinter (val)
+    if t == "MonoMethodRuntimeGenericContext *":
+        return MonoMethodRgctxPrinter (val)
+    if t == "MonoVTable *":
+        return MonoVTablePrinter (val)
+    return None
+
+def register_csharp_printers(obj):
+    "Register C# pretty-printers with objfile Obj."
+
+    if obj == None:
+        obj = gdb
+
+    obj.pretty_printers.append (lookup_pretty_printer)
+
+# This command will flush the debugging info collected by the runtime
+class XdbCommand (gdb.Command):
+    def __init__ (self):
+        super (XdbCommand, self).__init__ ("xdb", gdb.COMMAND_NONE,
+                                           gdb.COMPLETE_COMMAND)
+
+    def invoke(self, arg, from_tty):
+        gdb.execute ("call mono_xdebug_flush ()")
+
+register_csharp_printers (gdb.current_objfile())
+
+XdbCommand ()
+
+gdb.execute ("set environment MONO_XDEBUG gdb")
+
+print ("Mono support loaded.")
+
+

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-hang-watchdog


+ 283 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-heapviz

@@ -0,0 +1,283 @@
+#!/usr/bin/env python3
+
+# Generate a heap visualization for SGen from the heap dump written by
+# mono if the MONO_GC_DEBUG is set to something like
+# "heap-dump=/path/to/file".  This script accepts the file as stdin
+# and generates HTML and PNG files.
+
+from __future__ import print_function
+import sys, os
+import Image, ImageDraw
+from xml.sax import ContentHandler, make_parser
+from xml.sax.handler import feature_namespaces
+from optparse import OptionParser
+
+chunk_size = 1024                       # number of bytes in a chunk
+chunk_pixel_size = 2                    # a chunk is a square with this side length
+large_sections = False
+
+def mark_chunk (img_draw, i, color, section_width):
+    row = i / section_width
+    col = i % section_width
+    pixel_col = col * chunk_pixel_size
+    pixel_row = row * chunk_pixel_size
+    img_draw.rectangle ([(pixel_col, pixel_row), (pixel_col + chunk_pixel_size - 1, pixel_row + chunk_pixel_size - 1)], fill = color)
+
+class Range:
+    pass
+
+class OccupiedRange (Range):
+    def __init__ (self, offset, size):
+        self.offset = offset
+        self.size = size
+
+    def mark (self, img_draw, color, section_width):
+        start = self.offset / chunk_size
+        end = (self.offset + self.size - 1) / chunk_size
+        for i in range (start, end + 1):
+            mark_chunk (img_draw, i, color, section_width)
+
+class ObjectRange (OccupiedRange):
+    def __init__ (self, klass, offset, size):
+        OccupiedRange.__init__ (self, offset, size)
+        self.klass = klass;
+
+class SectionHandler:
+    def __init__ (self, width):
+        self.width = width
+        self.ranges = []
+        self.size = 0
+        self.used = 0
+
+    def add_object (self, klass, offset, size):
+        self.ranges.append (ObjectRange (klass, offset, size))
+        self.used += size
+
+    def add_occupied (self, offset, size):
+        self.ranges.append (OccupiedRange (offset, size))
+        self.used += size
+
+    def draw (self):
+        height = (((self.size / chunk_size) + (self.width - 1)) / self.width) * chunk_pixel_size
+
+        color_background = (255, 255, 255)
+        color_free = (0, 0, 0)
+        color_occupied = (0, 255, 0)
+
+        img = Image.new ('RGB', (self.width * chunk_pixel_size, height), color_free)
+        img_draw = ImageDraw.Draw (img)
+        #FIXME: remove filling after end of heap
+
+        for r in self.ranges:
+            r.mark (img_draw, color_occupied, self.width)
+
+        return img
+
+    def emit (self, collection_file, collection_kind, collection_num, section_num):
+        print ('<h2>%s</h2>' % self.header (), file = collection_file)
+        print ('<p>Size %d kB - ' % (self.size / 1024), file = collection_file)
+        print ('used %d kB</p>' % (self.used / 1024), file = collection_file)
+
+        filename = '%s_%d_%d.png' % (collection_kind, collection_num, section_num)
+        print ('<p><img src="%s"></img></p>' % filename, file = collection_file)
+        img = self.draw ()
+        img.save (filename)
+
+class SmallSectionHandler (SectionHandler):
+    def __init__ (self):
+        SectionHandler.__init__ (self, -1)
+        self.offset = 0
+
+    def start_section (self, kind, size):
+        assert kind == 'old'
+        if self.width <= 0:
+            self.width = (size + chunk_size - 1) / chunk_size
+            if self.width < 128:
+                self.width = 512
+                self.current_section_size = size
+            else:
+                self.current_section_size = self.width * chunk_size
+        self.size += size
+
+    def add_object (self, klass, offset, size):
+        SectionHandler.add_object (self, klass, self.offset + offset, size)
+
+    def add_occupied (self, offset, size):
+        SectionHandler.add_occupied (self, self.offset + offset, size)
+
+    def end_section (self):
+        self.offset += self.current_section_size
+
+    def header (self):
+        return 'old sections'
+
+class LargeSectionHandler (SectionHandler):
+    def __init__ (self):
+        SectionHandler.__init__ (self, 512)
+
+    def start_section (self, kind, size):
+        self.kind = kind
+        self.ranges = []
+        self.size = size
+        self.used = 0
+
+    def end_section (self):
+        pass
+
+    def header (self):
+        return self.kind + ' section'
+
+class DocHandler (ContentHandler):
+    def start (self):
+        self.collection_index = 0
+        self.index_file = open ('index.html', 'w')
+        print ('<html><body>', file = self.index_file)
+
+    def end (self):
+        print ('</body></html>', file = self.index_file)
+        self.index_file.close ()
+
+    def startElement (self, name, attrs):
+        if name == 'collection':
+            self.collection_kind = attrs.get('type', None)
+            self.collection_num = int(attrs.get('num', None))
+            reason = attrs.get('reason', None)
+            if reason:
+                reason = ' (%s)' % reason
+            else:
+                reason = ''
+            self.section_num = 0
+            filename = 'collection_%d.html' % self.collection_index
+            print ('<a href="%s">%s%s collection %d</a>' % (filename, self.collection_kind, reason, self.collection_num), file = self.index_file)
+            self.collection_file = open (filename, 'w')
+            print ('<html><body>', file = self.collection_file)
+            print ('<p><a href="collection_%d.html">Prev</a> <a href="collection_%d.html">Next</a> <a href="index.html">Index</a></p>' % (self.collection_index - 1, self.collection_index + 1), file = self.collection_file)
+            print ('<h1>%s collection %d</h1>' % (self.collection_kind, self.collection_num), file = self.collection_file)
+            self.usage = {}
+            self.los_usage = {}
+            self.pinned_usage = {}
+            self.occupancies = {}
+            self.in_los = False
+            self.in_pinned = False
+            self.heap_used = 0
+            self.heap_size = 0
+            self.los_size = 0
+            if large_sections:
+                self.section_handler = LargeSectionHandler ()
+            else:
+                self.section_handler = self.small_section_handler = SmallSectionHandler ()
+        elif name == 'pinned':
+            kind = attrs.get('type', None)
+            bytes = int(attrs.get('bytes', None))
+            print ('Pinned from %s: %d kB<br>' % (kind, bytes / 1024), file = self.collection_file)
+        elif name == 'occupancy':
+            size = int (attrs.get ('size', None))
+            available = int (attrs.get ('available', None))
+            used = int (attrs.get ('used', None))
+            unused = available - used
+
+            print ('Occupancy of %d byte slots: %d / %d (%d kB / %d%% wasted)<br>' % (size, used, available, unused * size / 1024, unused * 100 / available), file = self.collection_file)
+        elif name == 'section':
+            kind = attrs.get('type', None)
+            size = int(attrs.get('size', None))
+
+            self.heap_size += size
+
+            if not large_sections:
+                if kind == 'nursery':
+                    self.section_handler = LargeSectionHandler ()
+                else:
+                    self.section_handler = self.small_section_handler
+
+            self.section_handler.start_section (kind, size)
+        elif name == 'object':
+            klass = attrs.get('class', None)
+            size = int(attrs.get('size', None))
+
+            if self.in_los:
+                usage_dict = self.los_usage
+                self.los_size += size
+            elif self.in_pinned:
+                location = attrs.get('location', None)
+                if location not in self.pinned_usage:
+                    self.pinned_usage[location] = {}
+                usage_dict = self.pinned_usage[location]
+            else:
+                usage_dict = self.usage
+                offset = int(attrs.get('offset', None))
+
+                self.section_handler.add_object (klass, offset, size)
+                self.heap_used += size
+            if not (klass in usage_dict):
+                usage_dict [klass] = (0, 0)
+            usage = usage_dict [klass]
+            usage_dict [klass] = (usage [0] + 1, usage [1] + size)
+        elif name == 'occupied':
+            offset = int(attrs.get('offset', None))
+            size = int(attrs.get('size', None))
+
+            self.section_handler.add_occupied (offset, size)
+            self.heap_used += size
+        elif name == 'los':
+            self.in_los = True
+        elif name == 'pinned-objects':
+            self.in_pinned = True
+
+    def dump_usage (self, usage_dict, limit):
+        klasses = sorted (usage_dict.keys (), lambda x, y: usage_dict [y][1] - usage_dict [x][1])
+        if limit:
+            klasses = klasses [0:limit]
+        for klass in klasses:
+            usage = usage_dict [klass]
+            if usage [1] < 100000:
+                print ('%s %d bytes' % (klass, usage [1]), file = self.collection_file)
+            else:
+                print ('%s %d kB' % (klass, usage [1] / 1024), file = self.collection_file)
+            print (' (%d)<br>' % usage [0], file = self.collection_file)
+
+    def endElement (self, name):
+        if name == 'section':
+            self.section_handler.end_section ()
+
+            if large_sections or self.section_handler != self.small_section_handler:
+                self.section_handler.emit (self.collection_file, self.collection_kind, self.collection_num, self.section_num)
+                self.section_num += 1
+        elif name == 'collection':
+            if not large_sections:
+                self.small_section_handler.emit (self.collection_file, self.collection_kind, self.collection_num, self.section_num)
+
+            self.dump_usage (self.usage, 10)
+            print ('<h3>LOS</h3>', file = self.collection_file)
+            self.dump_usage (self.los_usage, None)
+            print ('<h3>Pinned</h3>', file = self.collection_file)
+            for location in sorted (self.pinned_usage.keys ()):
+                print ('<h4>%s</h4>' % location, file = self.collection_file)
+                self.dump_usage (self.pinned_usage[location], None)
+            print ('</body></html>', file = self.collection_file)
+            print (' - %d kB / %d kB (%d%%) - %d kB LOS</a><br>' % (self.heap_used / 1024, self.heap_size / 1024, int(100.0 * self.heap_used / self.heap_size), self.los_size / 1024), file = self.index_file)
+            self.collection_file.close ()
+            self.collection_index += 1
+        elif name == 'los':
+            self.in_los = False
+        elif name == 'pinned-objects':
+            self.in_pinned = False
+
+def main ():
+    usage = "usage: %prog [options]"
+    parser = OptionParser (usage)
+    parser.add_option ("-l", "--large-sections", action = "store_true", dest = "large_sections")
+    parser.add_option ("-s", "--small-sections", action = "store_false", dest = "large_sections")
+    (options, args) = parser.parse_args ()
+    if options.large_sections:
+        large_sections = True
+
+    dh = DocHandler ()
+    parser = make_parser ()
+    parser.setFeature (feature_namespaces, 0)
+    parser.setContentHandler (dh)
+    dh.start ()
+    parser.parse (sys.stdin)
+    dh.end ()
+
+if __name__ == "__main__":
+    main ()

+ 45 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-package-runtime

@@ -0,0 +1,45 @@
+#!/bin/bash
+extension="${LIBEXT:-.dylib}"
+if [ "`uname -s`" == "Linux" ]; then
+   extension="${LIBEXT:-.so}"
+fi
+
+if [ "x$2" == "x" ]; then
+   echo usage is: mono-package-runtime MONO_INSTALL_PREFIX LABEL
+   echo The file will be created in the current directory
+   exit 1
+fi
+
+prefix=$1
+output=$2
+if [ ! -d "$prefix" ]; then
+   echo the specified path is not a directory: $prefix
+   exit 1
+fi
+
+if [ -e "$output.zip" ]; then
+   echo The output file already exists, refusing to overwrite: $output.zip
+   exit 1
+fi
+
+if [ ! -e "$prefix/bin/mono" ]; then
+   echo The $prefix does not contains a bin/mono
+   exit 1
+fi
+
+if [ ! -d "$prefix/lib/mono/4.5" ]; then
+   echo The $prefix does not contains a lib/mono/4.5
+   exit 1
+fi
+
+o=`pwd`/$output
+
+cd $prefix
+(zip -u $o.zip bin/mono lib/mono/4.5/mscorlib.dll lib/mono/4.5/System*dll lib/mono/4.5/Mono.CSharp.dll lib/mono/4.5/Microsoft*dll lib/mono/4.5/FSharp*.dll lib/mono/4.5/I18N*dll lib/mono/4.5/Accessibility.dll lib/mono/4.5/RabbitMQ.Client.dll lib/mono/4.5/ICSharpCode.SharpZipLib.dll lib/mono/4.5/CustomMarshalers.dll etc/mono/4.5/machine.config etc/mono/4.5/web.config lib/mono/4.5/Mono.Cairo.dll lib/mono/4.5/Mono.Data.Sqlite.dll lib/mono/4.5/Mono.Posix.dll lib/mono/4.5/Mono.Security.*dll lib/mono/4.5/Mono.Simd.dll lib/mono/4.5/Mono.WebBrowser.dll lib/mono/4.5/Novell.Directory.Ldap.dll lib/libMonoSupportW$extension lib/libMonoPosixHelper$extension lib/libmono-btls-shared$extension lib/libmono-native$extension lib/libmono-native-compat$extension)
+echo Created file $o.zip
+tmpdir=`mktemp -d`
+mkdir -p $tmpdir/etc/mono
+sed 's#\$mono_libdir/##' etc/mono/config > $tmpdir/etc/mono/config
+cd $tmpdir
+zip -u $o.zip etc/mono/config
+rm -r $tmpdir

+ 40 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-service

@@ -0,0 +1,40 @@
+#!/bin/sh
+args=""
+assembly=
+debug=false
+while test x$1 != x; do
+	case $1 in
+		-[ldnm]:*) args="$args$1 " ;;
+	        --debug) debug=true ;;
+	        --no-daemon) debug=true ;;
+		*) assembly=$1;  args="$args$assembly ";;
+	esac
+	shift
+done
+
+if test x$assembly = x; then
+	echo You must specify at least the assembly name
+	echo 
+	echo "Usage is: $0 [options] service"
+	echo 
+	echo '    -d:<directory>         Working directory'
+	echo '    -l:<lock file>         Lock file (default is /tmp/<service>.lock)'
+	echo '    -m:<syslog name>       Name to show in syslog'
+	echo '    -n:<service name>      Name of service to start (default is first defined)'
+        echo '    --debug                Do not send to background nor redirect input/output'
+        echo '    --no-daemon            Do not send to background nor redirect input/output'
+	echo 
+	echo Controlling the service:
+	echo 
+	echo '    kill -USR1 `cat <lock file>`    Pausing service'
+	echo '    kill -USR2 `cat <lock file>`    Continuing service'
+	echo '    kill `cat <lock file>`          Ending service'
+	echo 
+	exit 1
+fi
+
+if $debug; then
+   exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-service.exe $args
+else
+   exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-service.exe $args </dev/null >/dev/null 2>&1 &
+fi

+ 40 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-service2

@@ -0,0 +1,40 @@
+#!/bin/sh
+args=""
+assembly=
+debug=false
+while test x$1 != x; do
+	case $1 in
+		-[ldnm]:*) args="$args$1 " ;;
+	        --debug) debug=true ;;
+	        --no-daemon) debug=true ;;
+		*) assembly=$1;  args="$args$assembly ";;
+	esac
+	shift
+done
+
+if test x$assembly = x; then
+	echo You must specify at least the assembly name
+	echo 
+	echo "Usage is: $0 [options] service"
+	echo 
+	echo '    -d:<directory>         Working directory'
+	echo '    -l:<lock file>         Lock file (default is /tmp/<service>.lock)'
+	echo '    -m:<syslog name>       Name to show in syslog'
+	echo '    -n:<service name>      Name of service to start (default is first defined)'
+        echo '    --debug                Do not send to background nor redirect input/output'
+        echo '    --no-daemon            Do not send to background nor redirect input/output'
+	echo 
+	echo Controlling the service:
+	echo 
+	echo '    kill -USR1 `cat <lock file>`    Pausing service'
+	echo '    kill -USR2 `cat <lock file>`    Continuing service'
+	echo '    kill `cat <lock file>`          Ending service'
+	echo 
+	exit 1
+fi
+
+if $debug; then
+   exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-service.exe $args
+else
+   exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-service.exe $args </dev/null >/dev/null 2>&1 &
+fi

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-sgen


+ 352 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-sgen-gdb.py

@@ -0,0 +1,352 @@
+#
+# Author: Zoltan Varga (vargaz@gmail.com)
+# License: MIT/X11
+#
+
+#
+# This is a mono support mode for gdb 7.0 and later
+# Usage:
+# - copy/symlink this file to the directory where the mono executable lives.
+# - run mono under gdb, or attach to a mono process started with --debug=gdb using gdb.
+#
+
+from __future__ import print_function
+import os
+
+class StringPrinter:
+    "Print a C# string"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "null"
+
+        obj = self.val.cast (gdb.lookup_type ("MonoString").pointer ()).dereference ()
+        len = obj ['length']
+        chars = obj ['chars']
+        i = 0
+        res = ['"']
+        while i < len:
+            val = (chars.cast(gdb.lookup_type ("gint64")) + (i * 2)).cast(gdb.lookup_type ("gunichar2").pointer ()).dereference ()
+            if val >= 256:
+                c = unichr (val)
+            else:
+                c = chr (val)
+            res.append (c)
+            i = i + 1
+        res.append ('"')
+        return ''.join (res)
+
+def stringify_class_name(ns, name):
+    if ns == "System":
+        if name == "Byte":
+            return "byte"
+        if name == "String":
+            return "string"
+    if ns == "":
+        return name
+    else:
+        return "{0}.{1}".format (ns, name)
+
+class ArrayPrinter:
+    "Print a C# array"
+
+    def __init__(self, val, class_ns, class_name):
+        self.val = val
+        self.class_ns = class_ns
+        self.class_name = class_name
+
+    def to_string(self):
+        obj = self.val.cast (gdb.lookup_type ("MonoArray").pointer ()).dereference ()
+        length = obj ['max_length']
+        return "{0} [{1}]".format (stringify_class_name (self.class_ns, self.class_name [0:len(self.class_name) - 2]), int(length))
+        
+class ObjectPrinter:
+    "Print a C# object"
+
+    def __init__(self, val):
+        if str(val.type)[-1] == "&":
+            self.val = val.address.cast (gdb.lookup_type ("MonoObject").pointer ())
+        else:
+            self.val = val.cast (gdb.lookup_type ("MonoObject").pointer ())
+
+    class _iterator:
+        def __init__(self,obj):
+            self.obj = obj
+            self.iter = self.obj.type.fields ().__iter__ ()
+            pass
+
+        def __iter__(self):
+            return self
+
+        def next(self):
+            field = self.iter.next ()
+            try:
+                if str(self.obj [field.name].type) == "object":
+                    # Avoid recursion
+                    return (field.name, self.obj [field.name].cast (gdb.lookup_type ("void").pointer ()))
+                else:
+                    return (field.name, self.obj [field.name])
+            except:
+                # Superclass
+                return (field.name, self.obj.cast (gdb.lookup_type ("{0}".format (field.name))))
+
+    def children(self):
+        # FIXME: It would be easier if gdb.Value would support iteration itself
+        # It would also be better if we could return None
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return {}.__iter__ ()
+        try:
+            obj = self.val.dereference ()
+            class_ns = obj ['vtable'].dereference ()['klass'].dereference ()['name_space'].string ()
+            class_name = obj ['vtable'].dereference ()['klass'].dereference ()['name'].string ()
+            if class_name [-2:len(class_name)] == "[]":
+                return {}.__iter__ ()
+            try:
+                gdb_type = gdb.lookup_type ("struct {0}_{1}".format (class_ns.replace (".", "_"), class_name))
+                return self._iterator(obj.cast (gdb_type))
+            except:
+                return {}.__iter__ ()
+        except:
+            print (sys.exc_info ()[0])
+            print (sys.exc_info ()[1])
+            return {}.__iter__ ()
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "null"
+        try:
+            obj = self.val.dereference ()
+            class_ns = obj ['vtable'].dereference ()['klass'].dereference ()['name_space'].string ()
+            class_name = obj ['vtable'].dereference ()['klass'].dereference ()['name'].string ()
+            if class_ns == "System" and class_name == "String":
+                return StringPrinter (self.val).to_string ()
+            if class_name [-2:len(class_name)] == "[]":
+                return ArrayPrinter (self.val,class_ns,class_name).to_string ()
+            if class_ns != "":
+                try:
+                    gdb_type = gdb.lookup_type ("struct {0}.{1}".format (class_ns, class_name))
+                except:
+                    # Maybe there is no debug info for that type
+                    return "{0}.{1}".format (class_ns, class_name)
+                #return obj.cast (gdb_type)
+                return "{0}.{1}".format (class_ns, class_name)
+            return class_name
+        except:
+            print (sys.exc_info ()[0])
+            print (sys.exc_info ()[1])
+            # FIXME: This can happen because we don't have liveness information
+            return self.val.cast (gdb.lookup_type ("guint64"))
+        
+class MonoMethodPrinter:
+    "Print a MonoMethod structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        val = self.val.dereference ()
+        klass = val ["klass"].dereference ()
+        class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
+        return "\"{0}:{1} ()\"".format (class_name, val ["name"].string ())
+        # This returns more info but requires calling into the inferior
+        #return "\"{0}\"".format (gdb.parse_and_eval ("mono_method_full_name ({0}, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ())
+
+class MonoClassPrinter:
+    "Print a MonoClass structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string_inner(self, add_quotes):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        klass = self.val.dereference ()
+        class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
+        if add_quotes:
+            return "\"{0}\"".format (class_name)
+        else:
+            return class_name
+        # This returns more info but requires calling into the inferior
+        #return "\"{0}\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*){0})->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64")))))))
+
+    def to_string(self):
+        try:
+            return self.to_string_inner (True)
+        except:
+            #print (sys.exc_info ()[0])
+            #print (sys.exc_info ()[1])
+            return str(self.val.cast (gdb.lookup_type ("gpointer")))
+
+class MonoGenericInstPrinter:
+    "Print a MonoGenericInst structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        inst = self.val.dereference ()
+        inst_len = inst ["type_argc"]
+        inst_args = inst ["type_argv"]
+        inst_str = ""
+        for i in range(0, inst_len):
+            # print (inst_args)
+            type_printer = MonoTypePrinter (inst_args [i])
+            if i > 0:
+                inst_str = inst_str + ", "
+            inst_str = inst_str + type_printer.to_string ()
+        return inst_str
+
+class MonoGenericClassPrinter:
+    "Print a MonoGenericClass structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string_inner(self):
+        gclass = self.val.dereference ()
+        container_str = str(gclass ["container_class"])
+        class_inst = gclass ["context"]["class_inst"]
+        class_inst_str = ""
+        if int(class_inst.cast (gdb.lookup_type ("guint64"))) != 0:
+            class_inst_str  = str(class_inst)
+        method_inst = gclass ["context"]["method_inst"]
+        method_inst_str = ""
+        if int(method_inst.cast (gdb.lookup_type ("guint64"))) != 0:
+            method_inst_str  = str(method_inst)
+        return "{0}, [{1}], [{2}]>".format (container_str, class_inst_str, method_inst_str)
+
+    def to_string(self):
+        try:
+            return self.to_string_inner ()
+        except:
+            #print (sys.exc_info ()[0])
+            #print (sys.exc_info ()[1])
+            return str(self.val.cast (gdb.lookup_type ("gpointer")))
+
+class MonoTypePrinter:
+    "Print a MonoType structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string_inner(self, csharp):
+        try:
+            t = self.val.referenced_value ()
+
+            kind = str (t ["type"]).replace ("MONO_TYPE_", "").lower ()
+            info = ""
+
+            if kind == "class":
+                p = MonoClassPrinter(t ["data"]["klass"])
+                info = p.to_string ()
+            elif kind == "genericinst":
+                info = str(t ["data"]["generic_class"])
+
+            if info != "":
+                return "{{{0}, {1}}}".format (kind, info)
+            else:
+                return "{{{0}}}".format (kind)
+        except:
+            #print (sys.exc_info ()[0])
+            #print (sys.exc_info ()[1])
+            return str(self.val.cast (gdb.lookup_type ("gpointer")))
+
+    def to_string(self):
+        return self.to_string_inner (False)
+
+class MonoMethodRgctxPrinter:
+    "Print a MonoMethodRgctx structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        rgctx = self.val.dereference ()
+        klass = rgctx ["class_vtable"].dereference () ["klass"]
+        klass_printer = MonoClassPrinter (klass)
+        inst = rgctx ["method_inst"].dereference ()
+        inst_len = inst ["type_argc"]
+        inst_args = inst ["type_argv"]
+        inst_str = ""
+        for i in range(0, inst_len):
+            # print (inst_args)
+            type_printer = MonoTypePrinter (inst_args [i])
+            if i > 0:
+                inst_str = inst_str + ", "
+            inst_str = inst_str + type_printer.to_string ()
+        return "MRGCTX[{0}, [{1}]]".format (klass_printer.to_string(), inst_str)
+
+class MonoVTablePrinter:
+    "Print a MonoVTable structure"
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+            return "0x0"
+        vtable = self.val.dereference ()
+        klass = vtable ["klass"]
+        klass_printer = MonoClassPrinter (klass)
+
+        return "vtable({0})".format (klass_printer.to_string ())
+
+def lookup_pretty_printer(val):
+    t = str (val.type)
+    if t == "object":
+        return ObjectPrinter (val)
+    if t[0:5] == "class" and t[-1] == "&":
+        return ObjectPrinter (val)    
+    if t == "string":
+        return StringPrinter (val)
+    if t == "MonoString *":
+        return StringPrinter (val)
+    if t == "MonoMethod *":
+        return MonoMethodPrinter (val)
+    if t == "MonoClass *":
+        return MonoClassPrinter (val)
+    if t == "MonoType *":
+        return MonoTypePrinter (val)
+    if t == "MonoGenericInst *":
+        return MonoGenericInstPrinter (val)
+    if t == "MonoGenericClass *":
+        return MonoGenericClassPrinter (val)
+    if t == "MonoMethodRuntimeGenericContext *":
+        return MonoMethodRgctxPrinter (val)
+    if t == "MonoVTable *":
+        return MonoVTablePrinter (val)
+    return None
+
+def register_csharp_printers(obj):
+    "Register C# pretty-printers with objfile Obj."
+
+    if obj == None:
+        obj = gdb
+
+    obj.pretty_printers.append (lookup_pretty_printer)
+
+# This command will flush the debugging info collected by the runtime
+class XdbCommand (gdb.Command):
+    def __init__ (self):
+        super (XdbCommand, self).__init__ ("xdb", gdb.COMMAND_NONE,
+                                           gdb.COMPLETE_COMMAND)
+
+    def invoke(self, arg, from_tty):
+        gdb.execute ("call mono_xdebug_flush ()")
+
+register_csharp_printers (gdb.current_objfile())
+
+XdbCommand ()
+
+gdb.execute ("set environment MONO_XDEBUG gdb")
+
+print ("Mono support loaded.")
+
+

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-sgen.exe


+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-shlib-cop

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-shlib-cop.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-symbolicate

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-symbolicate.exe "$@"

+ 177 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-test-install

@@ -0,0 +1,177 @@
+#!/usr/bin/env bash
+#
+# Does various checks for people that we can use to diagnose
+# an end user installation
+#
+temp_cs=temp$$.cs
+temp_exe=temp$$.exe
+if test -f $temp_cs; then
+    echo Error: need a temporary file name, and $temp_cs already exists
+    echo Run this program from a different directory, or delete the file and try again.
+    exit 1
+fi
+
+set `echo $PATH | sed 's/:/ /g'`
+
+while test x$1 != x; do
+    if test -x $1/mono; then
+	if test x$monocmd = x; then
+	   monocmd=$1/mono
+        else
+	   other_monos="$1/mono $other_monos"
+	fi
+    fi
+    shift
+done
+
+echo Active Mono: $monocmd
+
+if test "x$other_monos" != x; then
+	echo "Other Mono executables: $other_monos"
+fi
+
+
+#
+# Check that the pkg-config mono points to this mono
+#
+if pkg-config --modversion mono >& /dev/null; then 
+        pkg_config_mono=`(cd \`pkg-config --variable prefix mono\`/bin; pwd)`/mono
+	if test $pkg_config_mono != $monocmd; then
+	    echo "Error: pkg-config Mono installation points to a different install"
+	    echo "       than the Mono found:"
+	    echo "       Mono on PATH: $monocmd"
+	    echo "       Mono from pkg-config: $pkg_config_mono"
+	fi
+else 
+        echo "Warning: pkg-config could not find mono installed on this system"
+fi
+
+##########################################################################################
+#
+# Tests below this point require the dotnet install
+#
+#
+
+#
+# Check that -pkg:dotnet is available
+#
+if pkg-config --modversion dotnet >& /dev/null; then
+       echo ""
+else
+       echo "No dotnet pkgconfig found, Windows.Forms, System.Drawing and others will not work"
+       exit 1
+fi
+
+case `uname` in
+    Darwin) 
+    	macos=true
+    	libgdiplus=libgdiplus.dylib
+	LD_PATH=DYLD_LIBRARY_PATH
+	;;
+    *) 
+    	macos=false;
+	libgdiplus=libgdiplus.so
+	LD_PATH=LD_LIBRARY_PATH
+	;;
+esac
+
+search_libgdiplus_on_path()
+{
+    libgdiplus_found=false
+	if $macos; then
+	    set `echo $DYLD_LIBRARY_PATH | sed 's/:/ /g'`
+	else
+	    set `echo $LD_LIBRARY_PATH | sed 's/:/ /g'`
+	fi
+	while test x$1 != x; do
+	    if test -e $1/$libgdiplus; then
+		   echo "    The $libgdiplus is found on $libdir/$libgdiplus"
+		   libgdiplus_found=true
+		   libgdiplus_path=$1/$libgdiplus
+		   break
+	    fi
+	    shift
+	done
+}
+
+#
+# Check GDI+ installation
+#
+cat > $temp_cs <<EOF
+using System;
+using System.Drawing;
+
+class X { 
+    static void Main ()
+    {
+	    Bitmap b = new Bitmap (100, 100);
+    }
+}
+EOF
+if mcs -pkg:dotnet $temp_cs >& /dev/null; then
+    if mono $temp_exe >& /dev/null; then
+	echo You have a working System.Drawing setup
+    else
+        echo Your system has a broken System.Drawing setup
+        if mono $temp_exe 2>&1 | grep 'System.DllNotFoundException: gdiplus.dll' > /dev/null; then
+	   echo "    your gdiplus.dll can not be loaded"
+
+	   libdir=`dirname $monocmd`/../lib
+	   if test -f $libdir/$libgdiplus; then
+	       echo "    The $libgdiplus is found on $libdir/$libgdiplus"
+	       if test -e $libdir/$libgdiplus; then
+		   libgdiplus_path=$libdir/$libgdiplus
+		   libgdiplus_found=true
+	       else
+		   echo "    but it seems to be a broken link"
+	       fi
+	   else
+	       search_libgdiplus_on_path
+	   fi
+	   if $libgdiplus_found; then
+	       echo ssss 
+	       if which ldd >/dev/null; then
+		   LANG=C dirs=`ldd $libgdiplus_path | grep 'not found'`
+		   if echo $dirs | grep 'not found' >& /dev/null; then
+		       echo "    libgdiplus is missing the following dependencies to run:"
+		       echo $dirs | sed 's/^/        /'
+		   fi
+	       fi 
+	   else
+	       echo "    No libgdiplus was found on your $LD_PATH"
+	   fi
+	fi
+    fi
+else
+    echo Failed to compile sample System.Drawing program, your installation is broken
+    exit 1
+fi
+
+cat > $temp_cs <<EOF
+using System;
+using System.Reflection;
+using System.IO;
+
+class Program {
+
+    public static void Main()
+    {
+        object watcher = new FileSystemWatcher()
+            .GetType ()
+            .GetField ("watcher", BindingFlags.NonPublic | BindingFlags.Static)
+            .GetValue (null);
+        
+        Console.WriteLine ("Your file system watcher is: {0}",
+                   watcher != null
+                   ? watcher.GetType ().FullName
+                   : "unknown");
+    }
+}
+EOF
+
+if mcs $temp_cs >& /dev/null; then
+    mono $temp_exe
+else
+    echo Failed to compile sample test program, your installation is broken
+    exit 1
+fi

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono-xmltool

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mono-xmltool.exe "$@"

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mono.exe


+ 20 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monobin-env

@@ -0,0 +1,20 @@
+MONOBINDIR=bin
+MONOLIBDIR=
+MONOETCDIR=
+
+os=$(uname -s)
+variant=$(uname -m)
+
+case "$os" in
+    Linux)
+		if [ "$variant" = "x86_64" ]; then
+            MONOBINDIR=bin-linux64
+            MONOLIBDIR=../embedruntimes/linux64
+            MONOETCDIR=etc-linux64
+		else
+            MONOBINDIR=bin-linux32
+            MONOLIBDIR=../embedruntimes/linux32
+            MONOETCDIR=etc-linux32
+		fi
+    ;;
+esac

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodis


+ 64 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodocer

@@ -0,0 +1,64 @@
+#!/bin/sh
+cmd_line=
+
+for option do
+	case "$option" in
+		-assembly:*)
+			a=`echo "$option" | sed 's/^-assembly://'`
+			cmd_line="$cmd_line $a"
+			;;
+		-delete)
+			cmd_line="$cmd_line --delete"
+			;;
+		-ignoremembers)
+			# ignore
+			;;
+		-import:*)
+			a=`echo "$option" | sed 's/^-import://'`
+			cmd_line="$cmd_line -i $a"
+			;;
+		-importecmadoc:*)
+			a=`echo "$option" | sed 's/^-importecmadoc://'`
+			cmd_line="$cmd_line -i $a"
+			;;
+		-importslashdoc:*)
+			a=`echo "$option" | sed 's/^-importslashdoc://'`
+			cmd_line="$cmd_line -i $a"
+			;;
+		-name:*)
+			# ignore
+			;;
+		-namespace:*)
+			# ignore
+			;;
+		-overrides:*)
+			# ignore
+			;;
+		-path:*)
+			a=`echo "$option" | sed 's/^-path://'`
+			cmd_line="$cmd_line -o $a"
+			;;
+		-pretty)
+			# ignore
+			;;
+		-since:*)
+			a=`echo "$option" | sed 's/^-since://'`
+			cmd_line="$cmd_line --since $a"
+			;;
+		-type:*)
+			a=`echo "$option" | sed 's/^-type://'`
+			cmd_line="$cmd_line --since $a"
+			;;
+		-updateto:*)
+			# ignore
+			;;
+		-V | -version)
+			# ignore
+			;;
+		*)
+			cmd_line="$cmd_line $option"
+			;;
+	esac
+done
+
+exec mdoc update $cmd_line

+ 37 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodocs2html

@@ -0,0 +1,37 @@
+#!/bin/sh
+cmd_line=
+
+for option do
+	case "$option" in
+		-dest:*)
+			dir=`echo "$option" | sed 's/^-dest://'`
+			cmd_line="$cmd_line -o \"$dir\""
+			;;
+		-dumptemplate)
+			cmd_line="$cmd_line --default-template"
+			;;
+		-ext:*)
+			ext=`echo "$option" | sed 's/^-ext://'`
+			cmd_line="$cmd_line --ext=$ext"
+			;;
+		-onlytype*)
+			# compat; ignore
+			;;
+		-source:*)
+			s=`echo "$option" | sed 's/^-source://'`
+			cmd_line="$cmd_line $s"
+			;;
+		-template:*)
+			template=`echo "$option" | sed 's/^-template://'`
+			cmd_line="$cmd_line --template=$template"
+			;;
+		-V | -version)
+			# compat; ignore
+			;;
+		*)
+			cmd_line="$cmd_line $option"
+			;;
+	esac
+done
+
+exec mdoc export-html $cmd_line

+ 3 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monodocs2slashdoc

@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec mdoc export-msxdoc "$@"

+ 5 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monolinker

@@ -0,0 +1,5 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+
+$MONO $MONO_PATH/monolinker.exe "$@"
+

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monolinker.bat

@@ -0,0 +1,2 @@
+@"%~dp0cli.bat" %MONO_OPTIONS% "%~dp0..\lib\mono\2.0\monolinker.exe" %*
+exit /b %ERRORLEVEL%

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monop

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/monop.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/monop2

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/monop.exe "$@"

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mozroots

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/mozroots.exe "$@"

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/mprof-report


+ 5 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/nunit-console

@@ -0,0 +1,5 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+
+$MONO --debug $MONO_PREFIX/lib/mono/4.0/nunit-console.exe "$@"
+

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/nunit-console.bat

@@ -0,0 +1,2 @@
+@"%~dp0cli.bat" %MONO_OPTIONS% --debug "%~dp0..\lib\mono\4.0\nunit-console.exe" %*
+exit /b %ERRORLEVEL%

+ 5 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/nunit-console2

@@ -0,0 +1,5 @@
+#!/bin/bash
+. $(dirname $0)/mono-env
+
+$MONO --debug $MONO_PREFIX/lib/mono/2.0/nunit-console.exe "$@"
+

+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/pdb2mdb

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/pdb2mdb.exe "$@"

BIN
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/pedump


+ 2 - 0
HybridCLRData/LocalIl2CppData-WindowsEditor/MonoBleedingEdge/bin/permview

@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /Users/bokken/build/output/Unity-Technologies/mono/tmp/bin/mono $MONO_OPTIONS /Users/bokken/build/output/Unity-Technologies/mono/tmp/lib/mono/4.5/permview.exe "$@"

Some files were not shown because too many files changed in this diff