Compare commits

...

206 Commits

Author SHA1 Message Date
Rémi REGNAULT fb42ad759b Add License
10 months ago
Nathan VERDIER 298b855851 :heavy_plus: add dependency
10 months ago
Nathan VERDIER 6ba2dcf881 ✚ Add: Framework DoushouQi
10 months ago
Nathan VERDIER 94c0f012d8 Add: AssetARkit
10 months ago
Nathan VERDIER 62ce99ebda Update: navigation
10 months ago
Nathan VERDIER a951fff464 🚧 Add: ARViews
10 months ago
Nathan VERDIER 30b9bdeeba 💄 Update: PlayersView
10 months ago
Nathan VERDIER ae9c6c3728 🔥 Move: AR assets in ARObjects
10 months ago
Rayhân HASSOU e8d7133896 Mise à jour de 'README.md'
10 months ago
Rayhân HASSOU 97e828d2e3 add images
10 months ago
Nathan VERDIER 57e3bd04cf 🔀 Merge: with dev_ARKit
10 months ago
Nathan VERDIER 950cfe3546 Merge branch 'dev_ARKit'
10 months ago
Nathan VERDIER 1b693e584c 🔀 merging to get NavigationStack
10 months ago
Rayhân HASSOU 5ade5fc25f fix bug
10 months ago
Nathan VERDIER 806840e84e 🚧 commit before merge
10 months ago
Rayhân HASSOU 4e691bfd5f now historic are sort by date
10 months ago
Rayhân HASSOU 2f8b6b92b9 fix button problem
10 months ago
Rayhân HASSOU d3884adda3 readd song
10 months ago
Rayhân HASSOU 2927a0d285 solve merge conflict
10 months ago
Rayhân HASSOU f5428fdb18 Merge branch 'dev_vm_saveHistorique'
10 months ago
Rayhân HASSOU 86c4c79767 timer is save now
10 months ago
Rémi REGNAULT 76cf1d9145 Go back on screen menu at the end of the game
10 months ago
Rayhân HASSOU a171478e2c historic is well saved
10 months ago
Rémi REGNAULT 36e5be8c4a Merge branch 'dev_vm' of https://codefirst.iut.uca.fr/git/remi.regnault/DouShouQi_App into dev_vm
10 months ago
Rémi REGNAULT 315d60bdf9 ⚰️ removing dead code
10 months ago
Rayhân HASSOU dcdc6113d1 moove sounds
10 months ago
Rayhân HASSOU cf25c7e139 add musics
10 months ago
Nathan VERDIER 631ae89c11 Merge branch 'dev_views_Game'
10 months ago
Nathan VERDIER d4362cdf91 Update: SelectPlayerView for create players
10 months ago
Nathan VERDIER 1e6db55be4 Add: EndGame view
10 months ago
Nathan VERDIER 239782ec60 Add: log for endgame
10 months ago
Nathan VERDIER 7a18273be9 Add: listener
10 months ago
Nathan VERDIER 205c4723e4 💄 Add: new colors
10 months ago
reregnault 73830f8ab2 🚧 resolving conflicts
10 months ago
Rayhân HASSOU 10ac1a8a25 score board is done
10 months ago
Rayhân HASSOU d5baa35e50 now we can see rank of player
10 months ago
reregnault 3e85b7d6d0 🚧 tp meeple back on invalid move
10 months ago
Rayhân HASSOU 780488deac change ui/ux select player
10 months ago
reregnault df25251a09 adding colours of maple for P2
10 months ago
Rayhân HASSOU 60711f4897 Merge branch 'dev_views_Game'
10 months ago
Nathan VERDIER aa4236091f 💄 Update: style for button selection joueur
10 months ago
Nathan VERDIER 3aa50d654b 💄 Update: style for button slection perso
10 months ago
reregnault 1eba7c0638 when you are playing a game, the name and last move change every turn
10 months ago
Nathan VERDIER 4a440238cf Add: Creation for AI
10 months ago
Nathan VERDIER e12c7b4143 🐛 Fix: popup selectPlayer
10 months ago
Rayhân HASSOU 81a6d20a10 Merge branch 'Ar_kit'
10 months ago
étudiant 82a2129b4c add some changes and add arkit project
10 months ago
Rémi REGNAULT e5b2109b23 now, no invalid move
10 months ago
Rémi REGNAULT 67b86d0085 Merge branch 'dev_views_Game' of https://codefirst.iut.uca.fr/git/remi.regnault/DouShouQi_App into dev_views_Game
10 months ago
Rémi REGNAULT 588e1c1830 🚧
10 months ago
étudiant 1fc38e8e28 merge
10 months ago
Nathan VERDIER 33f66bcc8a 🐛 Fix: call SelectPlayerButtonView with PlayerVm
10 months ago
étudiant 63650920d2 Merge branch 'dev_views_Game'
10 months ago
Rayhân HASSOU a95cb5a93a Merge pull request 'dev_vm_Players' (#15) from dev_vm_Players into dev_vm
10 months ago
étudiant 4d7ca429f8 fix somes bug
10 months ago
étudiant 3b7d4f410b delete function work
10 months ago
Nathan VERDIER a93d4e26b2 🚧 Add: comment
11 months ago
Nathan VERDIER d28d25f150 🐛 Update: Binding to observableObject
11 months ago
Nathan VERDIER 94b49e99cb 🚧 Add: comment
11 months ago
Nathan VERDIER 3a569bea57 🐛 Update: Binding to Published
11 months ago
Nathan VERDIER 86912bf1ff Update: Show button and affiche all player
11 months ago
Nathan VERDIER df0f29331e 🐛 Update: call ShowAllPlayer
11 months ago
Nathan VERDIER fb1a4e9466 Update: AddPlayerView
11 months ago
étudiant 6ea7146860 players display well when they have been added
11 months ago
Nathan VERDIER a492de1e8e Merge branch 'dev_vm_Players'
11 months ago
étudiant 4bb2045fe9 players save work
11 months ago
Nathan VERDIER 28841d2a83 Merge branch 'dev_vm_Players'
11 months ago
Nathan VERDIER cacf6d85d6 🚧 Update param function
11 months ago
Nathan VERDIER a790d1e26c 🚧 Update call fonction ShowAllPlayer
11 months ago
Nathan VERDIER 77ce09091a 🐛 Update: Call AddPlayerView
11 months ago
Nathan VERDIER 7eaa6049c2 Update: Depency
11 months ago
Nathan VERDIER b4a98873a8 🚧 Update: SelectPlayerButtonView for call ShowAllPlayer sheet
11 months ago
Nathan VERDIER 581d2a5a2d 🚧 Update: ShowAllPlayer for list all player
11 months ago
Nathan VERDIER 626f32c605 🚧 Update: SelectPlayerView for call ShowAllPlayer sheet
11 months ago
Nathan VERDIER 30b3d43e92 🚧 Update: SpriteMeeple move for add vm
11 months ago
Nathan VERDIER befb5e731d 🚧 Update: SpriteMeeple move for add vm
11 months ago
étudiant 1aa2c5318b players binding works
11 months ago
Rémi REGNAULT d771a3daaf 💄 Text color for player name now set to be the same as the color of the title
11 months ago
Rémi REGNAULT b8e08a1c36 💄 AddPlayerView now use a custom background colour
11 months ago
Rémi REGNAULT 5608b2e6a4 💄 remove the override background color
11 months ago
Rémi REGNAULT 333985ed36 💄 adding colors for the popup background when adding player
11 months ago
Rayhân HASSOU 6173e63ce7 Merge pull request '♻️ separate the enum language in another file' (#14) from dev_vm into dev_vm_Players
11 months ago
Rémi REGNAULT ec168e3155 Merge remote-tracking branch 'refs/remotes/origin/dev_views_Game'
11 months ago
Rémi REGNAULT 0456325767 Merge remote-tracking branch 'refs/remotes/origin/dev_views_stats'
11 months ago
Rémi REGNAULT ce222566f7 💄 changing title sag image
11 months ago
Rémi REGNAULT d774dfe491 💄
11 months ago
Rémi REGNAULT c2eb19e912 ♻️ separate the enum language in another file
11 months ago
Rémi REGNAULT 3a6632c289 🐛 fixing previous merge
11 months ago
Rayhân HASSOU a8e37fa1f6 correct a problem
11 months ago
Rémi REGNAULT 9696158863 🔀 merging views branch into viewmodel branch
11 months ago
Nathan VERDIER ff2f0be545 🔥 Remove: unused code
11 months ago
Nathan VERDIER 4e4b928431 Add: navigation for selectPlayer
11 months ago
Nathan VERDIER 0b9c8f1581 Add: navigation for selectPlayerView
11 months ago
Rémi REGNAULT 97a3af9dce Merge branch 'dev_views'
11 months ago
Rémi REGNAULT 16261de6e7 Merge remote-tracking branch 'refs/remotes/origin/dev_views_Game'
11 months ago
Rayhân HASSOU 049d2a0703 Merge pull request 'dev_views_stats' (#13) from dev_views_stats into dev_views
11 months ago
Rayhân HASSOU 91f4157c10 add assets 🍱
11 months ago
Nathan VERDIER d478658435 🔥 Remove: code useless
11 months ago
Nathan VERDIER 3c3be0b548 🔀 Merge: dev_views
11 months ago
Nathan VERDIER 89dd5450ba Merge branch 'dev_views'
11 months ago
Nathan VERDIER 12ebaee8a4 Add: Position for spawn meeples
11 months ago
Nathan VERDIER fa5fb12e8c Add: update height, width and zPosition on touche begin and touche ended
11 months ago
Rémi REGNAULT f3ed7c87aa 🔀 merging
11 months ago
Rayhân HASSOU 3c42f5c42a add stat for players
11 months ago
Nathan VERDIER 457b8ff3d7 Update: SpriteMeeple for width and height assets
11 months ago
Nathan VERDIER 7f804f6c62 Update: GameScene for width and height assets
11 months ago
Nathan VERDIER 3ca451a3c2 🍱 Update: AppImages for add new assets
11 months ago
Nathan VERDIER ca3deffd83 🍱 Add: Meeples assets
11 months ago
Rémi REGNAULT 12a36f10b0 Merge remote-tracking branch 'refs/remotes/origin/dev'
11 months ago
Rémi REGNAULT 7163a17723 🔀 merging
11 months ago
Rémi REGNAULT b8cbcc1826 Merge remote-tracking branch 'refs/remotes/origin/dev_views_SelectPlayer'
11 months ago
Rémi REGNAULT 425a7fbea6 Merge branch 'dev_views' of https://codefirst.iut.uca.fr/git/remi.regnault/DouShouQi_App into dev_views
11 months ago
Rémi REGNAULT 095c1a5305 🔀 merging
11 months ago
Rayhân HASSOU 002b3ec04a merge dev_views_players 🔀
11 months ago
Rémi REGNAULT 2e84bc3d23 Merge remote-tracking branch 'refs/remotes/origin/dev_views_MainPage'
11 months ago
Rémi REGNAULT 0eb0a5d128 Merge remote-tracking branch 'refs/remotes/origin/dev_views_Historic'
11 months ago
Rayhân HASSOU a8e9418b35 fix conflict 🔀
11 months ago
Nathan VERDIER d10ffdcf4a 📝 SpriteMeeple and GameScene
11 months ago
Rayhân HASSOU b2b0298a7b add animation
11 months ago
Nathan VERDIER bc6ead80e9 🔊 Add: Musique
11 months ago
Nathan VERDIER 4daa6239de Update: touchesEnded
11 months ago
Nathan VERDIER 19156a0be7 Add: initializeBoard
11 months ago
Nathan VERDIER 151847ddd7 🔧 Update: project
11 months ago
Rémi REGNAULT ef13be6e3a 🚧 SettingsView preview commented
11 months ago
Rémi REGNAULT c88641d833 🚧 using SettingsVM as an environment object
11 months ago
Rémi REGNAULT a174135ebd 🚧 added SettingsVM, rework some views and components to support the SettingsVM
11 months ago
Nathan VERDIER 267650f9dc 🔊 Add: GameSound
11 months ago
Nathan VERDIER c59e98d7ec Update: Meeple rotation
11 months ago
Nathan VERDIER 13a85bf3a8 Update: Meeple rotation
11 months ago
Nathan VERDIER 371ee648ae 🔧 Update: project
11 months ago
Nathan VERDIER 828f5d1184 Update : SpriteMeeple
11 months ago
Nathan VERDIER 606ba47912 Update : GameScene
11 months ago
Nathan VERDIER d5084083b8 🔊 Add: Sound on GameScene
11 months ago
Nathan VERDIER bbc2de1e78 🔧 Update: project
11 months ago
Nathan VERDIER c00184c8d2 🔀 Merge: dev_views
11 months ago
Rémi REGNAULT 3fb4770608 🚧 adding GameVM and HistoricVM to wrap DouShouQiModel properties
11 months ago
Rémi REGNAULT b5bcaa37af 🚧 making a group for ViewModels
11 months ago
Rémi REGNAULT 0a97b86a92 🔧 working on dependencies
11 months ago
Rémi REGNAULT 8739f6017e 🔀 merging
11 months ago
Nathan VERDIER ddafca849c Update: offset
11 months ago
Rémi REGNAULT 18803a7114 🐛 missing proj file in previous push
11 months ago
Nathan VERDIER 50ea3ef5b4 Add: board scaleMode
11 months ago
Nathan VERDIER da6ae0f249 Update: Board size
11 months ago
Nathan VERDIER 6e2c033ded 💄 Update: board.svg
11 months ago
Rayhân HASSOU b9dfd8f0bf Merge pull request 'dev_views_Players' (#10) from dev_views_Players into dev_views
11 months ago
Rayhân HASSOU 766b4683fc now we can add pictures fr player
11 months ago
Rémi REGNAULT 4bc2b427aa adding SystemIcons struct to contains name of system images
11 months ago
Nathan VERDIER 0fd434cc45 🔊 Add: Music on GameView
11 months ago
Rémi REGNAULT 63eeb921e3 CustomSwitchButton is now using system image name
11 months ago
Nathan VERDIER 1e26a42477 Add: GameScene
11 months ago
Nathan VERDIER 1193c758f7 Add: GameView
11 months ago
Nathan VERDIER 3d6b526caf Add: GameView
11 months ago
Nathan VERDIER 03f7437648 💄 Add: AppImages
11 months ago
Nathan VERDIER 6a2c071baa 💄 Add: Colors
11 months ago
Nathan VERDIER b5a5a66467 🔧
11 months ago
Rémi REGNAULT 039fa0550a 🚧 changing preview code in SettingsView
11 months ago
Rémi REGNAULT aabe88fbc8 🚧 removing preview on CustomSwitchButton (can not declare @state in preview)
11 months ago
Nathan VERDIER 2de681284d Add: gamesScene
11 months ago
étudiant 0b964c92cf add players pop up is done
11 months ago
étudiant f11218e90e change corner of button 💄
11 months ago
étudiant ad9c5078d2 change color of icons 💄
11 months ago
étudiant f5bfeaad29 a
11 months ago
Rayhân HASSOU 36a55cedda Merge pull request 'dev_views' (#9) from dev_views into dev_views_Players
11 months ago
Rémi REGNAULT 17983a43d4 🚧 working on settings page
11 months ago
Rémi REGNAULT d594941ded 💄 main button top and bottom right corner are round
11 months ago
Rémi REGNAULT 08d36596b1 Merge branch 'dev_views'
11 months ago
Rémi REGNAULT 955ac8135d ⚰️ removing a useless file
11 months ago
Rémi REGNAULT a6ac8ae804 🙈 removing /Dependencies folder from .gitignore
11 months ago
Rémi REGNAULT 847cfdd96f ⬆️ Upgrade dependency to DouShouQiModel
11 months ago
Rémi REGNAULT f80d4d1709 🚚 removing assets folder in folder DouShouQi_App and moving contained files to /Assets
11 months ago
Nathan VERDIER a03d069197 🔀 merging to get main button
11 months ago
Rémi REGNAULT 6988a8f429 Merge branch 'dev_views_ViewTitle' into dev_views
11 months ago
Nathan VERDIER cf73760067 🔀 dev_views
11 months ago
Rayhân HASSOU 897077d4c5 Merge pull request 'splash screen work ' (#8) from dev_views_SplashScreen into dev_views
11 months ago
étudiant c9f455bcfa splash screen work
11 months ago
Nathan VERDIER 64a31f9c62 Add: TitlePageFrame
11 months ago
Rémi REGNAULT 98bde61ae5 🏷️ completing TextStyles with a structure for all text styles
11 months ago
Rémi REGNAULT 3dac28a58e 🏷️ adding TextStyles and ViewTitleTextStyle
11 months ago
Rémi REGNAULT 18f245e45a 🏷️ commit struct AppImages
11 months ago
Rémi REGNAULT 5a1f8ce600 🏷️ Introducing struct AppImages and Assets Dictionary for Images in the app
11 months ago
Rémi REGNAULT d38ae83a74 🏷️ Introducing struct Colors and Assets Dictionary for Colors
11 months ago
Nathan VERDIER d1488a7dac 🚧 Add: SpriteMeeple
11 months ago
Nathan VERDIER 6aa80c9259 Add: SoundPlayerClass
11 months ago
Nathan VERDIER 1e6f78c857 🔥 Remove: line on SelectPlayerButtonView
11 months ago
Nathan VERDIER ebab036a30 🚧 Add: GameView
11 months ago
Nathan VERDIER 0052bef358 🚧 Add: TopGameBoard
11 months ago
Nathan VERDIER 8c1665d20e 🔥 Remove: dead code
11 months ago
Nathan VERDIER db6463dc4f 🔥 Remove: dead code
11 months ago
Nathan VERDIER 6bfe8980f5 🚧 Update: ButtonView
11 months ago
Nathan VERDIER e799c19d45 🍱 Add: title background and vs-custom
11 months ago
Rayhân HASSOU 38ca007181 Mise à jour de 'README.md'
11 months ago
Rayhân HASSOU b212ca1032 Mise à jour de 'README.md'
11 months ago
Rayhân HASSOU 171424d621 Mise à jour de 'README.md'
11 months ago
Rayhân HASSOU dd325c4e6a Mise à jour de 'README.md'
11 months ago
étudiant 41a62a2f55 add read me
11 months ago
etudiant 05a436e786 🚧 Update: SelectPlayerView
11 months ago
Rayhân HASSOU da42d91aa8 Merge pull request 'master' (#3) from master into dev_views_Historic
11 months ago
Rayhân HASSOU c22e30969f Merge pull request 'readMe' (#2) from readMe into master
11 months ago
Rayhân HASSOU ce9b12bd9c Mise à jour de 'README.md'
11 months ago
Rémi REGNAULT a8194b5ace 🚧 adding PlayerResumeFrame
11 months ago
Rémi REGNAULT 6e6e519fc3 ♻️ rename PlayerResumeFrame into PlayerScoreResumeFrame
11 months ago
etudiant 7571297408 🎉
11 months ago
Rayhân HASSOU f95bc16d45 Mise à jour de 'README.md'
11 months ago
Rayhân HASSOU 59d688818d Mise à jour de 'README.md'
11 months ago
Rayhân HASSOU 7288513478 Mise à jour de 'README.md'
11 months ago
étudiant 8d5a41b672 add read me
11 months ago

4
.gitignore vendored

@ -29,7 +29,7 @@ DerivedData/
## App packaging
*.ipa
*.dSYM.zip
*.dSYM
## *.dSYM
## Playgrounds
timeline.xctimeline
@ -68,7 +68,7 @@ playground.xcworkspace
Carthage/Build/
# Accio dependency management
Dependencies/
#Dependencies/
.accio/
# fastlane

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 152 KiB

@ -0,0 +1,25 @@
<svg width="189" height="498" viewBox="0 0 189 498" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_3268)" filter="url(#filter0_f_1_3268)">
<path d="M382.621 215.799C382.621 280.998 367.172 328.099 326.932 366.096C286.691 404.095 221.662 432.991 206.134 448.623C188.76 432.992 121.271 404.095 81.4915 366.096C41.7124 328.099 29.646 280.998 29.646 215.799C29.646 85.4001 108.663 31 206.134 31C303.606 31 382.621 85.4001 382.621 215.799Z" fill="white" stroke="#0D0501" stroke-width="6.9846"/>
<path d="M103.782 60.4177C139.069 83.6755 178.165 144.19 206.065 234.072C153.55 188.305 69.4868 158.676 32.7195 189.01" stroke="#0D0501" stroke-width="7.7606"/>
<path d="M40.1171 294.518C69.8771 236.433 211.364 234.035 203.605 231.872C196.221 229.813 97.3095 309.398 87.7663 373.653" stroke="#0D0501" stroke-width="7.7606"/>
<path d="M149.375 413.222C149.074 369.401 201.146 228.22 206.061 231.874" stroke="#0D0501" stroke-width="7.7606"/>
<path d="M202.348 89.0595C181.351 89.8512 161.676 98.5256 144.555 112.384C127.637 102.836 93.8681 104.951 81.372 114.084C74.6176 143.49 79.1279 176.397 89.9115 198.815C84.985 215.771 82.2869 233.481 82.2869 251.109C82.2869 308.824 111.136 349.456 152.841 367.528C158.186 379.038 171.186 389.906 180.69 392.058C199.695 396.361 213.127 396.754 232.131 392.058C241.851 389.656 254.857 378.133 260.095 366.712C300.763 348.236 328.767 307.935 328.767 251.11C328.767 234.023 326.19 216.862 321.549 200.38C332.879 177.949 337.813 144.177 330.902 114.084C318.216 104.813 283.604 102.741 266.956 112.792C248.861 97.9991 227.89 89.0596 205.501 89.0596C204.437 89.0596 203.405 89.0194 202.348 89.0595Z" fill="white" stroke="#0D0501" stroke-width="6.9846"/>
<path d="M144.416 253.148C142.863 255.917 141.925 259.35 141.925 263.077C141.925 272.228 147.488 279.669 154.328 279.669C160.562 279.669 165.662 273.475 166.528 265.457L144.416 253.148Z" fill="#0D0501"/>
<path d="M178.748 295.04C182.093 278.305 228.543 276.7 233.318 295.04C237.407 310.748 218.496 331.015 206.033 331.063C194.678 331.104 175.386 311.866 178.748 295.04Z" fill="#0D0501"/>
<path opacity="0.2" d="M95.3709 138.466C103.29 134.933 118.684 138.313 128.439 141.763C115.861 157.535 107.634 170.613 99.8898 191.772C93.2601 175.599 91.6636 153.358 95.3709 138.466Z" fill="black"/>
<path d="M13 290.133L132.126 301.124" stroke="#050200" stroke-width="1.5521" stroke-linecap="round"/>
<path d="M139.113 315.425L47.5098 362.686" stroke="#050200" stroke-width="1.5521" stroke-linecap="round"/>
<path d="M147.728 330.819C144.442 334.116 86.111 397.862 86.111 397.862" stroke="#050200" stroke-width="1.5521" stroke-linecap="round"/>
</g>
<defs>
<filter id="filter0_f_1_3268" x="-1" y="-1" width="190" height="500" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="0.5" result="effect1_foregroundBlur_1_3268"/>
</filter>
<clipPath id="clip0_1_3268">
<rect width="188" height="498" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="107px" height="107px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:1" fill="#fffdfc" d="M -0.5,-0.5 C 35.1667,-0.5 70.8333,-0.5 106.5,-0.5C 106.5,35.1667 106.5,70.8333 106.5,106.5C 70.8333,106.5 35.1667,106.5 -0.5,106.5C -0.5,70.8333 -0.5,35.1667 -0.5,-0.5 Z"/></g>
<g><path style="opacity:1" fill="#ff0a02" d="M 72.5,81.5 C 72.44,80.9569 72.1067,80.6236 71.5,80.5C 69.1074,81.9295 66.7741,83.2628 64.5,84.5C 62.7422,85.9985 60.9088,86.3319 59,85.5C 57.9563,86.6226 57.2896,87.9559 57,89.5C 55.5421,88.2532 54.0421,88.2532 52.5,89.5C 47.2625,88.1915 42.0958,86.5248 37,84.5C 36.6667,84.8333 36.3333,85.1667 36,85.5C 33.6166,82.7272 30.7833,80.5605 27.5,79C 26.8333,77.6667 26.1667,76.3333 25.5,75C 22.9664,74.4837 20.7998,73.317 19,71.5C 18.5803,65.9729 17.4137,60.6396 15.5,55.5C 16.5,54.1667 17.5,52.8333 18.5,51.5C 16.3145,47.9728 16.3145,44.3061 18.5,40.5C 23.5438,33.6008 28.8772,26.9341 34.5,20.5C 36.0924,20.4173 37.7591,20.7506 39.5,21.5C 43.4346,20.2463 47.4346,19.2463 51.5,18.5C 53.0879,17.9904 54.2545,16.9904 55,15.5C 62.8685,18.8827 70.3685,22.8827 77.5,27.5C 79.8375,25.9893 80.5042,26.3227 79.5,28.5C 80.1667,29.8333 81.1667,30.8333 82.5,31.5C 83.4656,33.396 83.7989,35.396 83.5,37.5C 86.6829,37.929 89.0162,39.5957 90.5,42.5C 89.1903,47.6537 89.1903,52.8204 90.5,58C 90.2838,60.5068 89.2838,61.3401 87.5,60.5C 86.2612,62.0072 86.5946,63.1739 88.5,64C 87.1068,65.1711 86.2735,66.6711 86,68.5C 85.6667,67.5 85.3333,66.5 85,65.5C 82.1612,70.4675 79.1612,75.8008 76,81.5C 75.0138,80.8288 73.8471,80.8288 72.5,81.5 Z"/></g>
<g><path style="opacity:1" fill="#ffaba5" d="M 72.5,81.5 C 70.2459,82.4151 68.2459,83.7484 66.5,85.5C 65.8165,85.1373 65.1499,84.8039 64.5,84.5C 66.7741,83.2628 69.1074,81.9295 71.5,80.5C 72.1067,80.6236 72.44,80.9569 72.5,81.5 Z"/></g>
</svg>
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 107 107" width="107" height="107">
<title>title-background-svg</title>
<style>
.s0 { fill: #ff0a02 }
</style>
<g id="Layer">
<path id="Layer" fill-rule="evenodd" class="s0" d="m72.5 81.5q-0.1-0.8-1-1-3.6 2.1-7 4-2.6 2.2-5.5 1-1.6 1.7-2 4-2.2-1.9-4.5 0-7.9-2-15.5-5-0.5 0.5-1 1-3.6-4.2-8.5-6.5-1-2-2-4-3.8-0.8-6.5-3.5-0.6-8.3-3.5-16 1.5-2 3-4-3.3-5.3 0-11 7.6-10.3 16-20 2.4-0.1 5 1 5.9-1.9 12-3 2.4-0.8 3.5-3 11.8 5.1 22.5 12 3.5-2.3 2 1 1 2 3 3 1.4 2.8 1 6 4.8 0.6 7 5-2 7.7 0 15.5-0.3 3.8-3 2.5-1.9 2.3 1 3.5-2.1 1.8-2.5 4.5-0.5-1.5-1-3-4.3 7.5-9 16-1.5-1-3.5 0z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 656 B

@ -7,6 +7,8 @@
<dict>
<key>BinaryPath</key>
<string>DouShouQiModel.framework/DouShouQiModel</string>
<key>DebugSymbolsPath</key>
<string>dSYMs</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
@ -21,6 +23,8 @@
<dict>
<key>BinaryPath</key>
<string>DouShouQiModel.framework/DouShouQiModel</string>
<key>DebugSymbolsPath</key>
<string>dSYMs</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
@ -35,6 +39,23 @@
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>DouShouQiModel.framework/Versions/A/DouShouQiModel</string>
<key>DebugSymbolsPath</key>
<string>dSYMs</string>
<key>LibraryIdentifier</key>
<string>macos-arm64_x86_64</string>
<key>LibraryPath</key>
<string>DouShouQiModel.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>macos</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>

@ -24,7 +24,7 @@ public enum WinningReason {
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
@ -39,8 +39,13 @@ public enum BoardFailingReason {
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
@ -108,14 +113,24 @@ public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player {
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
@ -181,6 +196,10 @@ public enum Owner {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
@ -201,28 +220,38 @@ public enum Animal : Swift.Int {
get
}
}
public struct Game {
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void)
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public mutating func start() async throws
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}

@ -24,7 +24,7 @@ public enum WinningReason {
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
@ -39,8 +39,13 @@ public enum BoardFailingReason {
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
@ -108,14 +113,24 @@ public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player {
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
@ -181,6 +196,10 @@ public enum Owner {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
@ -201,28 +220,38 @@ public enum Animal : Swift.Int {
get
}
}
public struct Game {
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void)
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public mutating func start() async throws
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.fr.uca.iut.DouShouQiModel</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

@ -0,0 +1,504 @@
---
triple: 'arm64-apple-darwin'
binary-path: '/Users/marcchevaldonne/Library/Developer/Xcode/DerivedData/DouShouQiModel-bzzvovsrfmbhuydeirorjmljgtyf/Build/Intermediates.noindex/ArchiveIntermediates/DouShouQiModel/InstallationBuildProductsLocation/Library/Frameworks/DouShouQiModel.framework/DouShouQiModel'
relocations:
- { offsetInCU: 0x34, offset: 0x2E6D2, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionString, symObjAddr: 0x0, symBinAddr: 0x140B0, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x2E707, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionNumber, symObjAddr: 0x38, symBinAddr: 0x140E8, symSize: 0x0 }
- { offsetInCU: 0x27, offset: 0x2E744, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x2E768, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x2E78B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x4018, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x2E7AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x4018, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x2E7BC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x148, symBinAddr: 0x4148, symSize: 0x68 }
- { offsetInCU: 0xDD, offset: 0x2E7FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x4004, symSize: 0x14 }
- { offsetInCU: 0x110, offset: 0x2E82D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x1C, symBinAddr: 0x401C, symSize: 0x28 }
- { offsetInCU: 0x1A6, offset: 0x2E8C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO9hashValueSivg', symObjAddr: 0x44, symBinAddr: 0x4044, symSize: 0x44 }
- { offsetInCU: 0x2A0, offset: 0x2E9BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x4088, symSize: 0x14 }
- { offsetInCU: 0x2C0, offset: 0x2E9DD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x4088, symSize: 0x14 }
- { offsetInCU: 0x300, offset: 0x2EA1D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH9hashValueSivgTW', symObjAddr: 0x9C, symBinAddr: 0x409C, symSize: 0x44 }
- { offsetInCU: 0x3E3, offset: 0x2EB00, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x40E0, symSize: 0x28 }
- { offsetInCU: 0x46C, offset: 0x2EB89, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASQWb', symObjAddr: 0x1B0, symBinAddr: 0x41B0, symSize: 0x4 }
- { offsetInCU: 0x480, offset: 0x2EB9D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOACSQAAWl', symObjAddr: 0x1B4, symBinAddr: 0x41B4, symSize: 0x44 }
- { offsetInCU: 0x494, offset: 0x2EBB1, size: 0x8, addend: 0x0, symName: ___swift_memcpy2_1, symObjAddr: 0x1F8, symBinAddr: 0x41F8, symSize: 0xC }
- { offsetInCU: 0x4A8, offset: 0x2EBC5, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x204, symBinAddr: 0x4204, symSize: 0x4 }
- { offsetInCU: 0x4BC, offset: 0x2EBD9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwet', symObjAddr: 0x208, symBinAddr: 0x4208, symSize: 0xAC }
- { offsetInCU: 0x4D0, offset: 0x2EBED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwst', symObjAddr: 0x2B4, symBinAddr: 0x42B4, symSize: 0xC4 }
- { offsetInCU: 0x4E4, offset: 0x2EC01, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwug', symObjAddr: 0x378, symBinAddr: 0x4378, symSize: 0x14 }
- { offsetInCU: 0x4F8, offset: 0x2EC15, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwup', symObjAddr: 0x38C, symBinAddr: 0x438C, symSize: 0x4 }
- { offsetInCU: 0x50C, offset: 0x2EC29, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwui', symObjAddr: 0x390, symBinAddr: 0x4390, symSize: 0x24 }
- { offsetInCU: 0x520, offset: 0x2EC3D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOMa', symObjAddr: 0x3B4, symBinAddr: 0x43B4, symSize: 0x10 }
- { offsetInCU: 0x534, offset: 0x2EC51, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x3C4, symBinAddr: 0x43C4, symSize: 0xC }
- { offsetInCU: 0x548, offset: 0x2EC65, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwet', symObjAddr: 0x3D0, symBinAddr: 0x43D0, symSize: 0x90 }
- { offsetInCU: 0x55C, offset: 0x2EC79, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwst', symObjAddr: 0x460, symBinAddr: 0x4460, symSize: 0xBC }
- { offsetInCU: 0x570, offset: 0x2EC8D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwug', symObjAddr: 0x51C, symBinAddr: 0x451C, symSize: 0x8 }
- { offsetInCU: 0x584, offset: 0x2ECA1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwup', symObjAddr: 0x524, symBinAddr: 0x4524, symSize: 0x4 }
- { offsetInCU: 0x598, offset: 0x2ECB5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwui', symObjAddr: 0x528, symBinAddr: 0x4528, symSize: 0x8 }
- { offsetInCU: 0x5AC, offset: 0x2ECC9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOMa', symObjAddr: 0x530, symBinAddr: 0x4530, symSize: 0x10 }
- { offsetInCU: 0x626, offset: 0x2ED43, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x108, symBinAddr: 0x4108, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x2EE86, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x4540, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x2EEAA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x4540, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x2EECD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x4558, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x2EEED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x4558, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x2EEFE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x148, symBinAddr: 0x4688, symSize: 0x7C }
- { offsetInCU: 0xF5, offset: 0x2EF54, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x4544, symSize: 0x14 }
- { offsetInCU: 0x128, offset: 0x2EF87, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x1C, symBinAddr: 0x455C, symSize: 0x28 }
- { offsetInCU: 0x1BE, offset: 0x2F01D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg', symObjAddr: 0x44, symBinAddr: 0x4584, symSize: 0x44 }
- { offsetInCU: 0x2B8, offset: 0x2F117, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x45C8, symSize: 0x14 }
- { offsetInCU: 0x2D8, offset: 0x2F137, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x45C8, symSize: 0x14 }
- { offsetInCU: 0x318, offset: 0x2F177, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH9hashValueSivgTW', symObjAddr: 0x9C, symBinAddr: 0x45DC, symSize: 0x44 }
- { offsetInCU: 0x3FB, offset: 0x2F25A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x4620, symSize: 0x28 }
- { offsetInCU: 0x484, offset: 0x2F2E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASQWb', symObjAddr: 0x1C4, symBinAddr: 0x4704, symSize: 0x4 }
- { offsetInCU: 0x498, offset: 0x2F2F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOACSQAAWl', symObjAddr: 0x1C8, symBinAddr: 0x4708, symSize: 0x44 }
- { offsetInCU: 0x4AC, offset: 0x2F30B, size: 0x8, addend: 0x0, symName: ___swift_memcpy3_1, symObjAddr: 0x20C, symBinAddr: 0x474C, symSize: 0x14 }
- { offsetInCU: 0x4C0, offset: 0x2F31F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwet', symObjAddr: 0x224, symBinAddr: 0x4760, symSize: 0x74 }
- { offsetInCU: 0x4D4, offset: 0x2F333, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwst', symObjAddr: 0x298, symBinAddr: 0x47D4, symSize: 0x8C }
- { offsetInCU: 0x4E8, offset: 0x2F347, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwug', symObjAddr: 0x324, symBinAddr: 0x4860, symSize: 0x18 }
- { offsetInCU: 0x4FC, offset: 0x2F35B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwup', symObjAddr: 0x33C, symBinAddr: 0x4878, symSize: 0x4 }
- { offsetInCU: 0x510, offset: 0x2F36F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwui', symObjAddr: 0x340, symBinAddr: 0x487C, symSize: 0x18 }
- { offsetInCU: 0x524, offset: 0x2F383, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOMa', symObjAddr: 0x358, symBinAddr: 0x4894, symSize: 0x10 }
- { offsetInCU: 0x538, offset: 0x2F397, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwet', symObjAddr: 0x374, symBinAddr: 0x48A4, symSize: 0x90 }
- { offsetInCU: 0x54C, offset: 0x2F3AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwst', symObjAddr: 0x404, symBinAddr: 0x4934, symSize: 0xBC }
- { offsetInCU: 0x560, offset: 0x2F3BF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwug', symObjAddr: 0x4C0, symBinAddr: 0x49F0, symSize: 0x8 }
- { offsetInCU: 0x574, offset: 0x2F3D3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwup', symObjAddr: 0x4C8, symBinAddr: 0x49F8, symSize: 0x4 }
- { offsetInCU: 0x588, offset: 0x2F3E7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwui', symObjAddr: 0x4CC, symBinAddr: 0x49FC, symSize: 0x8 }
- { offsetInCU: 0x59C, offset: 0x2F3FB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOMa', symObjAddr: 0x4D4, symBinAddr: 0x4A04, symSize: 0x10 }
- { offsetInCU: 0x5FA, offset: 0x2F459, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x108, symBinAddr: 0x4648, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x2F588, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x4A14, symSize: 0xD0 }
- { offsetInCU: 0x99, offset: 0x2F5FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x4A14, symSize: 0xD0 }
- { offsetInCU: 0xEE, offset: 0x2F64F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc', symObjAddr: 0xD0, symBinAddr: 0x4AE4, symSize: 0xB0 }
- { offsetInCU: 0x189, offset: 0x2F6EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x190, symBinAddr: 0x4BA4, symSize: 0xA0 }
- { offsetInCU: 0x1DE, offset: 0x2F73F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x230, symBinAddr: 0x4C44, symSize: 0x70 }
- { offsetInCU: 0x22D, offset: 0x2F78E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x2A0, symBinAddr: 0x4CB4, symSize: 0xC }
- { offsetInCU: 0x2A9, offset: 0x2F80A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF', symObjAddr: 0x2AC, symBinAddr: 0x4CC0, symSize: 0x38 }
- { offsetInCU: 0x310, offset: 0x2F871, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF', symObjAddr: 0x2E4, symBinAddr: 0x4CF8, symSize: 0x2C }
- { offsetInCU: 0x384, offset: 0x2F8E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY0_', symObjAddr: 0x310, symBinAddr: 0x4D24, symSize: 0x108 }
- { offsetInCU: 0x507, offset: 0x2FA68, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTQ1_', symObjAddr: 0x418, symBinAddr: 0x4E2C, symSize: 0x70 }
- { offsetInCU: 0x5BF, offset: 0x2FB20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY2_', symObjAddr: 0x488, symBinAddr: 0x4E9C, symSize: 0x100 }
- { offsetInCU: 0x6AE, offset: 0x2FC0F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY3_', symObjAddr: 0x588, symBinAddr: 0x4F9C, symSize: 0x40 }
- { offsetInCU: 0x70C, offset: 0x2FC6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfd', symObjAddr: 0x5D0, symBinAddr: 0x4FE4, symSize: 0x2C }
- { offsetInCU: 0x75D, offset: 0x2FCBE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfD', symObjAddr: 0x5FC, symBinAddr: 0x5010, symSize: 0x34 }
- { offsetInCU: 0x87E, offset: 0x2FDDF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCAA4MoveVSgIeggr_SgWOe', symObjAddr: 0x180, symBinAddr: 0x4B94, symSize: 0x10 }
- { offsetInCU: 0x92C, offset: 0x2FE8D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfE', symObjAddr: 0x5C8, symBinAddr: 0x4FDC, symSize: 0x8 }
- { offsetInCU: 0x959, offset: 0x2FEBA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCMa', symObjAddr: 0x630, symBinAddr: 0x5044, symSize: 0x20 }
- { offsetInCU: 0x4F, offset: 0x30059, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0x299B0, symBinAddr: 0x1DB40, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x30073, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LLShyAA5PieceVGvpZ', symObjAddr: 0x6D30, symBinAddr: 0x1C720, symSize: 0x0 }
- { offsetInCU: 0xD7, offset: 0x300E1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x6D38, symBinAddr: 0x1C728, symSize: 0x0 }
- { offsetInCU: 0xF1, offset: 0x300FB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardV_S2itKcGvpZ', symObjAddr: 0x6D40, symBinAddr: 0x1C730, symSize: 0x0 }
- { offsetInCU: 0x10B, offset: 0x30115, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x6D48, symBinAddr: 0x1C738, symSize: 0x0 }
- { offsetInCU: 0x125, offset: 0x3012F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellTypeSDyAA0iJ0OSaySi3row_Si3coltGGvpZ', symObjAddr: 0x299B8, symBinAddr: 0x1DB48, symSize: 0x0 }
- { offsetInCU: 0x284, offset: 0x3028E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x5130, symSize: 0x2DC }
- { offsetInCU: 0xA99, offset: 0x30AA3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ', symObjAddr: 0x2DC, symBinAddr: 0x540C, symSize: 0x78 }
- { offsetInCU: 0xAD7, offset: 0x30AE1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ', symObjAddr: 0x354, symBinAddr: 0x5484, symSize: 0x14 }
- { offsetInCU: 0xB01, offset: 0x30B0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU_', symObjAddr: 0x3AC, symBinAddr: 0x54DC, symSize: 0x30 }
- { offsetInCU: 0xB41, offset: 0x30B4B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU0_', symObjAddr: 0x3DC, symBinAddr: 0x550C, symSize: 0x78 }
- { offsetInCU: 0xB93, offset: 0x30B9D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVACycfC', symObjAddr: 0x6A8, symBinAddr: 0x57D8, symSize: 0x30 }
- { offsetInCU: 0xBD8, offset: 0x30BE2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x6D8, symBinAddr: 0x5808, symSize: 0x54 }
- { offsetInCU: 0xC3D, offset: 0x30C47, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV19findAuthorizedMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL5boardSayAA4MoveVGAA5BoardV_tF', symObjAddr: 0x72C, symBinAddr: 0x585C, symSize: 0x458 }
- { offsetInCU: 0x15D4, offset: 0x315DE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12findRatMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0xB84, symBinAddr: 0x5CB4, symSize: 0x62C }
- { offsetInCU: 0x1FE8, offset: 0x31FF2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV17findElephantMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x11B0, symBinAddr: 0x62E0, symSize: 0x5F8 }
- { offsetInCU: 0x295A, offset: 0x32964, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16findDefaultMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x17A8, symBinAddr: 0x68D8, symSize: 0x6C4 }
- { offsetInCU: 0x340F, offset: 0x33419, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV21findTigerAndLionMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1E6C, symBinAddr: 0x6F9C, symSize: 0x44C }
- { offsetInCU: 0x3A6C, offset: 0x33A76, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20findDirectNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x22B8, symBinAddr: 0x73E8, symSize: 0x300 }
- { offsetInCU: 0x3FE8, offset: 0x33FF2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV26findTigerAndLionNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x25B8, symBinAddr: 0x76E8, symSize: 0x56C }
- { offsetInCU: 0x491C, offset: 0x34926, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2B24, symBinAddr: 0x7C54, symSize: 0x12C }
- { offsetInCU: 0x4AEC, offset: 0x34AF6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x2C50, symBinAddr: 0x7D80, symSize: 0x140 }
- { offsetInCU: 0x4D56, offset: 0x34D60, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF', symObjAddr: 0x2D90, symBinAddr: 0x7EC0, symSize: 0xA0 }
- { offsetInCU: 0x4E40, offset: 0x34E4A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF', symObjAddr: 0x2E30, symBinAddr: 0x7F60, symSize: 0x104 }
- { offsetInCU: 0x50CF, offset: 0x350D9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x2F34, symBinAddr: 0x8064, symSize: 0x3C }
- { offsetInCU: 0x51E0, offset: 0x351EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF', symObjAddr: 0x2F70, symBinAddr: 0x80A0, symSize: 0x188 }
- { offsetInCU: 0x537E, offset: 0x35388, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF', symObjAddr: 0x30F8, symBinAddr: 0x8228, symSize: 0x424 }
- { offsetInCU: 0x5879, offset: 0x35883, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0x351C, symBinAddr: 0x864C, symSize: 0x8 }
- { offsetInCU: 0x588D, offset: 0x35897, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg', symObjAddr: 0x3524, symBinAddr: 0x8654, symSize: 0x8 }
- { offsetInCU: 0x58BF, offset: 0x358C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11createBoardAA0H0VyFZTW', symObjAddr: 0x352C, symBinAddr: 0x865C, symSize: 0x78 }
- { offsetInCU: 0x590C, offset: 0x35916, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10checkBoardyyAA0H0VKFZTW', symObjAddr: 0x35A4, symBinAddr: 0x86D4, symSize: 0x14 }
- { offsetInCU: 0x5944, offset: 0x3594E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0x35B8, symBinAddr: 0x86E8, symSize: 0x4 }
- { offsetInCU: 0x5960, offset: 0x3596A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0x35BC, symBinAddr: 0x86EC, symSize: 0x14 }
- { offsetInCU: 0x597C, offset: 0x35986, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0x35D0, symBinAddr: 0x8700, symSize: 0x14 }
- { offsetInCU: 0x5998, offset: 0x359A2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itFTW', symObjAddr: 0x35E4, symBinAddr: 0x8714, symSize: 0x4 }
- { offsetInCU: 0x59B4, offset: 0x359BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtFTW', symObjAddr: 0x35E8, symBinAddr: 0x8718, symSize: 0x4 }
- { offsetInCU: 0x59D0, offset: 0x359DA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itFTW', symObjAddr: 0x35EC, symBinAddr: 0x871C, symSize: 0x4 }
- { offsetInCU: 0x59EC, offset: 0x359F6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VALtKFTW', symObjAddr: 0x35F0, symBinAddr: 0x8720, symSize: 0x14 }
- { offsetInCU: 0x5A21, offset: 0x35A2B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3604, symBinAddr: 0x8734, symSize: 0x8 }
- { offsetInCU: 0x5A41, offset: 0x35A4B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3604, symBinAddr: 0x8734, symSize: 0x8 }
- { offsetInCU: 0x5A66, offset: 0x35A70, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x360C, symBinAddr: 0x873C, symSize: 0x8 }
- { offsetInCU: 0x5A86, offset: 0x35A90, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x360C, symBinAddr: 0x873C, symSize: 0x8 }
- { offsetInCU: 0x5A99, offset: 0x35AA3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZTf4nd_n', symObjAddr: 0x5710, symBinAddr: 0xA840, symSize: 0x28C }
- { offsetInCU: 0x5E0F, offset: 0x35E19, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20initPlacesByCellType33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardVFZTf4nd_n', symObjAddr: 0x599C, symBinAddr: 0xAACC, symSize: 0x3A8 }
- { offsetInCU: 0x629F, offset: 0x362A9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV23checkCellsByTypeIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x5D44, symBinAddr: 0xAE74, symSize: 0x15C }
- { offsetInCU: 0x6492, offset: 0x3649C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV18checkPiecesIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x5EA0, symBinAddr: 0xAFD0, symSize: 0x178 }
- { offsetInCU: 0x6572, offset: 0x3657C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15checkWaterCells33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6018, symBinAddr: 0xB148, symSize: 0xDC }
- { offsetInCU: 0x6689, offset: 0x36693, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x368, symBinAddr: 0x5498, symSize: 0x14 }
- { offsetInCU: 0x66A3, offset: 0x366AD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x37C, symBinAddr: 0x54AC, symSize: 0x30 }
- { offsetInCU: 0x66D9, offset: 0x366E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x454, symBinAddr: 0x5584, symSize: 0x30 }
- { offsetInCU: 0x66F3, offset: 0x366FD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x510, symBinAddr: 0x5640, symSize: 0x14 }
- { offsetInCU: 0x670D, offset: 0x36717, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellType_WZ', symObjAddr: 0x524, symBinAddr: 0x5654, symSize: 0x24 }
- { offsetInCU: 0x6C29, offset: 0x36C33, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8setValue_6forKeyyq_n_xtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3614, symBinAddr: 0x8744, symSize: 0xB0 }
- { offsetInCU: 0x6C9E, offset: 0x36CA8, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x36C4, symBinAddr: 0x87F4, symSize: 0x70 }
- { offsetInCU: 0x6CCB, offset: 0x36CD5, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3734, symBinAddr: 0x8864, symSize: 0x3C }
- { offsetInCU: 0x6D0E, offset: 0x36D18, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3770, symBinAddr: 0x88A0, symSize: 0x64 }
- { offsetInCU: 0x6D86, offset: 0x36D90, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x37D4, symBinAddr: 0x8904, symSize: 0xE0 }
- { offsetInCU: 0x6EBE, offset: 0x36EC8, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x38B4, symBinAddr: 0x89E4, symSize: 0x20 }
- { offsetInCU: 0x6EE1, offset: 0x36EEB, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5.resume.0', symObjAddr: 0x38D4, symBinAddr: 0x8A04, symSize: 0x10 }
- { offsetInCU: 0x6F24, offset: 0x36F2E, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x38E4, symBinAddr: 0x8A14, symSize: 0xC8 }
- { offsetInCU: 0x6F8C, offset: 0x36F96, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x39AC, symBinAddr: 0x8ADC, symSize: 0xE0 }
- { offsetInCU: 0x6FE2, offset: 0x36FEC, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3A8C, symBinAddr: 0x8BBC, symSize: 0x78 }
- { offsetInCU: 0x704F, offset: 0x37059, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3B6C, symBinAddr: 0x8C9C, symSize: 0x1C0 }
- { offsetInCU: 0x7179, offset: 0x37183, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3D2C, symBinAddr: 0x8E5C, symSize: 0x54 }
- { offsetInCU: 0x724A, offset: 0x37254, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3D80, symBinAddr: 0x8EB0, symSize: 0x260 }
- { offsetInCU: 0x740A, offset: 0x37414, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4080, symBinAddr: 0x91B0, symSize: 0x1B0 }
- { offsetInCU: 0x748B, offset: 0x37495, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4230, symBinAddr: 0x9360, symSize: 0x1C8 }
- { offsetInCU: 0x7525, offset: 0x3752F, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x43F8, symBinAddr: 0x9528, symSize: 0x358 }
- { offsetInCU: 0x76A4, offset: 0x376AE, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4750, symBinAddr: 0x9880, symSize: 0x344 }
- { offsetInCU: 0x77B7, offset: 0x377C1, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4A94, symBinAddr: 0x9BC4, symSize: 0x154 }
- { offsetInCU: 0x79C2, offset: 0x379CC, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4BE8, symBinAddr: 0x9D18, symSize: 0x180 }
- { offsetInCU: 0x7BD8, offset: 0x37BE2, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x4D68, symBinAddr: 0x9E98, symSize: 0x190 }
- { offsetInCU: 0x7C3C, offset: 0x37C46, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x4EF8, symBinAddr: 0xA028, symSize: 0x298 }
- { offsetInCU: 0x7E42, offset: 0x37E4C, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5190, symBinAddr: 0xA2C0, symSize: 0x33C }
- { offsetInCU: 0x8072, offset: 0x3807C, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x54CC, symBinAddr: 0xA5FC, symSize: 0x1C }
- { offsetInCU: 0x808A, offset: 0x38094, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x54E8, symBinAddr: 0xA618, symSize: 0x1C }
- { offsetInCU: 0x80D9, offset: 0x380E3, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x5504, symBinAddr: 0xA634, symSize: 0x110 }
- { offsetInCU: 0x8231, offset: 0x3823B, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x5614, symBinAddr: 0xA744, symSize: 0xFC }
- { offsetInCU: 0x84A2, offset: 0x384AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOACs0F0AAWl', symObjAddr: 0x62EC, symBinAddr: 0xB41C, symSize: 0x44 }
- { offsetInCU: 0x84B6, offset: 0x384C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOACs0G0AAWl', symObjAddr: 0x6330, symBinAddr: 0xB460, symSize: 0x44 }
- { offsetInCU: 0x84CA, offset: 0x384D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwCP', symObjAddr: 0x6374, symBinAddr: 0xB4A4, symSize: 0x34 }
- { offsetInCU: 0x84DE, offset: 0x384E8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwxx', symObjAddr: 0x63A8, symBinAddr: 0xB4D8, symSize: 0x28 }
- { offsetInCU: 0x84F2, offset: 0x384FC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwcp', symObjAddr: 0x63D0, symBinAddr: 0xB500, symSize: 0x34 }
- { offsetInCU: 0x8506, offset: 0x38510, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwca', symObjAddr: 0x6404, symBinAddr: 0xB534, symSize: 0x5C }
- { offsetInCU: 0x851A, offset: 0x38524, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x6460, symBinAddr: 0xB590, symSize: 0xC }
- { offsetInCU: 0x852E, offset: 0x38538, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwta', symObjAddr: 0x646C, symBinAddr: 0xB59C, symSize: 0x44 }
- { offsetInCU: 0x8542, offset: 0x3854C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwet', symObjAddr: 0x64B0, symBinAddr: 0xB5E0, symSize: 0x48 }
- { offsetInCU: 0x8556, offset: 0x38560, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwst', symObjAddr: 0x64F8, symBinAddr: 0xB628, symSize: 0x3C }
- { offsetInCU: 0x856A, offset: 0x38574, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVMa', symObjAddr: 0x6534, symBinAddr: 0xB664, symSize: 0x10 }
- { offsetInCU: 0x857E, offset: 0x38588, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x6544, symBinAddr: 0xB674, symSize: 0x40 }
- { offsetInCU: 0x8642, offset: 0x3864C, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14DouShouQiModel4MoveVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x6684, symBinAddr: 0xB7B4, symSize: 0x178 }
- { offsetInCU: 0x8713, offset: 0x3871D, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14DouShouQiModel4MoveV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x67FC, symBinAddr: 0xB92C, symSize: 0xC0 }
- { offsetInCU: 0x8922, offset: 0x3892C, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x548, symBinAddr: 0x5678, symSize: 0x4C }
- { offsetInCU: 0x893E, offset: 0x38948, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x594, symBinAddr: 0x56C4, symSize: 0x30 }
- { offsetInCU: 0x89E8, offset: 0x389F2, size: 0x8, addend: 0x0, symName: '_$sSh8containsySbxF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x5C4, symBinAddr: 0x56F4, symSize: 0xE4 }
- { offsetInCU: 0x8F60, offset: 0x38F6A, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5Tf4gd_n', symObjAddr: 0x60F4, symBinAddr: 0xB224, symSize: 0x100 }
- { offsetInCU: 0x9091, offset: 0x3909B, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5BoardV_SiTg5Tf4gd_n', symObjAddr: 0x61F4, symBinAddr: 0xB324, symSize: 0xF8 }
- { offsetInCU: 0x91DE, offset: 0x391E8, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5OwnerO_AC6PlayerCTg5Tf4gd_n', symObjAddr: 0x6584, symBinAddr: 0xB6B4, symSize: 0x100 }
- { offsetInCU: 0x27, offset: 0x39527, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xBE08, symSize: 0x1C }
- { offsetInCU: 0x4B, offset: 0x3954B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xBE08, symSize: 0x1C }
- { offsetInCU: 0x9A, offset: 0x3959A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV11descriptionSSvg', symObjAddr: 0x1C, symBinAddr: 0xBE24, symSize: 0xF0 }
- { offsetInCU: 0x1DF, offset: 0x396DF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg', symObjAddr: 0x10C, symBinAddr: 0xBF14, symSize: 0xC }
- { offsetInCU: 0x1FD, offset: 0x396FD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg', symObjAddr: 0x118, symBinAddr: 0xBF20, symSize: 0xC }
- { offsetInCU: 0x21B, offset: 0x3971B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg', symObjAddr: 0x124, symBinAddr: 0xBF2C, symSize: 0xC }
- { offsetInCU: 0x239, offset: 0x39739, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs', symObjAddr: 0x130, symBinAddr: 0xBF38, symSize: 0xC }
- { offsetInCU: 0x277, offset: 0x39777, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM', symObjAddr: 0x13C, symBinAddr: 0xBF44, symSize: 0x10 }
- { offsetInCU: 0x2A5, offset: 0x397A5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM.resume.0', symObjAddr: 0x14C, symBinAddr: 0xBF54, symSize: 0x4 }
- { offsetInCU: 0x2D0, offset: 0x397D0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ', symObjAddr: 0x150, symBinAddr: 0xBF58, symSize: 0x4 }
- { offsetInCU: 0x2E4, offset: 0x397E4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x154, symBinAddr: 0xBF5C, symSize: 0x4 }
- { offsetInCU: 0x30F, offset: 0x3980F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x158, symBinAddr: 0xBF60, symSize: 0x4 }
- { offsetInCU: 0x32F, offset: 0x3982F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x158, symBinAddr: 0xBF60, symSize: 0x4 }
- { offsetInCU: 0x340, offset: 0x39840, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x15C, symBinAddr: 0xBF64, symSize: 0x58 }
- { offsetInCU: 0x3B4, offset: 0x398B4, size: 0x8, addend: 0x0, symName: ___swift_memcpy4_1, symObjAddr: 0x1B4, symBinAddr: 0xBFBC, symSize: 0xC }
- { offsetInCU: 0x3C8, offset: 0x398C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwet', symObjAddr: 0x1C4, symBinAddr: 0xBFC8, symSize: 0x44 }
- { offsetInCU: 0x3DC, offset: 0x398DC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwst', symObjAddr: 0x208, symBinAddr: 0xC00C, symSize: 0x40 }
- { offsetInCU: 0x3F0, offset: 0x398F0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVMa', symObjAddr: 0x248, symBinAddr: 0xC04C, symSize: 0x10 }
- { offsetInCU: 0x2B, offset: 0x399FB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xC05C, symSize: 0x1A4 }
- { offsetInCU: 0x4F, offset: 0x39A1F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0xB338, symBinAddr: 0x1DB50, symSize: 0x0 }
- { offsetInCU: 0x1A2, offset: 0x39B72, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xC05C, symSize: 0x1A4 }
- { offsetInCU: 0x582, offset: 0x39F52, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ', symObjAddr: 0x1A4, symBinAddr: 0xC200, symSize: 0x78 }
- { offsetInCU: 0x5C0, offset: 0x39F90, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ', symObjAddr: 0x21C, symBinAddr: 0xC278, symSize: 0x14 }
- { offsetInCU: 0x5DB, offset: 0x39FAB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVACycfC', symObjAddr: 0x230, symBinAddr: 0xC28C, symSize: 0x30 }
- { offsetInCU: 0x61F, offset: 0x39FEF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x260, symBinAddr: 0xC2BC, symSize: 0x54 }
- { offsetInCU: 0x683, offset: 0x3A053, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2B4, symBinAddr: 0xC310, symSize: 0x17C }
- { offsetInCU: 0x99E, offset: 0x3A36E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x430, symBinAddr: 0xC48C, symSize: 0x29C }
- { offsetInCU: 0xCE8, offset: 0x3A6B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF', symObjAddr: 0x6CC, symBinAddr: 0xC728, symSize: 0xA0 }
- { offsetInCU: 0xDF9, offset: 0x3A7C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF', symObjAddr: 0x76C, symBinAddr: 0xC7C8, symSize: 0x10C }
- { offsetInCU: 0x1033, offset: 0x3AA03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x878, symBinAddr: 0xC8D4, symSize: 0x3C }
- { offsetInCU: 0x1143, offset: 0x3AB13, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF', symObjAddr: 0x8B4, symBinAddr: 0xC910, symSize: 0x11C }
- { offsetInCU: 0x12BB, offset: 0x3AC8B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF', symObjAddr: 0x9D0, symBinAddr: 0xCA2C, symSize: 0x1E4 }
- { offsetInCU: 0x1477, offset: 0x3AE47, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0xBB4, symBinAddr: 0xCC10, symSize: 0x8 }
- { offsetInCU: 0x148B, offset: 0x3AE5B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg', symObjAddr: 0xBBC, symBinAddr: 0xCC18, symSize: 0x8 }
- { offsetInCU: 0x14BD, offset: 0x3AE8D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11createBoardAA0I0VyFZTW', symObjAddr: 0xBC4, symBinAddr: 0xCC20, symSize: 0x78 }
- { offsetInCU: 0x150A, offset: 0x3AEDA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10checkBoardyyAA0I0VKFZTW', symObjAddr: 0xC3C, symBinAddr: 0xCC98, symSize: 0x14 }
- { offsetInCU: 0x1542, offset: 0x3AF12, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0xC50, symBinAddr: 0xCCAC, symSize: 0x4 }
- { offsetInCU: 0x155E, offset: 0x3AF2E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0xC54, symBinAddr: 0xCCB0, symSize: 0x14 }
- { offsetInCU: 0x157A, offset: 0x3AF4A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0xC68, symBinAddr: 0xCCC4, symSize: 0x14 }
- { offsetInCU: 0x1596, offset: 0x3AF66, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itFTW', symObjAddr: 0xC7C, symBinAddr: 0xCCD8, symSize: 0x4 }
- { offsetInCU: 0x15B2, offset: 0x3AF82, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtFTW', symObjAddr: 0xC80, symBinAddr: 0xCCDC, symSize: 0x4 }
- { offsetInCU: 0x15CE, offset: 0x3AF9E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itFTW', symObjAddr: 0xC84, symBinAddr: 0xCCE0, symSize: 0x18 }
- { offsetInCU: 0x15EA, offset: 0x3AFBA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VALtKFTW', symObjAddr: 0xC9C, symBinAddr: 0xCCF8, symSize: 0x14 }
- { offsetInCU: 0x161E, offset: 0x3AFEE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCB0, symBinAddr: 0xCD0C, symSize: 0x8 }
- { offsetInCU: 0x163E, offset: 0x3B00E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCB0, symBinAddr: 0xCD0C, symSize: 0x8 }
- { offsetInCU: 0x1661, offset: 0x3B031, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCB8, symBinAddr: 0xCD14, symSize: 0x8 }
- { offsetInCU: 0x1681, offset: 0x3B051, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCB8, symBinAddr: 0xCD14, symSize: 0x8 }
- { offsetInCU: 0x1693, offset: 0x3B063, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV16checkCellsByType33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xCC0, symBinAddr: 0xCD1C, symSize: 0x144 }
- { offsetInCU: 0x1895, offset: 0x3B265, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11checkPieces33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xE04, symBinAddr: 0xCE60, symSize: 0x220 }
- { offsetInCU: 0x1BFD, offset: 0x3B5CD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZTf4nd_n', symObjAddr: 0x1024, symBinAddr: 0xD080, symSize: 0xB8 }
- { offsetInCU: 0x1E82, offset: 0x3B852, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwCP', symObjAddr: 0x11A4, symBinAddr: 0xD138, symSize: 0x34 }
- { offsetInCU: 0x1E96, offset: 0x3B866, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwxx', symObjAddr: 0x11D8, symBinAddr: 0xD16C, symSize: 0x28 }
- { offsetInCU: 0x1EAA, offset: 0x3B87A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwcp', symObjAddr: 0x1200, symBinAddr: 0xD194, symSize: 0x34 }
- { offsetInCU: 0x1EBE, offset: 0x3B88E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwca', symObjAddr: 0x1234, symBinAddr: 0xD1C8, symSize: 0x5C }
- { offsetInCU: 0x1ED2, offset: 0x3B8A2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwta', symObjAddr: 0x129C, symBinAddr: 0xD224, symSize: 0x44 }
- { offsetInCU: 0x1EE6, offset: 0x3B8B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwet', symObjAddr: 0x12E0, symBinAddr: 0xD268, symSize: 0x48 }
- { offsetInCU: 0x1EFA, offset: 0x3B8CA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwst', symObjAddr: 0x1328, symBinAddr: 0xD2B0, symSize: 0x3C }
- { offsetInCU: 0x1F0E, offset: 0x3B8DE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVMa', symObjAddr: 0x1364, symBinAddr: 0xD2EC, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x3BC66, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xD374, symSize: 0x68 }
- { offsetInCU: 0x7A, offset: 0x3BC95, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfd', symObjAddr: 0x88, symBinAddr: 0xD3FC, symSize: 0x24 }
- { offsetInCU: 0x97, offset: 0x3BCB2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF', symObjAddr: 0xAC, symBinAddr: 0xD420, symSize: 0xE4 }
- { offsetInCU: 0x1C2, offset: 0x3BDDD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF', symObjAddr: 0x190, symBinAddr: 0xD504, symSize: 0x28 }
- { offsetInCU: 0x252, offset: 0x3BE6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY0_', symObjAddr: 0x1B8, symBinAddr: 0xD52C, symSize: 0x10C }
- { offsetInCU: 0x3DB, offset: 0x3BFF6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTQ1_', symObjAddr: 0x2C4, symBinAddr: 0xD638, symSize: 0x70 }
- { offsetInCU: 0x49A, offset: 0x3C0B5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY2_', symObjAddr: 0x334, symBinAddr: 0xD6A8, symSize: 0xFC }
- { offsetInCU: 0x58F, offset: 0x3C1AA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY3_', symObjAddr: 0x430, symBinAddr: 0xD7A4, symSize: 0x40 }
- { offsetInCU: 0x601, offset: 0x3C21C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC4nameSSvg', symObjAddr: 0x470, symBinAddr: 0xD7E4, symSize: 0x2C }
- { offsetInCU: 0x630, offset: 0x3C24B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC2idAA5OwnerOvg', symObjAddr: 0x49C, symBinAddr: 0xD810, symSize: 0xC }
- { offsetInCU: 0x693, offset: 0x3C2AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x4A8, symBinAddr: 0xD81C, symSize: 0x98 }
- { offsetInCU: 0x6C8, offset: 0x3C2E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x540, symBinAddr: 0xD8B4, symSize: 0xC }
- { offsetInCU: 0x738, offset: 0x3C353, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfD', symObjAddr: 0x6F4, symBinAddr: 0xDA68, symSize: 0x2C }
- { offsetInCU: 0x77C, offset: 0x3C397, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCMa', symObjAddr: 0x68, symBinAddr: 0xD3DC, symSize: 0x20 }
- { offsetInCU: 0x883, offset: 0x3C49E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TR', symObjAddr: 0x54C, symBinAddr: 0xD8C0, symSize: 0x6C }
- { offsetInCU: 0x8B6, offset: 0x3C4D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTQ0_', symObjAddr: 0x5B8, symBinAddr: 0xD92C, symSize: 0x48 }
- { offsetInCU: 0x904, offset: 0x3C51F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x624, symBinAddr: 0xD998, symSize: 0x88 }
- { offsetInCU: 0x934, offset: 0x3C54F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTATQ0_', symObjAddr: 0x6AC, symBinAddr: 0xDA20, symSize: 0x48 }
- { offsetInCU: 0x9FE, offset: 0x3C619, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSi3row_Si3colt_Tg5', symObjAddr: 0x82C, symBinAddr: 0xDBA0, symSize: 0xFC }
- { offsetInCU: 0xBA1, offset: 0x3C7BC, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x968, symBinAddr: 0xDC9C, symSize: 0x110 }
- { offsetInCU: 0xD44, offset: 0x3C95F, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0xA78, symBinAddr: 0xDDAC, symSize: 0xFC }
- { offsetInCU: 0xEF2, offset: 0x3CB0D, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0xB74, symBinAddr: 0xDEA8, symSize: 0x128 }
- { offsetInCU: 0x27, offset: 0x3CE30, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xE150, symSize: 0x4 }
- { offsetInCU: 0x3F, offset: 0x3CE48, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwCP', symObjAddr: 0x10, symBinAddr: 0xE160, symSize: 0x48 }
- { offsetInCU: 0x53, offset: 0x3CE5C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwxx', symObjAddr: 0x58, symBinAddr: 0xE1A8, symSize: 0x18 }
- { offsetInCU: 0x67, offset: 0x3CE70, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwcp', symObjAddr: 0x70, symBinAddr: 0xE1C0, symSize: 0x48 }
- { offsetInCU: 0x7B, offset: 0x3CE84, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwca', symObjAddr: 0xB8, symBinAddr: 0xE208, symSize: 0xA0 }
- { offsetInCU: 0x8F, offset: 0x3CE98, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwta', symObjAddr: 0x164, symBinAddr: 0xE2A8, symSize: 0x60 }
- { offsetInCU: 0xA3, offset: 0x3CEAC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwet', symObjAddr: 0x1C4, symBinAddr: 0xE308, symSize: 0x58 }
- { offsetInCU: 0xB7, offset: 0x3CEC0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwst', symObjAddr: 0x21C, symBinAddr: 0xE360, symSize: 0x54 }
- { offsetInCU: 0xCB, offset: 0x3CED4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwug', symObjAddr: 0x270, symBinAddr: 0xE3B4, symSize: 0x18 }
- { offsetInCU: 0xDF, offset: 0x3CEE8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwup', symObjAddr: 0x288, symBinAddr: 0xE3CC, symSize: 0x4 }
- { offsetInCU: 0xF3, offset: 0x3CEFC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwui', symObjAddr: 0x28C, symBinAddr: 0xE3D0, symSize: 0x20 }
- { offsetInCU: 0x107, offset: 0x3CF10, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOMa', symObjAddr: 0x2AC, symBinAddr: 0xE3F0, symSize: 0x10 }
- { offsetInCU: 0x12C, offset: 0x3CF35, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xE150, symSize: 0x4 }
- { offsetInCU: 0x148, offset: 0x3CF51, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP5_codeSivgTW', symObjAddr: 0x4, symBinAddr: 0xE154, symSize: 0x4 }
- { offsetInCU: 0x164, offset: 0x3CF6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x8, symBinAddr: 0xE158, symSize: 0x4 }
- { offsetInCU: 0x180, offset: 0x3CF89, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0xC, symBinAddr: 0xE15C, symSize: 0x4 }
- { offsetInCU: 0x27, offset: 0x3D01D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xE400, symSize: 0x28 }
- { offsetInCU: 0x52, offset: 0x3D048, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xE400, symSize: 0x28 }
- { offsetInCU: 0xC5, offset: 0x3D0BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY0_', symObjAddr: 0x28, symBinAddr: 0xE428, symSize: 0x1B4 }
- { offsetInCU: 0x3A6, offset: 0x3D39C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTQ1_', symObjAddr: 0x1DC, symBinAddr: 0xE5DC, symSize: 0x70 }
- { offsetInCU: 0x4A7, offset: 0x3D49D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY2_', symObjAddr: 0x24C, symBinAddr: 0xE64C, symSize: 0x104 }
- { offsetInCU: 0x5DD, offset: 0x3D5D3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY3_', symObjAddr: 0x350, symBinAddr: 0xE750, symSize: 0x4C }
- { offsetInCU: 0x6C4, offset: 0x3D6BA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x3C0, symBinAddr: 0xE7C0, symSize: 0x9C }
- { offsetInCU: 0x71B, offset: 0x3D711, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x45C, symBinAddr: 0xE85C, symSize: 0x6C }
- { offsetInCU: 0x76C, offset: 0x3D762, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfd', symObjAddr: 0x4C8, symBinAddr: 0xE8C8, symSize: 0x24 }
- { offsetInCU: 0x7CB, offset: 0x3D7C1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfD', symObjAddr: 0x4EC, symBinAddr: 0xE8EC, symSize: 0x2C }
- { offsetInCU: 0x9ED, offset: 0x3D9E3, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x39C, symBinAddr: 0xE79C, symSize: 0x24 }
- { offsetInCU: 0xA98, offset: 0x3DA8E, size: 0x8, addend: 0x0, symName: '_$sSGsE4next10upperBoundqd__qd___ts17FixedWidthIntegerRd__SURd__lFs27SystemRandomNumberGeneratorV_SuTg5', symObjAddr: 0x518, symBinAddr: 0xE918, symSize: 0x88 }
- { offsetInCU: 0xB39, offset: 0x3DB2F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCMa', symObjAddr: 0x5A0, symBinAddr: 0xE9A0, symSize: 0x20 }
- { offsetInCU: 0x27, offset: 0x3DCDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xE9C0, symSize: 0x48 }
- { offsetInCU: 0x6C, offset: 0x3DD20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xE9C0, symSize: 0x48 }
- { offsetInCU: 0xDB, offset: 0x3DD8F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ', symObjAddr: 0x88, symBinAddr: 0xEA08, symSize: 0x14 }
- { offsetInCU: 0x10E, offset: 0x3DDC2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF', symObjAddr: 0x9C, symBinAddr: 0xEA1C, symSize: 0x28 }
- { offsetInCU: 0x1A4, offset: 0x3DE58, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO9hashValueSivg', symObjAddr: 0xC4, symBinAddr: 0xEA44, symSize: 0x44 }
- { offsetInCU: 0x29E, offset: 0x3DF52, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x108, symBinAddr: 0xEA88, symSize: 0x14 }
- { offsetInCU: 0x2BE, offset: 0x3DF72, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x108, symBinAddr: 0xEA88, symSize: 0x14 }
- { offsetInCU: 0x2FE, offset: 0x3DFB2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH9hashValueSivgTW', symObjAddr: 0x11C, symBinAddr: 0xEA9C, symSize: 0x44 }
- { offsetInCU: 0x3E1, offset: 0x3E095, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x160, symBinAddr: 0xEAE0, symSize: 0x28 }
- { offsetInCU: 0x46D, offset: 0x3E121, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAAsADP8allCases03AllJ0QzvgZTW', symObjAddr: 0x2A4, symBinAddr: 0xEC24, symSize: 0x58 }
- { offsetInCU: 0x509, offset: 0x3E1BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASQWb', symObjAddr: 0x1C8, symBinAddr: 0xEB48, symSize: 0x4 }
- { offsetInCU: 0x51D, offset: 0x3E1D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOACSQAAWl', symObjAddr: 0x1CC, symBinAddr: 0xEB4C, symSize: 0x44 }
- { offsetInCU: 0x531, offset: 0x3E1E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x210, symBinAddr: 0xEB90, symSize: 0x4 }
- { offsetInCU: 0x545, offset: 0x3E1F9, size: 0x8, addend: 0x0, symName: '_$sSay14DouShouQiModel8CellTypeOGSayxGSlsWl', symObjAddr: 0x214, symBinAddr: 0xEB94, symSize: 0x4C }
- { offsetInCU: 0x559, offset: 0x3E20D, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x260, symBinAddr: 0xEBE0, symSize: 0x44 }
- { offsetInCU: 0x56D, offset: 0x3E221, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwet', symObjAddr: 0x30C, symBinAddr: 0xEC7C, symSize: 0x90 }
- { offsetInCU: 0x581, offset: 0x3E235, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwst', symObjAddr: 0x39C, symBinAddr: 0xED0C, symSize: 0xBC }
- { offsetInCU: 0x595, offset: 0x3E249, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwug', symObjAddr: 0x458, symBinAddr: 0xEDC8, symSize: 0x8 }
- { offsetInCU: 0x5A9, offset: 0x3E25D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwup', symObjAddr: 0x460, symBinAddr: 0xEDD0, symSize: 0x4 }
- { offsetInCU: 0x5BD, offset: 0x3E271, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwui', symObjAddr: 0x464, symBinAddr: 0xEDD4, symSize: 0x8 }
- { offsetInCU: 0x5D1, offset: 0x3E285, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOMa', symObjAddr: 0x46C, symBinAddr: 0xEDDC, symSize: 0x10 }
- { offsetInCU: 0x63E, offset: 0x3E2F2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x188, symBinAddr: 0xEB08, symSize: 0x40 }
- { offsetInCU: 0x2B, offset: 0x3E432, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xEDEC, symSize: 0x68 }
- { offsetInCU: 0xA6, offset: 0x3E4AD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xEDEC, symSize: 0x68 }
- { offsetInCU: 0x2B0, offset: 0x3E6B7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF', symObjAddr: 0x68, symBinAddr: 0xEE54, symSize: 0x1C0 }
- { offsetInCU: 0x583, offset: 0x3E98A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF', symObjAddr: 0x228, symBinAddr: 0xF014, symSize: 0xD0 }
- { offsetInCU: 0x7F1, offset: 0x3EBF8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6nbRowsSivg', symObjAddr: 0x2F8, symBinAddr: 0xF0E4, symSize: 0x8 }
- { offsetInCU: 0x80F, offset: 0x3EC16, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9nbColumnsSivg', symObjAddr: 0x300, symBinAddr: 0xF0EC, symSize: 0x8 }
- { offsetInCU: 0x82D, offset: 0x3EC34, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg', symObjAddr: 0x308, symBinAddr: 0xF0F4, symSize: 0x8 }
- { offsetInCU: 0x84B, offset: 0x3EC52, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF', symObjAddr: 0x310, symBinAddr: 0xF0FC, symSize: 0xD0 }
- { offsetInCU: 0xA02, offset: 0x3EE09, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF', symObjAddr: 0x3E0, symBinAddr: 0xF1CC, symSize: 0x150 }
- { offsetInCU: 0xC18, offset: 0x3F01F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF', symObjAddr: 0x530, symBinAddr: 0xF31C, symSize: 0x14C }
- { offsetInCU: 0xE35, offset: 0x3F23C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ', symObjAddr: 0x67C, symBinAddr: 0xF468, symSize: 0x28 }
- { offsetInCU: 0xE77, offset: 0x3F27E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9hashValueSivg', symObjAddr: 0x6A4, symBinAddr: 0xF490, symSize: 0x50 }
- { offsetInCU: 0xF03, offset: 0x3F30A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH9hashValueSivgTW', symObjAddr: 0x6F4, symBinAddr: 0xF4E0, symSize: 0x50 }
- { offsetInCU: 0xF92, offset: 0x3F399, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x744, symBinAddr: 0xF530, symSize: 0x4 }
- { offsetInCU: 0xFC0, offset: 0x3F3C7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x794, symBinAddr: 0xF580, symSize: 0x28 }
- { offsetInCU: 0x125D, offset: 0x3F664, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x7BC, symBinAddr: 0xF5A8, symSize: 0x14 }
- { offsetInCU: 0x1295, offset: 0x3F69C, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x7D0, symBinAddr: 0xF5BC, symSize: 0x14 }
- { offsetInCU: 0x12CD, offset: 0x3F6D4, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0x7E4, symBinAddr: 0xF5D0, symSize: 0x14 }
- { offsetInCU: 0x1305, offset: 0x3F70C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASQWb', symObjAddr: 0x9B0, symBinAddr: 0xF79C, symSize: 0x4 }
- { offsetInCU: 0x1319, offset: 0x3F720, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVACSQAAWl', symObjAddr: 0x9B4, symBinAddr: 0xF7A0, symSize: 0x44 }
- { offsetInCU: 0x132D, offset: 0x3F734, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwCP', symObjAddr: 0x9F8, symBinAddr: 0xF7E4, symSize: 0x34 }
- { offsetInCU: 0x1341, offset: 0x3F748, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwxx', symObjAddr: 0xA2C, symBinAddr: 0xF818, symSize: 0x8 }
- { offsetInCU: 0x1355, offset: 0x3F75C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwcp', symObjAddr: 0xA34, symBinAddr: 0xF820, symSize: 0x34 }
- { offsetInCU: 0x1369, offset: 0x3F770, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwca', symObjAddr: 0xA68, symBinAddr: 0xF854, symSize: 0x48 }
- { offsetInCU: 0x137D, offset: 0x3F784, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0xAB0, symBinAddr: 0xF89C, symSize: 0x14 }
- { offsetInCU: 0x1391, offset: 0x3F798, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwta', symObjAddr: 0xAC4, symBinAddr: 0xF8B0, symSize: 0x38 }
- { offsetInCU: 0x13A5, offset: 0x3F7AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwet', symObjAddr: 0xAFC, symBinAddr: 0xF8E8, symSize: 0x48 }
- { offsetInCU: 0x13B9, offset: 0x3F7C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwst', symObjAddr: 0xB44, symBinAddr: 0xF930, symSize: 0x40 }
- { offsetInCU: 0x13CD, offset: 0x3F7D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVMa', symObjAddr: 0xB84, symBinAddr: 0xF970, symSize: 0x10 }
- { offsetInCU: 0x1532, offset: 0x3F939, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x748, symBinAddr: 0xF534, symSize: 0x4C }
- { offsetInCU: 0x1570, offset: 0x3F977, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xF5E4, symSize: 0x98 }
- { offsetInCU: 0x1590, offset: 0x3F997, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xF5E4, symSize: 0x98 }
- { offsetInCU: 0x15A4, offset: 0x3F9AB, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xF5E4, symSize: 0x98 }
- { offsetInCU: 0x15B8, offset: 0x3F9BF, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xF5E4, symSize: 0x98 }
- { offsetInCU: 0x1644, offset: 0x3FA4B, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSay14DouShouQiModel4CellVG_Tg5Tf4nnd_n', symObjAddr: 0x890, symBinAddr: 0xF67C, symSize: 0x120 }
- { offsetInCU: 0x27, offset: 0x3FC94, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xF980, symSize: 0x14 }
- { offsetInCU: 0x46, offset: 0x3FCB3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xF980, symSize: 0x14 }
- { offsetInCU: 0x85, offset: 0x3FCF2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV11descriptionSSvg', symObjAddr: 0x14, symBinAddr: 0xF994, symSize: 0xB4 }
- { offsetInCU: 0x176, offset: 0x3FDE3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg', symObjAddr: 0xC8, symBinAddr: 0xFA48, symSize: 0xC }
- { offsetInCU: 0x194, offset: 0x3FE01, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV6animalAA6AnimalOvg', symObjAddr: 0xD4, symBinAddr: 0xFA54, symSize: 0xC }
- { offsetInCU: 0x1B2, offset: 0x3FE1F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF', symObjAddr: 0xE0, symBinAddr: 0xFA60, symSize: 0x3C }
- { offsetInCU: 0x2E8, offset: 0x3FF55, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ', symObjAddr: 0x11C, symBinAddr: 0xFA9C, symSize: 0x20 }
- { offsetInCU: 0x355, offset: 0x3FFC2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9hashValueSivg', symObjAddr: 0x13C, symBinAddr: 0xFABC, symSize: 0x5C }
- { offsetInCU: 0x4EB, offset: 0x40158, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x198, symBinAddr: 0xFB18, symSize: 0x4 }
- { offsetInCU: 0x516, offset: 0x40183, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH9hashValueSivgTW', symObjAddr: 0x19C, symBinAddr: 0xFB1C, symSize: 0x5C }
- { offsetInCU: 0x6C9, offset: 0x40336, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1F8, symBinAddr: 0xFB78, symSize: 0x3C }
- { offsetInCU: 0x82D, offset: 0x4049A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x28C, symBinAddr: 0xFC0C, symSize: 0x20 }
- { offsetInCU: 0x84D, offset: 0x404BA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x28C, symBinAddr: 0xFC0C, symSize: 0x20 }
- { offsetInCU: 0x949, offset: 0x405B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASQWb', symObjAddr: 0x2AC, symBinAddr: 0xFC2C, symSize: 0x4 }
- { offsetInCU: 0x95D, offset: 0x405CA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVACSQAAWl', symObjAddr: 0x2B0, symBinAddr: 0xFC30, symSize: 0x44 }
- { offsetInCU: 0x971, offset: 0x405DE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwet', symObjAddr: 0x304, symBinAddr: 0xFC74, symSize: 0x94 }
- { offsetInCU: 0x985, offset: 0x405F2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwst', symObjAddr: 0x398, symBinAddr: 0xFD08, symSize: 0xBC }
- { offsetInCU: 0x999, offset: 0x40606, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVMa', symObjAddr: 0x454, symBinAddr: 0xFDC4, symSize: 0x10 }
- { offsetInCU: 0xA44, offset: 0x406B1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x234, symBinAddr: 0xFBB4, symSize: 0x58 }
- { offsetInCU: 0x27, offset: 0x408B0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xFDD4, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x408D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xFDD4, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x408F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x14, symBinAddr: 0xFDE8, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x40917, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x14, symBinAddr: 0xFDE8, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x40928, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x18, symBinAddr: 0xFDEC, symSize: 0x118 }
- { offsetInCU: 0x1AE, offset: 0x40A37, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwCP', symObjAddr: 0x130, symBinAddr: 0xFF04, symSize: 0x30 }
- { offsetInCU: 0x1C2, offset: 0x40A4B, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x164, symBinAddr: 0xFF34, symSize: 0x14 }
- { offsetInCU: 0x1D6, offset: 0x40A5F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwet', symObjAddr: 0x178, symBinAddr: 0xFF48, symSize: 0x48 }
- { offsetInCU: 0x1EA, offset: 0x40A73, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwst', symObjAddr: 0x1C0, symBinAddr: 0xFF90, symSize: 0x48 }
- { offsetInCU: 0x1FE, offset: 0x40A87, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwug', symObjAddr: 0x208, symBinAddr: 0xFFD8, symSize: 0x18 }
- { offsetInCU: 0x212, offset: 0x40A9B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwup', symObjAddr: 0x220, symBinAddr: 0xFFF0, symSize: 0x4 }
- { offsetInCU: 0x226, offset: 0x40AAF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwui', symObjAddr: 0x224, symBinAddr: 0xFFF4, symSize: 0x1C }
- { offsetInCU: 0x23A, offset: 0x40AC3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOMa', symObjAddr: 0x240, symBinAddr: 0x10010, symSize: 0x10 }
- { offsetInCU: 0x25F, offset: 0x40AE8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP7_domainSSvgTW', symObjAddr: 0x4, symBinAddr: 0xFDD8, symSize: 0x4 }
- { offsetInCU: 0x27B, offset: 0x40B04, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP5_codeSivgTW', symObjAddr: 0x8, symBinAddr: 0xFDDC, symSize: 0x4 }
- { offsetInCU: 0x297, offset: 0x40B20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0xC, symBinAddr: 0xFDE0, symSize: 0x4 }
- { offsetInCU: 0x2B3, offset: 0x40B3C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x10, symBinAddr: 0xFDE4, symSize: 0x4 }
- { offsetInCU: 0x27, offset: 0x40BE5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10020, symSize: 0x14 }
- { offsetInCU: 0x4B, offset: 0x40C09, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10020, symSize: 0x14 }
- { offsetInCU: 0x7E, offset: 0x40C3C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg', symObjAddr: 0x14, symBinAddr: 0x10034, symSize: 0x18 }
- { offsetInCU: 0xA9, offset: 0x40C67, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF', symObjAddr: 0x2C, symBinAddr: 0x1004C, symSize: 0x28 }
- { offsetInCU: 0x13F, offset: 0x40CFD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO9hashValueSivg', symObjAddr: 0x54, symBinAddr: 0x10074, symSize: 0x44 }
- { offsetInCU: 0x239, offset: 0x40DF7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x98, symBinAddr: 0x100B8, symSize: 0x14 }
- { offsetInCU: 0x259, offset: 0x40E17, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x98, symBinAddr: 0x100B8, symSize: 0x14 }
- { offsetInCU: 0x299, offset: 0x40E57, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH9hashValueSivgTW', symObjAddr: 0xAC, symBinAddr: 0x100CC, symSize: 0x44 }
- { offsetInCU: 0x37C, offset: 0x40F3A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xF0, symBinAddr: 0x10110, symSize: 0x28 }
- { offsetInCU: 0x405, offset: 0x40FC3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASQWb', symObjAddr: 0x158, symBinAddr: 0x10178, symSize: 0x4 }
- { offsetInCU: 0x419, offset: 0x40FD7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOACSQAAWl', symObjAddr: 0x15C, symBinAddr: 0x1017C, symSize: 0x44 }
- { offsetInCU: 0x42D, offset: 0x40FEB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwet', symObjAddr: 0x1B0, symBinAddr: 0x101C0, symSize: 0x90 }
- { offsetInCU: 0x441, offset: 0x40FFF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwst', symObjAddr: 0x240, symBinAddr: 0x10250, symSize: 0xBC }
- { offsetInCU: 0x455, offset: 0x41013, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwug', symObjAddr: 0x2FC, symBinAddr: 0x1030C, symSize: 0x8 }
- { offsetInCU: 0x469, offset: 0x41027, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwup', symObjAddr: 0x304, symBinAddr: 0x10314, symSize: 0x4 }
- { offsetInCU: 0x47D, offset: 0x4103B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwui', symObjAddr: 0x308, symBinAddr: 0x10318, symSize: 0x8 }
- { offsetInCU: 0x491, offset: 0x4104F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOMa', symObjAddr: 0x310, symBinAddr: 0x10320, symSize: 0x10 }
- { offsetInCU: 0x4E9, offset: 0x410A7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x118, symBinAddr: 0x10138, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x411D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x10330, symSize: 0x6C }
- { offsetInCU: 0xAC, offset: 0x41256, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x10330, symSize: 0x6C }
- { offsetInCU: 0xF0, offset: 0x4129A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfd', symObjAddr: 0x6C, symBinAddr: 0x1039C, symSize: 0x24 }
- { offsetInCU: 0x155, offset: 0x412FF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x90, symBinAddr: 0x103C0, symSize: 0x9C }
- { offsetInCU: 0x1BD, offset: 0x41367, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfD', symObjAddr: 0x12C, symBinAddr: 0x1045C, symSize: 0x2C }
- { offsetInCU: 0x217, offset: 0x413C1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCMa', symObjAddr: 0x158, symBinAddr: 0x10488, symSize: 0x20 }
- { offsetInCU: 0x27, offset: 0x41484, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x104A8, symSize: 0x4 }
- { offsetInCU: 0x46, offset: 0x414A3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x104A8, symSize: 0x4 }
- { offsetInCU: 0x5A, offset: 0x414B7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfC', symObjAddr: 0x4, symBinAddr: 0x104AC, symSize: 0x14 }
- { offsetInCU: 0xC1, offset: 0x4151E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg', symObjAddr: 0x18, symBinAddr: 0x104C0, symSize: 0xC }
- { offsetInCU: 0xDF, offset: 0x4153C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV9rowOriginSivg', symObjAddr: 0x24, symBinAddr: 0x104CC, symSize: 0x8 }
- { offsetInCU: 0xFD, offset: 0x4155A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV12columnOriginSivg', symObjAddr: 0x2C, symBinAddr: 0x104D4, symSize: 0x8 }
- { offsetInCU: 0x11B, offset: 0x41578, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV14rowDestinationSivg', symObjAddr: 0x34, symBinAddr: 0x104DC, symSize: 0x8 }
- { offsetInCU: 0x139, offset: 0x41596, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV17columnDestinationSivg', symObjAddr: 0x3C, symBinAddr: 0x104E4, symSize: 0x8 }
- { offsetInCU: 0x157, offset: 0x415B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV11descriptionSSvg', symObjAddr: 0x44, symBinAddr: 0x104EC, symSize: 0x198 }
- { offsetInCU: 0x287, offset: 0x416E4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1DC, symBinAddr: 0x10684, symSize: 0x4 }
- { offsetInCU: 0x2B2, offset: 0x4170F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1E0, symBinAddr: 0x10688, symSize: 0x4 }
- { offsetInCU: 0x2D2, offset: 0x4172F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1E0, symBinAddr: 0x10688, symSize: 0x4 }
- { offsetInCU: 0x2E3, offset: 0x41740, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1E4, symBinAddr: 0x1068C, symSize: 0x48 }
- { offsetInCU: 0x316, offset: 0x41773, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwCP', symObjAddr: 0x22C, symBinAddr: 0x106D4, symSize: 0x30 }
- { offsetInCU: 0x32A, offset: 0x41787, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x260, symBinAddr: 0x10704, symSize: 0x14 }
- { offsetInCU: 0x33E, offset: 0x4179B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwet', symObjAddr: 0x274, symBinAddr: 0x10718, symSize: 0x44 }
- { offsetInCU: 0x352, offset: 0x417AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwst', symObjAddr: 0x2B8, symBinAddr: 0x1075C, symSize: 0x4C }
- { offsetInCU: 0x366, offset: 0x417C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVMa', symObjAddr: 0x304, symBinAddr: 0x107A8, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x418B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x107B8, symSize: 0xC }
- { offsetInCU: 0x4B, offset: 0x418D8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x107B8, symSize: 0xC }
- { offsetInCU: 0x66, offset: 0x418F3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfC', symObjAddr: 0xC, symBinAddr: 0x107C4, symSize: 0x18 }
- { offsetInCU: 0xB8, offset: 0x41945, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0x130, symBinAddr: 0x108E8, symSize: 0x8 }
- { offsetInCU: 0xD4, offset: 0x41961, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x138, symBinAddr: 0x108F0, symSize: 0x10 }
- { offsetInCU: 0xEC, offset: 0x41979, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x138, symBinAddr: 0x108F0, symSize: 0x10 }
- { offsetInCU: 0x109, offset: 0x41996, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASQWb', symObjAddr: 0x38, symBinAddr: 0x107F0, symSize: 0x4 }
- { offsetInCU: 0x11D, offset: 0x419AA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOACSQAAWl', symObjAddr: 0x3C, symBinAddr: 0x107F4, symSize: 0x44 }
- { offsetInCU: 0x147, offset: 0x419D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwet', symObjAddr: 0x158, symBinAddr: 0x10900, symSize: 0x90 }
- { offsetInCU: 0x15B, offset: 0x419E8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwst', symObjAddr: 0x1E8, symBinAddr: 0x10990, symSize: 0xBC }
- { offsetInCU: 0x16F, offset: 0x419FC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwug', symObjAddr: 0x2A4, symBinAddr: 0x10A4C, symSize: 0x8 }
- { offsetInCU: 0x183, offset: 0x41A10, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwup', symObjAddr: 0x2AC, symBinAddr: 0x10A54, symSize: 0x4 }
- { offsetInCU: 0x197, offset: 0x41A24, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwui', symObjAddr: 0x2B0, symBinAddr: 0x10A58, symSize: 0x8 }
- { offsetInCU: 0x1AB, offset: 0x41A38, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOMa', symObjAddr: 0x2B8, symBinAddr: 0x10A60, symSize: 0x10 }
- { offsetInCU: 0x1E5, offset: 0x41A72, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x24, symBinAddr: 0x107DC, symSize: 0x14 }
- { offsetInCU: 0x276, offset: 0x41B03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH9hashValueSivgTW', symObjAddr: 0x80, symBinAddr: 0x10838, symSize: 0x44 }
- { offsetInCU: 0x34E, offset: 0x41BDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xC4, symBinAddr: 0x1087C, symSize: 0x2C }
- { offsetInCU: 0x3CA, offset: 0x41C57, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xF0, symBinAddr: 0x108A8, symSize: 0x40 }
- { offsetInCU: 0x97, offset: 0x41DF5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvg', symObjAddr: 0xBC, symBinAddr: 0x10B2C, symSize: 0x4C }
- { offsetInCU: 0xE0, offset: 0x41E3E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvg', symObjAddr: 0x16C, symBinAddr: 0x10BDC, symSize: 0x48 }
- { offsetInCU: 0xFF, offset: 0x41E5D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg', symObjAddr: 0x1F8, symBinAddr: 0x10C68, symSize: 0x8 }
- { offsetInCU: 0x12C, offset: 0x41E8A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfC', symObjAddr: 0x200, symBinAddr: 0x10C70, symSize: 0x64 }
- { offsetInCU: 0x151, offset: 0x41EAF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc', symObjAddr: 0x264, symBinAddr: 0x10CD4, symSize: 0x464 }
- { offsetInCU: 0x553, offset: 0x422B1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_', symObjAddr: 0x7B0, symBinAddr: 0x11178, symSize: 0x84 }
- { offsetInCU: 0x602, offset: 0x42360, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TQ0_', symObjAddr: 0x834, symBinAddr: 0x111FC, symSize: 0x68 }
- { offsetInCU: 0x69B, offset: 0x423F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TY2_', symObjAddr: 0x89C, symBinAddr: 0x11264, symSize: 0x1C }
- { offsetInCU: 0x6E0, offset: 0x4243E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_', symObjAddr: 0x8B8, symBinAddr: 0x11280, symSize: 0x84 }
- { offsetInCU: 0x78F, offset: 0x424ED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TQ0_', symObjAddr: 0x93C, symBinAddr: 0x11304, symSize: 0x68 }
- { offsetInCU: 0x828, offset: 0x42586, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY1_', symObjAddr: 0x9A4, symBinAddr: 0x1136C, symSize: 0xC }
- { offsetInCU: 0x882, offset: 0x425E0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY2_', symObjAddr: 0x9B0, symBinAddr: 0x11378, symSize: 0x1C }
- { offsetInCU: 0x8C7, offset: 0x42625, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfC', symObjAddr: 0x9CC, symBinAddr: 0x11394, symSize: 0x6C }
- { offsetInCU: 0x8EC, offset: 0x4264A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc', symObjAddr: 0xA38, symBinAddr: 0x11400, symSize: 0x2C4 }
- { offsetInCU: 0x9E9, offset: 0x42747, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF', symObjAddr: 0xCFC, symBinAddr: 0x116C4, symSize: 0xD4 }
- { offsetInCU: 0xB14, offset: 0x42872, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF', symObjAddr: 0xDD0, symBinAddr: 0x11798, symSize: 0xD4 }
- { offsetInCU: 0xC3F, offset: 0x4299D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF', symObjAddr: 0xF58, symBinAddr: 0x11920, symSize: 0xD4 }
- { offsetInCU: 0xD6A, offset: 0x42AC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF', symObjAddr: 0x108C, symBinAddr: 0x11A54, symSize: 0xD4 }
- { offsetInCU: 0xE95, offset: 0x42BF3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF', symObjAddr: 0x1160, symBinAddr: 0x11B28, symSize: 0xD4 }
- { offsetInCU: 0xFC0, offset: 0x42D1E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF', symObjAddr: 0x1234, symBinAddr: 0x11BFC, symSize: 0xD4 }
- { offsetInCU: 0x10EB, offset: 0x42E49, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF', symObjAddr: 0x1308, symBinAddr: 0x11CD0, symSize: 0xD4 }
- { offsetInCU: 0x1216, offset: 0x42F74, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF', symObjAddr: 0x13DC, symBinAddr: 0x11DA4, symSize: 0xD4 }
- { offsetInCU: 0x135F, offset: 0x430BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC18notifyPieceRemoved33_4E9958627B7DCD90B6D32369387417C3LLyySi_SiAA0G0VtF', symObjAddr: 0x14B0, symBinAddr: 0x11E78, symSize: 0xC8 }
- { offsetInCU: 0x150C, offset: 0x4326A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF', symObjAddr: 0x1578, symBinAddr: 0x11F40, symSize: 0x28 }
- { offsetInCU: 0x1914, offset: 0x43672, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY0_', symObjAddr: 0x15A0, symBinAddr: 0x11F68, symSize: 0x9E8 }
- { offsetInCU: 0x267D, offset: 0x443DB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ1_', symObjAddr: 0x1F88, symBinAddr: 0x12950, symSize: 0x60 }
- { offsetInCU: 0x27B0, offset: 0x4450E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY2_', symObjAddr: 0x1FE8, symBinAddr: 0x129B0, symSize: 0x220 }
- { offsetInCU: 0x2AB9, offset: 0x44817, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ3_', symObjAddr: 0x2208, symBinAddr: 0x12BD0, symSize: 0x70 }
- { offsetInCU: 0x2BB2, offset: 0x44910, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY4_', symObjAddr: 0x2278, symBinAddr: 0x12C40, symSize: 0x10C }
- { offsetInCU: 0x2CE1, offset: 0x44A3F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY5_', symObjAddr: 0x2384, symBinAddr: 0x12D4C, symSize: 0x5C }
- { offsetInCU: 0x2D8F, offset: 0x44AED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC6isOverSbvg', symObjAddr: 0x23E0, symBinAddr: 0x12DA8, symSize: 0x30 }
- { offsetInCU: 0x2DAC, offset: 0x44B0A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKF', symObjAddr: 0x2410, symBinAddr: 0x12DD8, symSize: 0x18 }
- { offsetInCU: 0x2E63, offset: 0x44BC1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY0_', symObjAddr: 0x2428, symBinAddr: 0x12DF0, symSize: 0x348 }
- { offsetInCU: 0x3351, offset: 0x450AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ1_', symObjAddr: 0x2770, symBinAddr: 0x13138, symSize: 0x60 }
- { offsetInCU: 0x33ED, offset: 0x4514B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY2_', symObjAddr: 0x27D0, symBinAddr: 0x13198, symSize: 0x210 }
- { offsetInCU: 0x3666, offset: 0x453C4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ3_', symObjAddr: 0x29E0, symBinAddr: 0x133A8, symSize: 0x70 }
- { offsetInCU: 0x370F, offset: 0x4546D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY4_', symObjAddr: 0x2A50, symBinAddr: 0x13418, symSize: 0x104 }
- { offsetInCU: 0x37EF, offset: 0x4554D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY5_', symObjAddr: 0x2B54, symBinAddr: 0x1351C, symSize: 0x5C }
- { offsetInCU: 0x383E, offset: 0x4559C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfd', symObjAddr: 0x2BB0, symBinAddr: 0x13578, symSize: 0x6C }
- { offsetInCU: 0x386B, offset: 0x455C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfD', symObjAddr: 0x2C1C, symBinAddr: 0x135E4, symSize: 0x1C }
- { offsetInCU: 0x3899, offset: 0x455F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTK', symObjAddr: 0x0, symBinAddr: 0x10A70, symSize: 0x50 }
- { offsetInCU: 0x38CF, offset: 0x4562D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTk', symObjAddr: 0x50, symBinAddr: 0x10AC0, symSize: 0x6C }
- { offsetInCU: 0x390F, offset: 0x4566D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvpACTk', symObjAddr: 0x108, symBinAddr: 0x10B78, symSize: 0x64 }
- { offsetInCU: 0x3951, offset: 0x456AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5Rules_pWOc', symObjAddr: 0x1B4, symBinAddr: 0x10C24, symSize: 0x44 }
- { offsetInCU: 0x3A57, offset: 0x457B5, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x730, symBinAddr: 0x11138, symSize: 0x20 }
- { offsetInCU: 0x3A6B, offset: 0x457C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCMa', symObjAddr: 0x750, symBinAddr: 0x11158, symSize: 0x20 }
- { offsetInCU: 0x3B93, offset: 0x458F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TR', symObjAddr: 0xEA4, symBinAddr: 0x1186C, symSize: 0x6C }
- { offsetInCU: 0x3BC6, offset: 0x45924, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTQ0_', symObjAddr: 0xF10, symBinAddr: 0x118D8, symSize: 0x48 }
- { offsetInCU: 0x3C82, offset: 0x459E0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TR', symObjAddr: 0x102C, symBinAddr: 0x119F4, symSize: 0x60 }
- { offsetInCU: 0x40E5, offset: 0x45E43, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TA', symObjAddr: 0x2C38, symBinAddr: 0x13600, symSize: 0x60 }
- { offsetInCU: 0x4115, offset: 0x45E73, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TA', symObjAddr: 0x2D44, symBinAddr: 0x13684, symSize: 0x60 }
- { offsetInCU: 0x4145, offset: 0x45EA3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA.7', symObjAddr: 0x2DA4, symBinAddr: 0x136E4, symSize: 0x88 }
- { offsetInCU: 0x4179, offset: 0x45ED7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVIegn_ACytIegnr_TRTA', symObjAddr: 0x2E2C, symBinAddr: 0x1376C, symSize: 0x20 }
- { offsetInCU: 0x41A9, offset: 0x45F07, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTA', symObjAddr: 0x2E4C, symBinAddr: 0x1378C, symSize: 0x88 }
- { offsetInCU: 0x41D9, offset: 0x45F37, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTA', symObjAddr: 0x2ED4, symBinAddr: 0x13814, symSize: 0x80 }
- { offsetInCU: 0x4209, offset: 0x45F67, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTATQ0_', symObjAddr: 0x2F54, symBinAddr: 0x13894, symSize: 0x48 }
- { offsetInCU: 0x4265, offset: 0x45FC3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6ResultOAA6PlayerCSgIegnng_AceHytIegnnnr_TRTA', symObjAddr: 0x2F9C, symBinAddr: 0x138DC, symSize: 0x24 }
- { offsetInCU: 0x4299, offset: 0x45FF7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCIegnng_AceGytIegnnnr_TRTA', symObjAddr: 0x2FC0, symBinAddr: 0x13900, symSize: 0x24 }
- { offsetInCU: 0x42CD, offset: 0x4602B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCSbIegnngy_AceGSbytIegnnnnr_TRTA', symObjAddr: 0x2FE4, symBinAddr: 0x13924, symSize: 0x28 }
- { offsetInCU: 0x4301, offset: 0x4605F, size: 0x8, addend: 0x0, symName: '_$sS2i14DouShouQiModel5PieceVIegyyn_S2iACytIegnnnr_TRTA', symObjAddr: 0x300C, symBinAddr: 0x1394C, symSize: 0x28 }
- { offsetInCU: 0x432A, offset: 0x46088, size: 0x8, addend: 0x0, symName: ___swift_mutable_project_boxed_opaque_existential_1, symObjAddr: 0x3034, symBinAddr: 0x13974, symSize: 0x28 }
- { offsetInCU: 0x433E, offset: 0x4609C, size: 0x8, addend: 0x0, symName: ___swift_assign_boxed_opaque_existential_1, symObjAddr: 0x3308, symBinAddr: 0x13C48, symSize: 0x168 }
...

@ -24,7 +24,7 @@ public enum WinningReason {
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
@ -39,8 +39,13 @@ public enum BoardFailingReason {
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
@ -108,14 +113,24 @@ public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player {
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
@ -181,6 +196,10 @@ public enum Owner {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
@ -201,28 +220,38 @@ public enum Animal : Swift.Int {
get
}
}
public struct Game {
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void)
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public mutating func start() async throws
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}

@ -24,7 +24,7 @@ public enum WinningReason {
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
@ -39,8 +39,13 @@ public enum BoardFailingReason {
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
@ -108,14 +113,24 @@ public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player {
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
@ -181,6 +196,10 @@ public enum Owner {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
@ -201,28 +220,38 @@ public enum Animal : Swift.Int {
get
}
}
public struct Game {
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void)
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public mutating func start() async throws
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}

@ -24,7 +24,7 @@ public enum WinningReason {
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
@ -39,8 +39,13 @@ public enum BoardFailingReason {
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
@ -108,14 +113,24 @@ public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player {
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
@ -181,6 +196,10 @@ public enum Owner {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
@ -201,28 +220,38 @@ public enum Animal : Swift.Int {
get
}
}
public struct Game {
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void)
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public mutating func start() async throws
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}

@ -24,7 +24,7 @@ public enum WinningReason {
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
@ -39,8 +39,13 @@ public enum BoardFailingReason {
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
@ -108,14 +113,24 @@ public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player {
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move?
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
@ -181,6 +196,10 @@ public enum Owner {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
@ -201,28 +220,38 @@ public enum Animal : Swift.Int {
get
}
}
public struct Game {
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void)
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public mutating func start() async throws
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}

@ -18,11 +18,11 @@
</data>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
<data>
ORHQTNNRc9+IsP4LksefJ/Un4co=
5wlrw/S604f6EkkdO0sjydo0+Bc=
</data>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<data>
TrksqYdbCnunTEUAwWwTpaYcpsw=
iWelfKfa40hASjZTv+0MmwJpt14=
</data>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<data>
@ -30,19 +30,19 @@
</data>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<data>
TrksqYdbCnunTEUAwWwTpaYcpsw=
iWelfKfa40hASjZTv+0MmwJpt14=
</data>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<data>
niSvjNrBHUwlxy9t/BiJgPTMiPg=
hIkz8AGNOjj+boCk29AkmkNg7U4=
</data>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<data>
ORHQTNNRc9+IsP4LksefJ/Un4co=
5wlrw/S604f6EkkdO0sjydo0+Bc=
</data>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<data>
YcS2+5tyo+CmBm6pQDGd5mEiThU=
ulNUxrIsFIWqKNx6spilb7IJVR0=
</data>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<data>
@ -50,11 +50,11 @@
</data>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<data>
YcS2+5tyo+CmBm6pQDGd5mEiThU=
ulNUxrIsFIWqKNx6spilb7IJVR0=
</data>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<data>
N3Eb6UlFU35CftT5wPZyYa92V5E=
0ZAcidlUuohX1myhyQosgBBZq1s=
</data>
<key>Modules/module.modulemap</key>
<data>
@ -81,14 +81,14 @@
<dict>
<key>hash2</key>
<data>
Pt6SWYmHEErGtBh0mEB4VEPht9Iux6dxkyyQGWWhG/Y=
btM982otm47LMNIetdE5JR553fM9PjFPuS8AXm0+EpQ=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<dict>
<key>hash2</key>
<data>
qTNo5hgcTOuf2g689PNLik8dWCGccEAjtekFLXp1wUk=
oe48ffKwbmJhKUMG/td3wfVID9DF4QgJz/dIPJweV5g=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
@ -102,28 +102,28 @@
<dict>
<key>hash2</key>
<data>
qTNo5hgcTOuf2g689PNLik8dWCGccEAjtekFLXp1wUk=
oe48ffKwbmJhKUMG/td3wfVID9DF4QgJz/dIPJweV5g=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<dict>
<key>hash2</key>
<data>
mN4VlJdyDumXrJGI22VAiH/Ul6Oc2C+uCwrh87ZQa7M=
q85NBK13clOQfgVFgVjmL6pWsskBEw+Z45xPFMxL1+E=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<dict>
<key>hash2</key>
<data>
Pt6SWYmHEErGtBh0mEB4VEPht9Iux6dxkyyQGWWhG/Y=
btM982otm47LMNIetdE5JR553fM9PjFPuS8AXm0+EpQ=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<dict>
<key>hash2</key>
<data>
z3xla/MZG9g10flpEIOyL+U5cXaaJ6kKdYGBkiRDkS8=
agKcCCqs9pHq1e94l4ouc5WojSYeRzzGkrHxkw9FZ8c=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
@ -137,14 +137,14 @@
<dict>
<key>hash2</key>
<data>
z3xla/MZG9g10flpEIOyL+U5cXaaJ6kKdYGBkiRDkS8=
agKcCCqs9pHq1e94l4ouc5WojSYeRzzGkrHxkw9FZ8c=
</data>
</dict>
<key>Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<dict>
<key>hash2</key>
<data>
Qt7bWwgfMeu4WIFkhcpt6CfGKzHwTtpnXsLo3vVFEMI=
0C4f5rpOmGFG3B9PLb/e4rylk+OdtHUNKJ+aW1e+MCE=
</data>
</dict>
<key>Modules/module.modulemap</key>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.fr.uca.iut.DouShouQiModel</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

@ -0,0 +1,504 @@
---
triple: 'arm64-apple-darwin'
binary-path: '/Users/marcchevaldonne/Library/Developer/Xcode/DerivedData/DouShouQiModel-bzzvovsrfmbhuydeirorjmljgtyf/Build/Intermediates.noindex/ArchiveIntermediates/DouShouQiModel/InstallationBuildProductsLocation/Library/Frameworks/DouShouQiModel.framework/DouShouQiModel'
relocations:
- { offsetInCU: 0x34, offset: 0x2EDE3, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionString, symObjAddr: 0x0, symBinAddr: 0x10F10, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x2EE18, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionNumber, symObjAddr: 0x38, symBinAddr: 0x10F48, symSize: 0x0 }
- { offsetInCU: 0x27, offset: 0x2EE55, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xE64, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x2EE79, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xE64, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x2EE9C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0xE7C, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x2EEBC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0xE7C, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x2EECD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x148, symBinAddr: 0xFAC, symSize: 0x68 }
- { offsetInCU: 0xDD, offset: 0x2EF0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0xE68, symSize: 0x14 }
- { offsetInCU: 0x110, offset: 0x2EF3E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x1C, symBinAddr: 0xE80, symSize: 0x28 }
- { offsetInCU: 0x1A6, offset: 0x2EFD4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO9hashValueSivg', symObjAddr: 0x44, symBinAddr: 0xEA8, symSize: 0x44 }
- { offsetInCU: 0x2A0, offset: 0x2F0CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0xEEC, symSize: 0x14 }
- { offsetInCU: 0x2C0, offset: 0x2F0EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0xEEC, symSize: 0x14 }
- { offsetInCU: 0x300, offset: 0x2F12E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH9hashValueSivgTW', symObjAddr: 0x9C, symBinAddr: 0xF00, symSize: 0x44 }
- { offsetInCU: 0x3E3, offset: 0x2F211, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0xF44, symSize: 0x28 }
- { offsetInCU: 0x46C, offset: 0x2F29A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASQWb', symObjAddr: 0x1B0, symBinAddr: 0x1014, symSize: 0x4 }
- { offsetInCU: 0x480, offset: 0x2F2AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOACSQAAWl', symObjAddr: 0x1B4, symBinAddr: 0x1018, symSize: 0x44 }
- { offsetInCU: 0x494, offset: 0x2F2C2, size: 0x8, addend: 0x0, symName: ___swift_memcpy2_1, symObjAddr: 0x1F8, symBinAddr: 0x105C, symSize: 0xC }
- { offsetInCU: 0x4A8, offset: 0x2F2D6, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x204, symBinAddr: 0x1068, symSize: 0x4 }
- { offsetInCU: 0x4BC, offset: 0x2F2EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwet', symObjAddr: 0x208, symBinAddr: 0x106C, symSize: 0xAC }
- { offsetInCU: 0x4D0, offset: 0x2F2FE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwst', symObjAddr: 0x2B4, symBinAddr: 0x1118, symSize: 0xC4 }
- { offsetInCU: 0x4E4, offset: 0x2F312, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwug', symObjAddr: 0x378, symBinAddr: 0x11DC, symSize: 0x14 }
- { offsetInCU: 0x4F8, offset: 0x2F326, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwup', symObjAddr: 0x38C, symBinAddr: 0x11F0, symSize: 0x4 }
- { offsetInCU: 0x50C, offset: 0x2F33A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwui', symObjAddr: 0x390, symBinAddr: 0x11F4, symSize: 0x24 }
- { offsetInCU: 0x520, offset: 0x2F34E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOMa', symObjAddr: 0x3B4, symBinAddr: 0x1218, symSize: 0x10 }
- { offsetInCU: 0x534, offset: 0x2F362, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x3C4, symBinAddr: 0x1228, symSize: 0xC }
- { offsetInCU: 0x548, offset: 0x2F376, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwet', symObjAddr: 0x3D0, symBinAddr: 0x1234, symSize: 0x90 }
- { offsetInCU: 0x55C, offset: 0x2F38A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwst', symObjAddr: 0x460, symBinAddr: 0x12C4, symSize: 0xBC }
- { offsetInCU: 0x570, offset: 0x2F39E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwug', symObjAddr: 0x51C, symBinAddr: 0x1380, symSize: 0x8 }
- { offsetInCU: 0x584, offset: 0x2F3B2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwup', symObjAddr: 0x524, symBinAddr: 0x1388, symSize: 0x4 }
- { offsetInCU: 0x598, offset: 0x2F3C6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwui', symObjAddr: 0x528, symBinAddr: 0x138C, symSize: 0x8 }
- { offsetInCU: 0x5AC, offset: 0x2F3DA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOMa', symObjAddr: 0x530, symBinAddr: 0x1394, symSize: 0x10 }
- { offsetInCU: 0x626, offset: 0x2F454, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x108, symBinAddr: 0xF6C, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x2F597, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x13A4, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x2F5BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x13A4, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x2F5DE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x13BC, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x2F5FE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x13BC, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x2F60F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x148, symBinAddr: 0x14EC, symSize: 0x7C }
- { offsetInCU: 0xF5, offset: 0x2F665, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x13A8, symSize: 0x14 }
- { offsetInCU: 0x128, offset: 0x2F698, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x1C, symBinAddr: 0x13C0, symSize: 0x28 }
- { offsetInCU: 0x1BE, offset: 0x2F72E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg', symObjAddr: 0x44, symBinAddr: 0x13E8, symSize: 0x44 }
- { offsetInCU: 0x2B8, offset: 0x2F828, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x142C, symSize: 0x14 }
- { offsetInCU: 0x2D8, offset: 0x2F848, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x142C, symSize: 0x14 }
- { offsetInCU: 0x318, offset: 0x2F888, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH9hashValueSivgTW', symObjAddr: 0x9C, symBinAddr: 0x1440, symSize: 0x44 }
- { offsetInCU: 0x3FB, offset: 0x2F96B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x1484, symSize: 0x28 }
- { offsetInCU: 0x484, offset: 0x2F9F4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASQWb', symObjAddr: 0x1C4, symBinAddr: 0x1568, symSize: 0x4 }
- { offsetInCU: 0x498, offset: 0x2FA08, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOACSQAAWl', symObjAddr: 0x1C8, symBinAddr: 0x156C, symSize: 0x44 }
- { offsetInCU: 0x4AC, offset: 0x2FA1C, size: 0x8, addend: 0x0, symName: ___swift_memcpy3_1, symObjAddr: 0x20C, symBinAddr: 0x15B0, symSize: 0x14 }
- { offsetInCU: 0x4C0, offset: 0x2FA30, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwet', symObjAddr: 0x224, symBinAddr: 0x15C4, symSize: 0x74 }
- { offsetInCU: 0x4D4, offset: 0x2FA44, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwst', symObjAddr: 0x298, symBinAddr: 0x1638, symSize: 0x8C }
- { offsetInCU: 0x4E8, offset: 0x2FA58, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwug', symObjAddr: 0x324, symBinAddr: 0x16C4, symSize: 0x18 }
- { offsetInCU: 0x4FC, offset: 0x2FA6C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwup', symObjAddr: 0x33C, symBinAddr: 0x16DC, symSize: 0x4 }
- { offsetInCU: 0x510, offset: 0x2FA80, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwui', symObjAddr: 0x340, symBinAddr: 0x16E0, symSize: 0x18 }
- { offsetInCU: 0x524, offset: 0x2FA94, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOMa', symObjAddr: 0x358, symBinAddr: 0x16F8, symSize: 0x10 }
- { offsetInCU: 0x538, offset: 0x2FAA8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwet', symObjAddr: 0x374, symBinAddr: 0x1708, symSize: 0x90 }
- { offsetInCU: 0x54C, offset: 0x2FABC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwst', symObjAddr: 0x404, symBinAddr: 0x1798, symSize: 0xBC }
- { offsetInCU: 0x560, offset: 0x2FAD0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwug', symObjAddr: 0x4C0, symBinAddr: 0x1854, symSize: 0x8 }
- { offsetInCU: 0x574, offset: 0x2FAE4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwup', symObjAddr: 0x4C8, symBinAddr: 0x185C, symSize: 0x4 }
- { offsetInCU: 0x588, offset: 0x2FAF8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwui', symObjAddr: 0x4CC, symBinAddr: 0x1860, symSize: 0x8 }
- { offsetInCU: 0x59C, offset: 0x2FB0C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOMa', symObjAddr: 0x4D4, symBinAddr: 0x1868, symSize: 0x10 }
- { offsetInCU: 0x5FA, offset: 0x2FB6A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x108, symBinAddr: 0x14AC, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x2FC99, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x1878, symSize: 0xD0 }
- { offsetInCU: 0x99, offset: 0x2FD0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x1878, symSize: 0xD0 }
- { offsetInCU: 0xEE, offset: 0x2FD60, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc', symObjAddr: 0xD0, symBinAddr: 0x1948, symSize: 0xB0 }
- { offsetInCU: 0x189, offset: 0x2FDFB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x190, symBinAddr: 0x1A08, symSize: 0xA0 }
- { offsetInCU: 0x1DE, offset: 0x2FE50, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x230, symBinAddr: 0x1AA8, symSize: 0x70 }
- { offsetInCU: 0x22D, offset: 0x2FE9F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x2A0, symBinAddr: 0x1B18, symSize: 0xC }
- { offsetInCU: 0x2A9, offset: 0x2FF1B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF', symObjAddr: 0x2AC, symBinAddr: 0x1B24, symSize: 0x38 }
- { offsetInCU: 0x310, offset: 0x2FF82, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF', symObjAddr: 0x2E4, symBinAddr: 0x1B5C, symSize: 0x2C }
- { offsetInCU: 0x384, offset: 0x2FFF6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY0_', symObjAddr: 0x310, symBinAddr: 0x1B88, symSize: 0x108 }
- { offsetInCU: 0x507, offset: 0x30179, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTQ1_', symObjAddr: 0x418, symBinAddr: 0x1C90, symSize: 0x70 }
- { offsetInCU: 0x5BF, offset: 0x30231, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY2_', symObjAddr: 0x488, symBinAddr: 0x1D00, symSize: 0x100 }
- { offsetInCU: 0x6AE, offset: 0x30320, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY3_', symObjAddr: 0x588, symBinAddr: 0x1E00, symSize: 0x40 }
- { offsetInCU: 0x70C, offset: 0x3037E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfd', symObjAddr: 0x5D0, symBinAddr: 0x1E48, symSize: 0x2C }
- { offsetInCU: 0x75D, offset: 0x303CF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfD', symObjAddr: 0x5FC, symBinAddr: 0x1E74, symSize: 0x34 }
- { offsetInCU: 0x87E, offset: 0x304F0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCAA4MoveVSgIeggr_SgWOe', symObjAddr: 0x180, symBinAddr: 0x19F8, symSize: 0x10 }
- { offsetInCU: 0x92C, offset: 0x3059E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfE', symObjAddr: 0x5C8, symBinAddr: 0x1E40, symSize: 0x8 }
- { offsetInCU: 0x959, offset: 0x305CB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCMa', symObjAddr: 0x630, symBinAddr: 0x1EA8, symSize: 0x20 }
- { offsetInCU: 0x4F, offset: 0x3076A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0x29A60, symBinAddr: 0x19B40, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x30784, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LLShyAA5PieceVGvpZ', symObjAddr: 0x6D30, symBinAddr: 0x18720, symSize: 0x0 }
- { offsetInCU: 0xD7, offset: 0x307F2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x6D38, symBinAddr: 0x18728, symSize: 0x0 }
- { offsetInCU: 0xF1, offset: 0x3080C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardV_S2itKcGvpZ', symObjAddr: 0x6D40, symBinAddr: 0x18730, symSize: 0x0 }
- { offsetInCU: 0x10B, offset: 0x30826, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x6D48, symBinAddr: 0x18738, symSize: 0x0 }
- { offsetInCU: 0x125, offset: 0x30840, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellTypeSDyAA0iJ0OSaySi3row_Si3coltGGvpZ', symObjAddr: 0x29A68, symBinAddr: 0x19B48, symSize: 0x0 }
- { offsetInCU: 0x284, offset: 0x3099F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x1F94, symSize: 0x2DC }
- { offsetInCU: 0xA99, offset: 0x311B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ', symObjAddr: 0x2DC, symBinAddr: 0x2270, symSize: 0x78 }
- { offsetInCU: 0xAD7, offset: 0x311F2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ', symObjAddr: 0x354, symBinAddr: 0x22E8, symSize: 0x14 }
- { offsetInCU: 0xB01, offset: 0x3121C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU_', symObjAddr: 0x3AC, symBinAddr: 0x2340, symSize: 0x30 }
- { offsetInCU: 0xB41, offset: 0x3125C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU0_', symObjAddr: 0x3DC, symBinAddr: 0x2370, symSize: 0x78 }
- { offsetInCU: 0xB93, offset: 0x312AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVACycfC', symObjAddr: 0x6A8, symBinAddr: 0x263C, symSize: 0x30 }
- { offsetInCU: 0xBD8, offset: 0x312F3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x6D8, symBinAddr: 0x266C, symSize: 0x54 }
- { offsetInCU: 0xC3D, offset: 0x31358, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV19findAuthorizedMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL5boardSayAA4MoveVGAA5BoardV_tF', symObjAddr: 0x72C, symBinAddr: 0x26C0, symSize: 0x458 }
- { offsetInCU: 0x15D4, offset: 0x31CEF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12findRatMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0xB84, symBinAddr: 0x2B18, symSize: 0x62C }
- { offsetInCU: 0x1FE8, offset: 0x32703, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV17findElephantMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x11B0, symBinAddr: 0x3144, symSize: 0x5F8 }
- { offsetInCU: 0x295A, offset: 0x33075, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16findDefaultMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x17A8, symBinAddr: 0x373C, symSize: 0x6C4 }
- { offsetInCU: 0x340F, offset: 0x33B2A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV21findTigerAndLionMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1E6C, symBinAddr: 0x3E00, symSize: 0x44C }
- { offsetInCU: 0x3A6C, offset: 0x34187, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20findDirectNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x22B8, symBinAddr: 0x424C, symSize: 0x300 }
- { offsetInCU: 0x3FE8, offset: 0x34703, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV26findTigerAndLionNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x25B8, symBinAddr: 0x454C, symSize: 0x56C }
- { offsetInCU: 0x491C, offset: 0x35037, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2B24, symBinAddr: 0x4AB8, symSize: 0x12C }
- { offsetInCU: 0x4AEC, offset: 0x35207, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x2C50, symBinAddr: 0x4BE4, symSize: 0x140 }
- { offsetInCU: 0x4D56, offset: 0x35471, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF', symObjAddr: 0x2D90, symBinAddr: 0x4D24, symSize: 0xA0 }
- { offsetInCU: 0x4E40, offset: 0x3555B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF', symObjAddr: 0x2E30, symBinAddr: 0x4DC4, symSize: 0x104 }
- { offsetInCU: 0x50CF, offset: 0x357EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x2F34, symBinAddr: 0x4EC8, symSize: 0x3C }
- { offsetInCU: 0x51E0, offset: 0x358FB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF', symObjAddr: 0x2F70, symBinAddr: 0x4F04, symSize: 0x188 }
- { offsetInCU: 0x537E, offset: 0x35A99, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF', symObjAddr: 0x30F8, symBinAddr: 0x508C, symSize: 0x424 }
- { offsetInCU: 0x5879, offset: 0x35F94, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0x351C, symBinAddr: 0x54B0, symSize: 0x8 }
- { offsetInCU: 0x588D, offset: 0x35FA8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg', symObjAddr: 0x3524, symBinAddr: 0x54B8, symSize: 0x8 }
- { offsetInCU: 0x58BF, offset: 0x35FDA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11createBoardAA0H0VyFZTW', symObjAddr: 0x352C, symBinAddr: 0x54C0, symSize: 0x78 }
- { offsetInCU: 0x590C, offset: 0x36027, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10checkBoardyyAA0H0VKFZTW', symObjAddr: 0x35A4, symBinAddr: 0x5538, symSize: 0x14 }
- { offsetInCU: 0x5944, offset: 0x3605F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0x35B8, symBinAddr: 0x554C, symSize: 0x4 }
- { offsetInCU: 0x5960, offset: 0x3607B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0x35BC, symBinAddr: 0x5550, symSize: 0x14 }
- { offsetInCU: 0x597C, offset: 0x36097, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0x35D0, symBinAddr: 0x5564, symSize: 0x14 }
- { offsetInCU: 0x5998, offset: 0x360B3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itFTW', symObjAddr: 0x35E4, symBinAddr: 0x5578, symSize: 0x4 }
- { offsetInCU: 0x59B4, offset: 0x360CF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtFTW', symObjAddr: 0x35E8, symBinAddr: 0x557C, symSize: 0x4 }
- { offsetInCU: 0x59D0, offset: 0x360EB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itFTW', symObjAddr: 0x35EC, symBinAddr: 0x5580, symSize: 0x4 }
- { offsetInCU: 0x59EC, offset: 0x36107, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VALtKFTW', symObjAddr: 0x35F0, symBinAddr: 0x5584, symSize: 0x14 }
- { offsetInCU: 0x5A21, offset: 0x3613C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3604, symBinAddr: 0x5598, symSize: 0x8 }
- { offsetInCU: 0x5A41, offset: 0x3615C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3604, symBinAddr: 0x5598, symSize: 0x8 }
- { offsetInCU: 0x5A66, offset: 0x36181, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x360C, symBinAddr: 0x55A0, symSize: 0x8 }
- { offsetInCU: 0x5A86, offset: 0x361A1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x360C, symBinAddr: 0x55A0, symSize: 0x8 }
- { offsetInCU: 0x5A99, offset: 0x361B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZTf4nd_n', symObjAddr: 0x5710, symBinAddr: 0x76A4, symSize: 0x28C }
- { offsetInCU: 0x5E0F, offset: 0x3652A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20initPlacesByCellType33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardVFZTf4nd_n', symObjAddr: 0x599C, symBinAddr: 0x7930, symSize: 0x3A8 }
- { offsetInCU: 0x629F, offset: 0x369BA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV23checkCellsByTypeIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x5D44, symBinAddr: 0x7CD8, symSize: 0x15C }
- { offsetInCU: 0x6492, offset: 0x36BAD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV18checkPiecesIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x5EA0, symBinAddr: 0x7E34, symSize: 0x178 }
- { offsetInCU: 0x6572, offset: 0x36C8D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15checkWaterCells33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6018, symBinAddr: 0x7FAC, symSize: 0xDC }
- { offsetInCU: 0x6689, offset: 0x36DA4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x368, symBinAddr: 0x22FC, symSize: 0x14 }
- { offsetInCU: 0x66A3, offset: 0x36DBE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x37C, symBinAddr: 0x2310, symSize: 0x30 }
- { offsetInCU: 0x66D9, offset: 0x36DF4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x454, symBinAddr: 0x23E8, symSize: 0x30 }
- { offsetInCU: 0x66F3, offset: 0x36E0E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x510, symBinAddr: 0x24A4, symSize: 0x14 }
- { offsetInCU: 0x670D, offset: 0x36E28, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellType_WZ', symObjAddr: 0x524, symBinAddr: 0x24B8, symSize: 0x24 }
- { offsetInCU: 0x6C29, offset: 0x37344, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8setValue_6forKeyyq_n_xtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3614, symBinAddr: 0x55A8, symSize: 0xB0 }
- { offsetInCU: 0x6C9E, offset: 0x373B9, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x36C4, symBinAddr: 0x5658, symSize: 0x70 }
- { offsetInCU: 0x6CCB, offset: 0x373E6, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3734, symBinAddr: 0x56C8, symSize: 0x3C }
- { offsetInCU: 0x6D0E, offset: 0x37429, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3770, symBinAddr: 0x5704, symSize: 0x64 }
- { offsetInCU: 0x6D86, offset: 0x374A1, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x37D4, symBinAddr: 0x5768, symSize: 0xE0 }
- { offsetInCU: 0x6EBE, offset: 0x375D9, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x38B4, symBinAddr: 0x5848, symSize: 0x20 }
- { offsetInCU: 0x6EE1, offset: 0x375FC, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5.resume.0', symObjAddr: 0x38D4, symBinAddr: 0x5868, symSize: 0x10 }
- { offsetInCU: 0x6F24, offset: 0x3763F, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x38E4, symBinAddr: 0x5878, symSize: 0xC8 }
- { offsetInCU: 0x6F8C, offset: 0x376A7, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x39AC, symBinAddr: 0x5940, symSize: 0xE0 }
- { offsetInCU: 0x6FE2, offset: 0x376FD, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3A8C, symBinAddr: 0x5A20, symSize: 0x78 }
- { offsetInCU: 0x704F, offset: 0x3776A, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3B6C, symBinAddr: 0x5B00, symSize: 0x1C0 }
- { offsetInCU: 0x7179, offset: 0x37894, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3D2C, symBinAddr: 0x5CC0, symSize: 0x54 }
- { offsetInCU: 0x724A, offset: 0x37965, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3D80, symBinAddr: 0x5D14, symSize: 0x260 }
- { offsetInCU: 0x740A, offset: 0x37B25, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4080, symBinAddr: 0x6014, symSize: 0x1B0 }
- { offsetInCU: 0x748B, offset: 0x37BA6, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4230, symBinAddr: 0x61C4, symSize: 0x1C8 }
- { offsetInCU: 0x7525, offset: 0x37C40, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x43F8, symBinAddr: 0x638C, symSize: 0x358 }
- { offsetInCU: 0x76A4, offset: 0x37DBF, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4750, symBinAddr: 0x66E4, symSize: 0x344 }
- { offsetInCU: 0x77B7, offset: 0x37ED2, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4A94, symBinAddr: 0x6A28, symSize: 0x154 }
- { offsetInCU: 0x79C2, offset: 0x380DD, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4BE8, symBinAddr: 0x6B7C, symSize: 0x180 }
- { offsetInCU: 0x7BD8, offset: 0x382F3, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x4D68, symBinAddr: 0x6CFC, symSize: 0x190 }
- { offsetInCU: 0x7C3C, offset: 0x38357, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x4EF8, symBinAddr: 0x6E8C, symSize: 0x298 }
- { offsetInCU: 0x7E42, offset: 0x3855D, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5190, symBinAddr: 0x7124, symSize: 0x33C }
- { offsetInCU: 0x8072, offset: 0x3878D, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x54CC, symBinAddr: 0x7460, symSize: 0x1C }
- { offsetInCU: 0x808A, offset: 0x387A5, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x54E8, symBinAddr: 0x747C, symSize: 0x1C }
- { offsetInCU: 0x80D9, offset: 0x387F4, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x5504, symBinAddr: 0x7498, symSize: 0x110 }
- { offsetInCU: 0x8231, offset: 0x3894C, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x5614, symBinAddr: 0x75A8, symSize: 0xFC }
- { offsetInCU: 0x84A2, offset: 0x38BBD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOACs0F0AAWl', symObjAddr: 0x62EC, symBinAddr: 0x8280, symSize: 0x44 }
- { offsetInCU: 0x84B6, offset: 0x38BD1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOACs0G0AAWl', symObjAddr: 0x6330, symBinAddr: 0x82C4, symSize: 0x44 }
- { offsetInCU: 0x84CA, offset: 0x38BE5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwCP', symObjAddr: 0x6374, symBinAddr: 0x8308, symSize: 0x34 }
- { offsetInCU: 0x84DE, offset: 0x38BF9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwxx', symObjAddr: 0x63A8, symBinAddr: 0x833C, symSize: 0x28 }
- { offsetInCU: 0x84F2, offset: 0x38C0D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwcp', symObjAddr: 0x63D0, symBinAddr: 0x8364, symSize: 0x34 }
- { offsetInCU: 0x8506, offset: 0x38C21, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwca', symObjAddr: 0x6404, symBinAddr: 0x8398, symSize: 0x5C }
- { offsetInCU: 0x851A, offset: 0x38C35, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x6460, symBinAddr: 0x83F4, symSize: 0xC }
- { offsetInCU: 0x852E, offset: 0x38C49, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwta', symObjAddr: 0x646C, symBinAddr: 0x8400, symSize: 0x44 }
- { offsetInCU: 0x8542, offset: 0x38C5D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwet', symObjAddr: 0x64B0, symBinAddr: 0x8444, symSize: 0x48 }
- { offsetInCU: 0x8556, offset: 0x38C71, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwst', symObjAddr: 0x64F8, symBinAddr: 0x848C, symSize: 0x3C }
- { offsetInCU: 0x856A, offset: 0x38C85, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVMa', symObjAddr: 0x6534, symBinAddr: 0x84C8, symSize: 0x10 }
- { offsetInCU: 0x857E, offset: 0x38C99, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x6544, symBinAddr: 0x84D8, symSize: 0x40 }
- { offsetInCU: 0x8642, offset: 0x38D5D, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14DouShouQiModel4MoveVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x6684, symBinAddr: 0x8618, symSize: 0x178 }
- { offsetInCU: 0x8713, offset: 0x38E2E, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14DouShouQiModel4MoveV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x67FC, symBinAddr: 0x8790, symSize: 0xC0 }
- { offsetInCU: 0x8922, offset: 0x3903D, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x548, symBinAddr: 0x24DC, symSize: 0x4C }
- { offsetInCU: 0x893E, offset: 0x39059, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x594, symBinAddr: 0x2528, symSize: 0x30 }
- { offsetInCU: 0x89E8, offset: 0x39103, size: 0x8, addend: 0x0, symName: '_$sSh8containsySbxF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x5C4, symBinAddr: 0x2558, symSize: 0xE4 }
- { offsetInCU: 0x8F60, offset: 0x3967B, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5Tf4gd_n', symObjAddr: 0x60F4, symBinAddr: 0x8088, symSize: 0x100 }
- { offsetInCU: 0x9091, offset: 0x397AC, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5BoardV_SiTg5Tf4gd_n', symObjAddr: 0x61F4, symBinAddr: 0x8188, symSize: 0xF8 }
- { offsetInCU: 0x91DE, offset: 0x398F9, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5OwnerO_AC6PlayerCTg5Tf4gd_n', symObjAddr: 0x6584, symBinAddr: 0x8518, symSize: 0x100 }
- { offsetInCU: 0x27, offset: 0x39C38, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0x8C6C, symSize: 0x1C }
- { offsetInCU: 0x4B, offset: 0x39C5C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0x8C6C, symSize: 0x1C }
- { offsetInCU: 0x9A, offset: 0x39CAB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV11descriptionSSvg', symObjAddr: 0x1C, symBinAddr: 0x8C88, symSize: 0xF0 }
- { offsetInCU: 0x1DF, offset: 0x39DF0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg', symObjAddr: 0x10C, symBinAddr: 0x8D78, symSize: 0xC }
- { offsetInCU: 0x1FD, offset: 0x39E0E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg', symObjAddr: 0x118, symBinAddr: 0x8D84, symSize: 0xC }
- { offsetInCU: 0x21B, offset: 0x39E2C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg', symObjAddr: 0x124, symBinAddr: 0x8D90, symSize: 0xC }
- { offsetInCU: 0x239, offset: 0x39E4A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs', symObjAddr: 0x130, symBinAddr: 0x8D9C, symSize: 0xC }
- { offsetInCU: 0x277, offset: 0x39E88, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM', symObjAddr: 0x13C, symBinAddr: 0x8DA8, symSize: 0x10 }
- { offsetInCU: 0x2A5, offset: 0x39EB6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM.resume.0', symObjAddr: 0x14C, symBinAddr: 0x8DB8, symSize: 0x4 }
- { offsetInCU: 0x2D0, offset: 0x39EE1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ', symObjAddr: 0x150, symBinAddr: 0x8DBC, symSize: 0x4 }
- { offsetInCU: 0x2E4, offset: 0x39EF5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x154, symBinAddr: 0x8DC0, symSize: 0x4 }
- { offsetInCU: 0x30F, offset: 0x39F20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x158, symBinAddr: 0x8DC4, symSize: 0x4 }
- { offsetInCU: 0x32F, offset: 0x39F40, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x158, symBinAddr: 0x8DC4, symSize: 0x4 }
- { offsetInCU: 0x340, offset: 0x39F51, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x15C, symBinAddr: 0x8DC8, symSize: 0x58 }
- { offsetInCU: 0x3B4, offset: 0x39FC5, size: 0x8, addend: 0x0, symName: ___swift_memcpy4_1, symObjAddr: 0x1B4, symBinAddr: 0x8E20, symSize: 0xC }
- { offsetInCU: 0x3C8, offset: 0x39FD9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwet', symObjAddr: 0x1C4, symBinAddr: 0x8E2C, symSize: 0x44 }
- { offsetInCU: 0x3DC, offset: 0x39FED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwst', symObjAddr: 0x208, symBinAddr: 0x8E70, symSize: 0x40 }
- { offsetInCU: 0x3F0, offset: 0x3A001, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVMa', symObjAddr: 0x248, symBinAddr: 0x8EB0, symSize: 0x10 }
- { offsetInCU: 0x2B, offset: 0x3A10C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x8EC0, symSize: 0x1A4 }
- { offsetInCU: 0x4F, offset: 0x3A130, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0xB3D0, symBinAddr: 0x19B50, symSize: 0x0 }
- { offsetInCU: 0x1A2, offset: 0x3A283, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x8EC0, symSize: 0x1A4 }
- { offsetInCU: 0x582, offset: 0x3A663, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ', symObjAddr: 0x1A4, symBinAddr: 0x9064, symSize: 0x78 }
- { offsetInCU: 0x5C0, offset: 0x3A6A1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ', symObjAddr: 0x21C, symBinAddr: 0x90DC, symSize: 0x14 }
- { offsetInCU: 0x5DB, offset: 0x3A6BC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVACycfC', symObjAddr: 0x230, symBinAddr: 0x90F0, symSize: 0x30 }
- { offsetInCU: 0x61F, offset: 0x3A700, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x260, symBinAddr: 0x9120, symSize: 0x54 }
- { offsetInCU: 0x683, offset: 0x3A764, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2B4, symBinAddr: 0x9174, symSize: 0x17C }
- { offsetInCU: 0x99E, offset: 0x3AA7F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x430, symBinAddr: 0x92F0, symSize: 0x29C }
- { offsetInCU: 0xCE8, offset: 0x3ADC9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF', symObjAddr: 0x6CC, symBinAddr: 0x958C, symSize: 0xA0 }
- { offsetInCU: 0xDF9, offset: 0x3AEDA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF', symObjAddr: 0x76C, symBinAddr: 0x962C, symSize: 0x10C }
- { offsetInCU: 0x1033, offset: 0x3B114, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x878, symBinAddr: 0x9738, symSize: 0x3C }
- { offsetInCU: 0x1143, offset: 0x3B224, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF', symObjAddr: 0x8B4, symBinAddr: 0x9774, symSize: 0x11C }
- { offsetInCU: 0x12BB, offset: 0x3B39C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF', symObjAddr: 0x9D0, symBinAddr: 0x9890, symSize: 0x1E4 }
- { offsetInCU: 0x1477, offset: 0x3B558, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0xBB4, symBinAddr: 0x9A74, symSize: 0x8 }
- { offsetInCU: 0x148B, offset: 0x3B56C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg', symObjAddr: 0xBBC, symBinAddr: 0x9A7C, symSize: 0x8 }
- { offsetInCU: 0x14BD, offset: 0x3B59E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11createBoardAA0I0VyFZTW', symObjAddr: 0xBC4, symBinAddr: 0x9A84, symSize: 0x78 }
- { offsetInCU: 0x150A, offset: 0x3B5EB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10checkBoardyyAA0I0VKFZTW', symObjAddr: 0xC3C, symBinAddr: 0x9AFC, symSize: 0x14 }
- { offsetInCU: 0x1542, offset: 0x3B623, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0xC50, symBinAddr: 0x9B10, symSize: 0x4 }
- { offsetInCU: 0x155E, offset: 0x3B63F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0xC54, symBinAddr: 0x9B14, symSize: 0x14 }
- { offsetInCU: 0x157A, offset: 0x3B65B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0xC68, symBinAddr: 0x9B28, symSize: 0x14 }
- { offsetInCU: 0x1596, offset: 0x3B677, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itFTW', symObjAddr: 0xC7C, symBinAddr: 0x9B3C, symSize: 0x4 }
- { offsetInCU: 0x15B2, offset: 0x3B693, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtFTW', symObjAddr: 0xC80, symBinAddr: 0x9B40, symSize: 0x4 }
- { offsetInCU: 0x15CE, offset: 0x3B6AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itFTW', symObjAddr: 0xC84, symBinAddr: 0x9B44, symSize: 0x18 }
- { offsetInCU: 0x15EA, offset: 0x3B6CB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VALtKFTW', symObjAddr: 0xC9C, symBinAddr: 0x9B5C, symSize: 0x14 }
- { offsetInCU: 0x161E, offset: 0x3B6FF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCB0, symBinAddr: 0x9B70, symSize: 0x8 }
- { offsetInCU: 0x163E, offset: 0x3B71F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCB0, symBinAddr: 0x9B70, symSize: 0x8 }
- { offsetInCU: 0x1661, offset: 0x3B742, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCB8, symBinAddr: 0x9B78, symSize: 0x8 }
- { offsetInCU: 0x1681, offset: 0x3B762, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCB8, symBinAddr: 0x9B78, symSize: 0x8 }
- { offsetInCU: 0x1693, offset: 0x3B774, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV16checkCellsByType33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xCC0, symBinAddr: 0x9B80, symSize: 0x144 }
- { offsetInCU: 0x1895, offset: 0x3B976, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11checkPieces33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xE04, symBinAddr: 0x9CC4, symSize: 0x220 }
- { offsetInCU: 0x1BFD, offset: 0x3BCDE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZTf4nd_n', symObjAddr: 0x1024, symBinAddr: 0x9EE4, symSize: 0xB8 }
- { offsetInCU: 0x1E82, offset: 0x3BF63, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwCP', symObjAddr: 0x11A4, symBinAddr: 0x9F9C, symSize: 0x34 }
- { offsetInCU: 0x1E96, offset: 0x3BF77, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwxx', symObjAddr: 0x11D8, symBinAddr: 0x9FD0, symSize: 0x28 }
- { offsetInCU: 0x1EAA, offset: 0x3BF8B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwcp', symObjAddr: 0x1200, symBinAddr: 0x9FF8, symSize: 0x34 }
- { offsetInCU: 0x1EBE, offset: 0x3BF9F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwca', symObjAddr: 0x1234, symBinAddr: 0xA02C, symSize: 0x5C }
- { offsetInCU: 0x1ED2, offset: 0x3BFB3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwta', symObjAddr: 0x129C, symBinAddr: 0xA088, symSize: 0x44 }
- { offsetInCU: 0x1EE6, offset: 0x3BFC7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwet', symObjAddr: 0x12E0, symBinAddr: 0xA0CC, symSize: 0x48 }
- { offsetInCU: 0x1EFA, offset: 0x3BFDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwst', symObjAddr: 0x1328, symBinAddr: 0xA114, symSize: 0x3C }
- { offsetInCU: 0x1F0E, offset: 0x3BFEF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVMa', symObjAddr: 0x1364, symBinAddr: 0xA150, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x3C377, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xA1D8, symSize: 0x68 }
- { offsetInCU: 0x7A, offset: 0x3C3A6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfd', symObjAddr: 0x88, symBinAddr: 0xA260, symSize: 0x24 }
- { offsetInCU: 0x97, offset: 0x3C3C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF', symObjAddr: 0xAC, symBinAddr: 0xA284, symSize: 0xE4 }
- { offsetInCU: 0x1C2, offset: 0x3C4EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF', symObjAddr: 0x190, symBinAddr: 0xA368, symSize: 0x28 }
- { offsetInCU: 0x252, offset: 0x3C57E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY0_', symObjAddr: 0x1B8, symBinAddr: 0xA390, symSize: 0x10C }
- { offsetInCU: 0x3DB, offset: 0x3C707, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTQ1_', symObjAddr: 0x2C4, symBinAddr: 0xA49C, symSize: 0x70 }
- { offsetInCU: 0x49A, offset: 0x3C7C6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY2_', symObjAddr: 0x334, symBinAddr: 0xA50C, symSize: 0xFC }
- { offsetInCU: 0x58F, offset: 0x3C8BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY3_', symObjAddr: 0x430, symBinAddr: 0xA608, symSize: 0x40 }
- { offsetInCU: 0x601, offset: 0x3C92D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC4nameSSvg', symObjAddr: 0x470, symBinAddr: 0xA648, symSize: 0x2C }
- { offsetInCU: 0x630, offset: 0x3C95C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC2idAA5OwnerOvg', symObjAddr: 0x49C, symBinAddr: 0xA674, symSize: 0xC }
- { offsetInCU: 0x693, offset: 0x3C9BF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x4A8, symBinAddr: 0xA680, symSize: 0x98 }
- { offsetInCU: 0x6C8, offset: 0x3C9F4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x540, symBinAddr: 0xA718, symSize: 0xC }
- { offsetInCU: 0x738, offset: 0x3CA64, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfD', symObjAddr: 0x6F4, symBinAddr: 0xA8CC, symSize: 0x2C }
- { offsetInCU: 0x77C, offset: 0x3CAA8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCMa', symObjAddr: 0x68, symBinAddr: 0xA240, symSize: 0x20 }
- { offsetInCU: 0x883, offset: 0x3CBAF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TR', symObjAddr: 0x54C, symBinAddr: 0xA724, symSize: 0x6C }
- { offsetInCU: 0x8B6, offset: 0x3CBE2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTQ0_', symObjAddr: 0x5B8, symBinAddr: 0xA790, symSize: 0x48 }
- { offsetInCU: 0x904, offset: 0x3CC30, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x624, symBinAddr: 0xA7FC, symSize: 0x88 }
- { offsetInCU: 0x934, offset: 0x3CC60, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTATQ0_', symObjAddr: 0x6AC, symBinAddr: 0xA884, symSize: 0x48 }
- { offsetInCU: 0x9FE, offset: 0x3CD2A, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSi3row_Si3colt_Tg5', symObjAddr: 0x82C, symBinAddr: 0xAA04, symSize: 0xFC }
- { offsetInCU: 0xBA1, offset: 0x3CECD, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x968, symBinAddr: 0xAB00, symSize: 0x110 }
- { offsetInCU: 0xD44, offset: 0x3D070, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0xA78, symBinAddr: 0xAC10, symSize: 0xFC }
- { offsetInCU: 0xEF2, offset: 0x3D21E, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0xB74, symBinAddr: 0xAD0C, symSize: 0x128 }
- { offsetInCU: 0x27, offset: 0x3D541, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xAFB4, symSize: 0x4 }
- { offsetInCU: 0x3F, offset: 0x3D559, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwCP', symObjAddr: 0x10, symBinAddr: 0xAFC4, symSize: 0x48 }
- { offsetInCU: 0x53, offset: 0x3D56D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwxx', symObjAddr: 0x58, symBinAddr: 0xB00C, symSize: 0x18 }
- { offsetInCU: 0x67, offset: 0x3D581, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwcp', symObjAddr: 0x70, symBinAddr: 0xB024, symSize: 0x48 }
- { offsetInCU: 0x7B, offset: 0x3D595, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwca', symObjAddr: 0xB8, symBinAddr: 0xB06C, symSize: 0xA0 }
- { offsetInCU: 0x8F, offset: 0x3D5A9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwta', symObjAddr: 0x164, symBinAddr: 0xB10C, symSize: 0x60 }
- { offsetInCU: 0xA3, offset: 0x3D5BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwet', symObjAddr: 0x1C4, symBinAddr: 0xB16C, symSize: 0x58 }
- { offsetInCU: 0xB7, offset: 0x3D5D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwst', symObjAddr: 0x21C, symBinAddr: 0xB1C4, symSize: 0x54 }
- { offsetInCU: 0xCB, offset: 0x3D5E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwug', symObjAddr: 0x270, symBinAddr: 0xB218, symSize: 0x18 }
- { offsetInCU: 0xDF, offset: 0x3D5F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwup', symObjAddr: 0x288, symBinAddr: 0xB230, symSize: 0x4 }
- { offsetInCU: 0xF3, offset: 0x3D60D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwui', symObjAddr: 0x28C, symBinAddr: 0xB234, symSize: 0x20 }
- { offsetInCU: 0x107, offset: 0x3D621, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOMa', symObjAddr: 0x2AC, symBinAddr: 0xB254, symSize: 0x10 }
- { offsetInCU: 0x12C, offset: 0x3D646, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xAFB4, symSize: 0x4 }
- { offsetInCU: 0x148, offset: 0x3D662, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP5_codeSivgTW', symObjAddr: 0x4, symBinAddr: 0xAFB8, symSize: 0x4 }
- { offsetInCU: 0x164, offset: 0x3D67E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x8, symBinAddr: 0xAFBC, symSize: 0x4 }
- { offsetInCU: 0x180, offset: 0x3D69A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0xC, symBinAddr: 0xAFC0, symSize: 0x4 }
- { offsetInCU: 0x27, offset: 0x3D72E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xB264, symSize: 0x28 }
- { offsetInCU: 0x52, offset: 0x3D759, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xB264, symSize: 0x28 }
- { offsetInCU: 0xC5, offset: 0x3D7CC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY0_', symObjAddr: 0x28, symBinAddr: 0xB28C, symSize: 0x1B4 }
- { offsetInCU: 0x3A6, offset: 0x3DAAD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTQ1_', symObjAddr: 0x1DC, symBinAddr: 0xB440, symSize: 0x70 }
- { offsetInCU: 0x4A7, offset: 0x3DBAE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY2_', symObjAddr: 0x24C, symBinAddr: 0xB4B0, symSize: 0x104 }
- { offsetInCU: 0x5DD, offset: 0x3DCE4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY3_', symObjAddr: 0x350, symBinAddr: 0xB5B4, symSize: 0x4C }
- { offsetInCU: 0x6C4, offset: 0x3DDCB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x3C0, symBinAddr: 0xB624, symSize: 0x9C }
- { offsetInCU: 0x71B, offset: 0x3DE22, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x45C, symBinAddr: 0xB6C0, symSize: 0x6C }
- { offsetInCU: 0x76C, offset: 0x3DE73, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfd', symObjAddr: 0x4C8, symBinAddr: 0xB72C, symSize: 0x24 }
- { offsetInCU: 0x7CB, offset: 0x3DED2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfD', symObjAddr: 0x4EC, symBinAddr: 0xB750, symSize: 0x2C }
- { offsetInCU: 0x9ED, offset: 0x3E0F4, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x39C, symBinAddr: 0xB600, symSize: 0x24 }
- { offsetInCU: 0xA98, offset: 0x3E19F, size: 0x8, addend: 0x0, symName: '_$sSGsE4next10upperBoundqd__qd___ts17FixedWidthIntegerRd__SURd__lFs27SystemRandomNumberGeneratorV_SuTg5', symObjAddr: 0x518, symBinAddr: 0xB77C, symSize: 0x88 }
- { offsetInCU: 0xB39, offset: 0x3E240, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCMa', symObjAddr: 0x5A0, symBinAddr: 0xB804, symSize: 0x20 }
- { offsetInCU: 0x27, offset: 0x3E3EC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xB824, symSize: 0x48 }
- { offsetInCU: 0x6C, offset: 0x3E431, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xB824, symSize: 0x48 }
- { offsetInCU: 0xDB, offset: 0x3E4A0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ', symObjAddr: 0x88, symBinAddr: 0xB86C, symSize: 0x14 }
- { offsetInCU: 0x10E, offset: 0x3E4D3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF', symObjAddr: 0x9C, symBinAddr: 0xB880, symSize: 0x28 }
- { offsetInCU: 0x1A4, offset: 0x3E569, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO9hashValueSivg', symObjAddr: 0xC4, symBinAddr: 0xB8A8, symSize: 0x44 }
- { offsetInCU: 0x29E, offset: 0x3E663, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x108, symBinAddr: 0xB8EC, symSize: 0x14 }
- { offsetInCU: 0x2BE, offset: 0x3E683, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x108, symBinAddr: 0xB8EC, symSize: 0x14 }
- { offsetInCU: 0x2FE, offset: 0x3E6C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH9hashValueSivgTW', symObjAddr: 0x11C, symBinAddr: 0xB900, symSize: 0x44 }
- { offsetInCU: 0x3E1, offset: 0x3E7A6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x160, symBinAddr: 0xB944, symSize: 0x28 }
- { offsetInCU: 0x46D, offset: 0x3E832, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAAsADP8allCases03AllJ0QzvgZTW', symObjAddr: 0x2A4, symBinAddr: 0xBA88, symSize: 0x58 }
- { offsetInCU: 0x509, offset: 0x3E8CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASQWb', symObjAddr: 0x1C8, symBinAddr: 0xB9AC, symSize: 0x4 }
- { offsetInCU: 0x51D, offset: 0x3E8E2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOACSQAAWl', symObjAddr: 0x1CC, symBinAddr: 0xB9B0, symSize: 0x44 }
- { offsetInCU: 0x531, offset: 0x3E8F6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x210, symBinAddr: 0xB9F4, symSize: 0x4 }
- { offsetInCU: 0x545, offset: 0x3E90A, size: 0x8, addend: 0x0, symName: '_$sSay14DouShouQiModel8CellTypeOGSayxGSlsWl', symObjAddr: 0x214, symBinAddr: 0xB9F8, symSize: 0x4C }
- { offsetInCU: 0x559, offset: 0x3E91E, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x260, symBinAddr: 0xBA44, symSize: 0x44 }
- { offsetInCU: 0x56D, offset: 0x3E932, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwet', symObjAddr: 0x30C, symBinAddr: 0xBAE0, symSize: 0x90 }
- { offsetInCU: 0x581, offset: 0x3E946, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwst', symObjAddr: 0x39C, symBinAddr: 0xBB70, symSize: 0xBC }
- { offsetInCU: 0x595, offset: 0x3E95A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwug', symObjAddr: 0x458, symBinAddr: 0xBC2C, symSize: 0x8 }
- { offsetInCU: 0x5A9, offset: 0x3E96E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwup', symObjAddr: 0x460, symBinAddr: 0xBC34, symSize: 0x4 }
- { offsetInCU: 0x5BD, offset: 0x3E982, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwui', symObjAddr: 0x464, symBinAddr: 0xBC38, symSize: 0x8 }
- { offsetInCU: 0x5D1, offset: 0x3E996, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOMa', symObjAddr: 0x46C, symBinAddr: 0xBC40, symSize: 0x10 }
- { offsetInCU: 0x63E, offset: 0x3EA03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x188, symBinAddr: 0xB96C, symSize: 0x40 }
- { offsetInCU: 0x2B, offset: 0x3EB43, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xBC50, symSize: 0x68 }
- { offsetInCU: 0xA6, offset: 0x3EBBE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xBC50, symSize: 0x68 }
- { offsetInCU: 0x2B0, offset: 0x3EDC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF', symObjAddr: 0x68, symBinAddr: 0xBCB8, symSize: 0x1C0 }
- { offsetInCU: 0x583, offset: 0x3F09B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF', symObjAddr: 0x228, symBinAddr: 0xBE78, symSize: 0xD0 }
- { offsetInCU: 0x7F1, offset: 0x3F309, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6nbRowsSivg', symObjAddr: 0x2F8, symBinAddr: 0xBF48, symSize: 0x8 }
- { offsetInCU: 0x80F, offset: 0x3F327, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9nbColumnsSivg', symObjAddr: 0x300, symBinAddr: 0xBF50, symSize: 0x8 }
- { offsetInCU: 0x82D, offset: 0x3F345, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg', symObjAddr: 0x308, symBinAddr: 0xBF58, symSize: 0x8 }
- { offsetInCU: 0x84B, offset: 0x3F363, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF', symObjAddr: 0x310, symBinAddr: 0xBF60, symSize: 0xD0 }
- { offsetInCU: 0xA02, offset: 0x3F51A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF', symObjAddr: 0x3E0, symBinAddr: 0xC030, symSize: 0x150 }
- { offsetInCU: 0xC18, offset: 0x3F730, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF', symObjAddr: 0x530, symBinAddr: 0xC180, symSize: 0x14C }
- { offsetInCU: 0xE35, offset: 0x3F94D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ', symObjAddr: 0x67C, symBinAddr: 0xC2CC, symSize: 0x28 }
- { offsetInCU: 0xE77, offset: 0x3F98F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9hashValueSivg', symObjAddr: 0x6A4, symBinAddr: 0xC2F4, symSize: 0x50 }
- { offsetInCU: 0xF03, offset: 0x3FA1B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH9hashValueSivgTW', symObjAddr: 0x6F4, symBinAddr: 0xC344, symSize: 0x50 }
- { offsetInCU: 0xF92, offset: 0x3FAAA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x744, symBinAddr: 0xC394, symSize: 0x4 }
- { offsetInCU: 0xFC0, offset: 0x3FAD8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x794, symBinAddr: 0xC3E4, symSize: 0x28 }
- { offsetInCU: 0x125D, offset: 0x3FD75, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x7BC, symBinAddr: 0xC40C, symSize: 0x14 }
- { offsetInCU: 0x1295, offset: 0x3FDAD, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x7D0, symBinAddr: 0xC420, symSize: 0x14 }
- { offsetInCU: 0x12CD, offset: 0x3FDE5, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0x7E4, symBinAddr: 0xC434, symSize: 0x14 }
- { offsetInCU: 0x1305, offset: 0x3FE1D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASQWb', symObjAddr: 0x9B0, symBinAddr: 0xC600, symSize: 0x4 }
- { offsetInCU: 0x1319, offset: 0x3FE31, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVACSQAAWl', symObjAddr: 0x9B4, symBinAddr: 0xC604, symSize: 0x44 }
- { offsetInCU: 0x132D, offset: 0x3FE45, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwCP', symObjAddr: 0x9F8, symBinAddr: 0xC648, symSize: 0x34 }
- { offsetInCU: 0x1341, offset: 0x3FE59, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwxx', symObjAddr: 0xA2C, symBinAddr: 0xC67C, symSize: 0x8 }
- { offsetInCU: 0x1355, offset: 0x3FE6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwcp', symObjAddr: 0xA34, symBinAddr: 0xC684, symSize: 0x34 }
- { offsetInCU: 0x1369, offset: 0x3FE81, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwca', symObjAddr: 0xA68, symBinAddr: 0xC6B8, symSize: 0x48 }
- { offsetInCU: 0x137D, offset: 0x3FE95, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0xAB0, symBinAddr: 0xC700, symSize: 0x14 }
- { offsetInCU: 0x1391, offset: 0x3FEA9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwta', symObjAddr: 0xAC4, symBinAddr: 0xC714, symSize: 0x38 }
- { offsetInCU: 0x13A5, offset: 0x3FEBD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwet', symObjAddr: 0xAFC, symBinAddr: 0xC74C, symSize: 0x48 }
- { offsetInCU: 0x13B9, offset: 0x3FED1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwst', symObjAddr: 0xB44, symBinAddr: 0xC794, symSize: 0x40 }
- { offsetInCU: 0x13CD, offset: 0x3FEE5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVMa', symObjAddr: 0xB84, symBinAddr: 0xC7D4, symSize: 0x10 }
- { offsetInCU: 0x1532, offset: 0x4004A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x748, symBinAddr: 0xC398, symSize: 0x4C }
- { offsetInCU: 0x1570, offset: 0x40088, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xC448, symSize: 0x98 }
- { offsetInCU: 0x1590, offset: 0x400A8, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xC448, symSize: 0x98 }
- { offsetInCU: 0x15A4, offset: 0x400BC, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xC448, symSize: 0x98 }
- { offsetInCU: 0x15B8, offset: 0x400D0, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0xC448, symSize: 0x98 }
- { offsetInCU: 0x1644, offset: 0x4015C, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSay14DouShouQiModel4CellVG_Tg5Tf4nnd_n', symObjAddr: 0x890, symBinAddr: 0xC4E0, symSize: 0x120 }
- { offsetInCU: 0x27, offset: 0x403A5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xC7E4, symSize: 0x14 }
- { offsetInCU: 0x46, offset: 0x403C4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xC7E4, symSize: 0x14 }
- { offsetInCU: 0x85, offset: 0x40403, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV11descriptionSSvg', symObjAddr: 0x14, symBinAddr: 0xC7F8, symSize: 0xB4 }
- { offsetInCU: 0x176, offset: 0x404F4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg', symObjAddr: 0xC8, symBinAddr: 0xC8AC, symSize: 0xC }
- { offsetInCU: 0x194, offset: 0x40512, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV6animalAA6AnimalOvg', symObjAddr: 0xD4, symBinAddr: 0xC8B8, symSize: 0xC }
- { offsetInCU: 0x1B2, offset: 0x40530, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF', symObjAddr: 0xE0, symBinAddr: 0xC8C4, symSize: 0x3C }
- { offsetInCU: 0x2E8, offset: 0x40666, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ', symObjAddr: 0x11C, symBinAddr: 0xC900, symSize: 0x20 }
- { offsetInCU: 0x355, offset: 0x406D3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9hashValueSivg', symObjAddr: 0x13C, symBinAddr: 0xC920, symSize: 0x5C }
- { offsetInCU: 0x4EB, offset: 0x40869, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x198, symBinAddr: 0xC97C, symSize: 0x4 }
- { offsetInCU: 0x516, offset: 0x40894, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH9hashValueSivgTW', symObjAddr: 0x19C, symBinAddr: 0xC980, symSize: 0x5C }
- { offsetInCU: 0x6C9, offset: 0x40A47, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1F8, symBinAddr: 0xC9DC, symSize: 0x3C }
- { offsetInCU: 0x82D, offset: 0x40BAB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x28C, symBinAddr: 0xCA70, symSize: 0x20 }
- { offsetInCU: 0x84D, offset: 0x40BCB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x28C, symBinAddr: 0xCA70, symSize: 0x20 }
- { offsetInCU: 0x949, offset: 0x40CC7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASQWb', symObjAddr: 0x2AC, symBinAddr: 0xCA90, symSize: 0x4 }
- { offsetInCU: 0x95D, offset: 0x40CDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVACSQAAWl', symObjAddr: 0x2B0, symBinAddr: 0xCA94, symSize: 0x44 }
- { offsetInCU: 0x971, offset: 0x40CEF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwet', symObjAddr: 0x304, symBinAddr: 0xCAD8, symSize: 0x94 }
- { offsetInCU: 0x985, offset: 0x40D03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwst', symObjAddr: 0x398, symBinAddr: 0xCB6C, symSize: 0xBC }
- { offsetInCU: 0x999, offset: 0x40D17, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVMa', symObjAddr: 0x454, symBinAddr: 0xCC28, symSize: 0x10 }
- { offsetInCU: 0xA44, offset: 0x40DC2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x234, symBinAddr: 0xCA18, symSize: 0x58 }
- { offsetInCU: 0x27, offset: 0x40FC1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xCC38, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x40FE5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xCC38, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x41008, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x14, symBinAddr: 0xCC4C, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x41028, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x14, symBinAddr: 0xCC4C, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x41039, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x18, symBinAddr: 0xCC50, symSize: 0x118 }
- { offsetInCU: 0x1AE, offset: 0x41148, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwCP', symObjAddr: 0x130, symBinAddr: 0xCD68, symSize: 0x30 }
- { offsetInCU: 0x1C2, offset: 0x4115C, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x164, symBinAddr: 0xCD98, symSize: 0x14 }
- { offsetInCU: 0x1D6, offset: 0x41170, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwet', symObjAddr: 0x178, symBinAddr: 0xCDAC, symSize: 0x48 }
- { offsetInCU: 0x1EA, offset: 0x41184, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwst', symObjAddr: 0x1C0, symBinAddr: 0xCDF4, symSize: 0x48 }
- { offsetInCU: 0x1FE, offset: 0x41198, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwug', symObjAddr: 0x208, symBinAddr: 0xCE3C, symSize: 0x18 }
- { offsetInCU: 0x212, offset: 0x411AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwup', symObjAddr: 0x220, symBinAddr: 0xCE54, symSize: 0x4 }
- { offsetInCU: 0x226, offset: 0x411C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwui', symObjAddr: 0x224, symBinAddr: 0xCE58, symSize: 0x1C }
- { offsetInCU: 0x23A, offset: 0x411D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOMa', symObjAddr: 0x240, symBinAddr: 0xCE74, symSize: 0x10 }
- { offsetInCU: 0x25F, offset: 0x411F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP7_domainSSvgTW', symObjAddr: 0x4, symBinAddr: 0xCC3C, symSize: 0x4 }
- { offsetInCU: 0x27B, offset: 0x41215, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP5_codeSivgTW', symObjAddr: 0x8, symBinAddr: 0xCC40, symSize: 0x4 }
- { offsetInCU: 0x297, offset: 0x41231, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0xC, symBinAddr: 0xCC44, symSize: 0x4 }
- { offsetInCU: 0x2B3, offset: 0x4124D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x10, symBinAddr: 0xCC48, symSize: 0x4 }
- { offsetInCU: 0x27, offset: 0x412F6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xCE84, symSize: 0x14 }
- { offsetInCU: 0x4B, offset: 0x4131A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xCE84, symSize: 0x14 }
- { offsetInCU: 0x7E, offset: 0x4134D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg', symObjAddr: 0x14, symBinAddr: 0xCE98, symSize: 0x18 }
- { offsetInCU: 0xA9, offset: 0x41378, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF', symObjAddr: 0x2C, symBinAddr: 0xCEB0, symSize: 0x28 }
- { offsetInCU: 0x13F, offset: 0x4140E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO9hashValueSivg', symObjAddr: 0x54, symBinAddr: 0xCED8, symSize: 0x44 }
- { offsetInCU: 0x239, offset: 0x41508, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x98, symBinAddr: 0xCF1C, symSize: 0x14 }
- { offsetInCU: 0x259, offset: 0x41528, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x98, symBinAddr: 0xCF1C, symSize: 0x14 }
- { offsetInCU: 0x299, offset: 0x41568, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH9hashValueSivgTW', symObjAddr: 0xAC, symBinAddr: 0xCF30, symSize: 0x44 }
- { offsetInCU: 0x37C, offset: 0x4164B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xF0, symBinAddr: 0xCF74, symSize: 0x28 }
- { offsetInCU: 0x405, offset: 0x416D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASQWb', symObjAddr: 0x158, symBinAddr: 0xCFDC, symSize: 0x4 }
- { offsetInCU: 0x419, offset: 0x416E8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOACSQAAWl', symObjAddr: 0x15C, symBinAddr: 0xCFE0, symSize: 0x44 }
- { offsetInCU: 0x42D, offset: 0x416FC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwet', symObjAddr: 0x1B0, symBinAddr: 0xD024, symSize: 0x90 }
- { offsetInCU: 0x441, offset: 0x41710, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwst', symObjAddr: 0x240, symBinAddr: 0xD0B4, symSize: 0xBC }
- { offsetInCU: 0x455, offset: 0x41724, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwug', symObjAddr: 0x2FC, symBinAddr: 0xD170, symSize: 0x8 }
- { offsetInCU: 0x469, offset: 0x41738, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwup', symObjAddr: 0x304, symBinAddr: 0xD178, symSize: 0x4 }
- { offsetInCU: 0x47D, offset: 0x4174C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwui', symObjAddr: 0x308, symBinAddr: 0xD17C, symSize: 0x8 }
- { offsetInCU: 0x491, offset: 0x41760, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOMa', symObjAddr: 0x310, symBinAddr: 0xD184, symSize: 0x10 }
- { offsetInCU: 0x4E9, offset: 0x417B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x118, symBinAddr: 0xCF9C, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x418E2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xD194, symSize: 0x6C }
- { offsetInCU: 0xAC, offset: 0x41967, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xD194, symSize: 0x6C }
- { offsetInCU: 0xF0, offset: 0x419AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfd', symObjAddr: 0x6C, symBinAddr: 0xD200, symSize: 0x24 }
- { offsetInCU: 0x155, offset: 0x41A10, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x90, symBinAddr: 0xD224, symSize: 0x9C }
- { offsetInCU: 0x1BD, offset: 0x41A78, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfD', symObjAddr: 0x12C, symBinAddr: 0xD2C0, symSize: 0x2C }
- { offsetInCU: 0x217, offset: 0x41AD2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCMa', symObjAddr: 0x158, symBinAddr: 0xD2EC, symSize: 0x20 }
- { offsetInCU: 0x27, offset: 0x41B95, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xD30C, symSize: 0x4 }
- { offsetInCU: 0x46, offset: 0x41BB4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0xD30C, symSize: 0x4 }
- { offsetInCU: 0x5A, offset: 0x41BC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfC', symObjAddr: 0x4, symBinAddr: 0xD310, symSize: 0x14 }
- { offsetInCU: 0xC1, offset: 0x41C2F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg', symObjAddr: 0x18, symBinAddr: 0xD324, symSize: 0xC }
- { offsetInCU: 0xDF, offset: 0x41C4D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV9rowOriginSivg', symObjAddr: 0x24, symBinAddr: 0xD330, symSize: 0x8 }
- { offsetInCU: 0xFD, offset: 0x41C6B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV12columnOriginSivg', symObjAddr: 0x2C, symBinAddr: 0xD338, symSize: 0x8 }
- { offsetInCU: 0x11B, offset: 0x41C89, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV14rowDestinationSivg', symObjAddr: 0x34, symBinAddr: 0xD340, symSize: 0x8 }
- { offsetInCU: 0x139, offset: 0x41CA7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV17columnDestinationSivg', symObjAddr: 0x3C, symBinAddr: 0xD348, symSize: 0x8 }
- { offsetInCU: 0x157, offset: 0x41CC5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV11descriptionSSvg', symObjAddr: 0x44, symBinAddr: 0xD350, symSize: 0x198 }
- { offsetInCU: 0x287, offset: 0x41DF5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1DC, symBinAddr: 0xD4E8, symSize: 0x4 }
- { offsetInCU: 0x2B2, offset: 0x41E20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1E0, symBinAddr: 0xD4EC, symSize: 0x4 }
- { offsetInCU: 0x2D2, offset: 0x41E40, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1E0, symBinAddr: 0xD4EC, symSize: 0x4 }
- { offsetInCU: 0x2E3, offset: 0x41E51, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1E4, symBinAddr: 0xD4F0, symSize: 0x48 }
- { offsetInCU: 0x316, offset: 0x41E84, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwCP', symObjAddr: 0x22C, symBinAddr: 0xD538, symSize: 0x30 }
- { offsetInCU: 0x32A, offset: 0x41E98, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x260, symBinAddr: 0xD568, symSize: 0x14 }
- { offsetInCU: 0x33E, offset: 0x41EAC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwet', symObjAddr: 0x274, symBinAddr: 0xD57C, symSize: 0x44 }
- { offsetInCU: 0x352, offset: 0x41EC0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwst', symObjAddr: 0x2B8, symBinAddr: 0xD5C0, symSize: 0x4C }
- { offsetInCU: 0x366, offset: 0x41ED4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVMa', symObjAddr: 0x304, symBinAddr: 0xD60C, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x41FC5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0xD61C, symSize: 0xC }
- { offsetInCU: 0x4B, offset: 0x41FE9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0xD61C, symSize: 0xC }
- { offsetInCU: 0x66, offset: 0x42004, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfC', symObjAddr: 0xC, symBinAddr: 0xD628, symSize: 0x18 }
- { offsetInCU: 0xB8, offset: 0x42056, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0x130, symBinAddr: 0xD74C, symSize: 0x8 }
- { offsetInCU: 0xD4, offset: 0x42072, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x138, symBinAddr: 0xD754, symSize: 0x10 }
- { offsetInCU: 0xEC, offset: 0x4208A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x138, symBinAddr: 0xD754, symSize: 0x10 }
- { offsetInCU: 0x109, offset: 0x420A7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASQWb', symObjAddr: 0x38, symBinAddr: 0xD654, symSize: 0x4 }
- { offsetInCU: 0x11D, offset: 0x420BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOACSQAAWl', symObjAddr: 0x3C, symBinAddr: 0xD658, symSize: 0x44 }
- { offsetInCU: 0x147, offset: 0x420E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwet', symObjAddr: 0x158, symBinAddr: 0xD764, symSize: 0x90 }
- { offsetInCU: 0x15B, offset: 0x420F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwst', symObjAddr: 0x1E8, symBinAddr: 0xD7F4, symSize: 0xBC }
- { offsetInCU: 0x16F, offset: 0x4210D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwug', symObjAddr: 0x2A4, symBinAddr: 0xD8B0, symSize: 0x8 }
- { offsetInCU: 0x183, offset: 0x42121, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwup', symObjAddr: 0x2AC, symBinAddr: 0xD8B8, symSize: 0x4 }
- { offsetInCU: 0x197, offset: 0x42135, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwui', symObjAddr: 0x2B0, symBinAddr: 0xD8BC, symSize: 0x8 }
- { offsetInCU: 0x1AB, offset: 0x42149, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOMa', symObjAddr: 0x2B8, symBinAddr: 0xD8C4, symSize: 0x10 }
- { offsetInCU: 0x1E5, offset: 0x42183, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x24, symBinAddr: 0xD640, symSize: 0x14 }
- { offsetInCU: 0x276, offset: 0x42214, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH9hashValueSivgTW', symObjAddr: 0x80, symBinAddr: 0xD69C, symSize: 0x44 }
- { offsetInCU: 0x34E, offset: 0x422EC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xC4, symBinAddr: 0xD6E0, symSize: 0x2C }
- { offsetInCU: 0x3CA, offset: 0x42368, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xF0, symBinAddr: 0xD70C, symSize: 0x40 }
- { offsetInCU: 0x97, offset: 0x42506, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvg', symObjAddr: 0xBC, symBinAddr: 0xD990, symSize: 0x4C }
- { offsetInCU: 0xE0, offset: 0x4254F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvg', symObjAddr: 0x16C, symBinAddr: 0xDA40, symSize: 0x48 }
- { offsetInCU: 0xFF, offset: 0x4256E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg', symObjAddr: 0x1F8, symBinAddr: 0xDACC, symSize: 0x8 }
- { offsetInCU: 0x12C, offset: 0x4259B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfC', symObjAddr: 0x200, symBinAddr: 0xDAD4, symSize: 0x64 }
- { offsetInCU: 0x151, offset: 0x425C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc', symObjAddr: 0x264, symBinAddr: 0xDB38, symSize: 0x464 }
- { offsetInCU: 0x553, offset: 0x429C2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_', symObjAddr: 0x7B0, symBinAddr: 0xDFDC, symSize: 0x84 }
- { offsetInCU: 0x602, offset: 0x42A71, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TQ0_', symObjAddr: 0x834, symBinAddr: 0xE060, symSize: 0x68 }
- { offsetInCU: 0x69B, offset: 0x42B0A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TY2_', symObjAddr: 0x89C, symBinAddr: 0xE0C8, symSize: 0x1C }
- { offsetInCU: 0x6E0, offset: 0x42B4F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_', symObjAddr: 0x8B8, symBinAddr: 0xE0E4, symSize: 0x84 }
- { offsetInCU: 0x78F, offset: 0x42BFE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TQ0_', symObjAddr: 0x93C, symBinAddr: 0xE168, symSize: 0x68 }
- { offsetInCU: 0x828, offset: 0x42C97, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY1_', symObjAddr: 0x9A4, symBinAddr: 0xE1D0, symSize: 0xC }
- { offsetInCU: 0x882, offset: 0x42CF1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY2_', symObjAddr: 0x9B0, symBinAddr: 0xE1DC, symSize: 0x1C }
- { offsetInCU: 0x8C7, offset: 0x42D36, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfC', symObjAddr: 0x9CC, symBinAddr: 0xE1F8, symSize: 0x6C }
- { offsetInCU: 0x8EC, offset: 0x42D5B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc', symObjAddr: 0xA38, symBinAddr: 0xE264, symSize: 0x2C4 }
- { offsetInCU: 0x9E9, offset: 0x42E58, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF', symObjAddr: 0xCFC, symBinAddr: 0xE528, symSize: 0xD4 }
- { offsetInCU: 0xB14, offset: 0x42F83, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF', symObjAddr: 0xDD0, symBinAddr: 0xE5FC, symSize: 0xD4 }
- { offsetInCU: 0xC3F, offset: 0x430AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF', symObjAddr: 0xF58, symBinAddr: 0xE784, symSize: 0xD4 }
- { offsetInCU: 0xD6A, offset: 0x431D9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF', symObjAddr: 0x108C, symBinAddr: 0xE8B8, symSize: 0xD4 }
- { offsetInCU: 0xE95, offset: 0x43304, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF', symObjAddr: 0x1160, symBinAddr: 0xE98C, symSize: 0xD4 }
- { offsetInCU: 0xFC0, offset: 0x4342F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF', symObjAddr: 0x1234, symBinAddr: 0xEA60, symSize: 0xD4 }
- { offsetInCU: 0x10EB, offset: 0x4355A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF', symObjAddr: 0x1308, symBinAddr: 0xEB34, symSize: 0xD4 }
- { offsetInCU: 0x1216, offset: 0x43685, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF', symObjAddr: 0x13DC, symBinAddr: 0xEC08, symSize: 0xD4 }
- { offsetInCU: 0x135F, offset: 0x437CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC18notifyPieceRemoved33_4E9958627B7DCD90B6D32369387417C3LLyySi_SiAA0G0VtF', symObjAddr: 0x14B0, symBinAddr: 0xECDC, symSize: 0xC8 }
- { offsetInCU: 0x150C, offset: 0x4397B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF', symObjAddr: 0x1578, symBinAddr: 0xEDA4, symSize: 0x28 }
- { offsetInCU: 0x1914, offset: 0x43D83, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY0_', symObjAddr: 0x15A0, symBinAddr: 0xEDCC, symSize: 0x9E8 }
- { offsetInCU: 0x267D, offset: 0x44AEC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ1_', symObjAddr: 0x1F88, symBinAddr: 0xF7B4, symSize: 0x60 }
- { offsetInCU: 0x27B0, offset: 0x44C1F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY2_', symObjAddr: 0x1FE8, symBinAddr: 0xF814, symSize: 0x220 }
- { offsetInCU: 0x2AB9, offset: 0x44F28, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ3_', symObjAddr: 0x2208, symBinAddr: 0xFA34, symSize: 0x70 }
- { offsetInCU: 0x2BB2, offset: 0x45021, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY4_', symObjAddr: 0x2278, symBinAddr: 0xFAA4, symSize: 0x10C }
- { offsetInCU: 0x2CE1, offset: 0x45150, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY5_', symObjAddr: 0x2384, symBinAddr: 0xFBB0, symSize: 0x5C }
- { offsetInCU: 0x2D8F, offset: 0x451FE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC6isOverSbvg', symObjAddr: 0x23E0, symBinAddr: 0xFC0C, symSize: 0x30 }
- { offsetInCU: 0x2DAC, offset: 0x4521B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKF', symObjAddr: 0x2410, symBinAddr: 0xFC3C, symSize: 0x18 }
- { offsetInCU: 0x2E63, offset: 0x452D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY0_', symObjAddr: 0x2428, symBinAddr: 0xFC54, symSize: 0x348 }
- { offsetInCU: 0x3351, offset: 0x457C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ1_', symObjAddr: 0x2770, symBinAddr: 0xFF9C, symSize: 0x60 }
- { offsetInCU: 0x33ED, offset: 0x4585C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY2_', symObjAddr: 0x27D0, symBinAddr: 0xFFFC, symSize: 0x210 }
- { offsetInCU: 0x3666, offset: 0x45AD5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ3_', symObjAddr: 0x29E0, symBinAddr: 0x1020C, symSize: 0x70 }
- { offsetInCU: 0x370F, offset: 0x45B7E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY4_', symObjAddr: 0x2A50, symBinAddr: 0x1027C, symSize: 0x104 }
- { offsetInCU: 0x37EF, offset: 0x45C5E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY5_', symObjAddr: 0x2B54, symBinAddr: 0x10380, symSize: 0x5C }
- { offsetInCU: 0x383E, offset: 0x45CAD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfd', symObjAddr: 0x2BB0, symBinAddr: 0x103DC, symSize: 0x6C }
- { offsetInCU: 0x386B, offset: 0x45CDA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfD', symObjAddr: 0x2C1C, symBinAddr: 0x10448, symSize: 0x1C }
- { offsetInCU: 0x3899, offset: 0x45D08, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTK', symObjAddr: 0x0, symBinAddr: 0xD8D4, symSize: 0x50 }
- { offsetInCU: 0x38CF, offset: 0x45D3E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTk', symObjAddr: 0x50, symBinAddr: 0xD924, symSize: 0x6C }
- { offsetInCU: 0x390F, offset: 0x45D7E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvpACTk', symObjAddr: 0x108, symBinAddr: 0xD9DC, symSize: 0x64 }
- { offsetInCU: 0x3951, offset: 0x45DC0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5Rules_pWOc', symObjAddr: 0x1B4, symBinAddr: 0xDA88, symSize: 0x44 }
- { offsetInCU: 0x3A57, offset: 0x45EC6, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x730, symBinAddr: 0xDF9C, symSize: 0x20 }
- { offsetInCU: 0x3A6B, offset: 0x45EDA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCMa', symObjAddr: 0x750, symBinAddr: 0xDFBC, symSize: 0x20 }
- { offsetInCU: 0x3B93, offset: 0x46002, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TR', symObjAddr: 0xEA4, symBinAddr: 0xE6D0, symSize: 0x6C }
- { offsetInCU: 0x3BC6, offset: 0x46035, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTQ0_', symObjAddr: 0xF10, symBinAddr: 0xE73C, symSize: 0x48 }
- { offsetInCU: 0x3C82, offset: 0x460F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TR', symObjAddr: 0x102C, symBinAddr: 0xE858, symSize: 0x60 }
- { offsetInCU: 0x40E5, offset: 0x46554, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TA', symObjAddr: 0x2C38, symBinAddr: 0x10464, symSize: 0x60 }
- { offsetInCU: 0x4115, offset: 0x46584, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TA', symObjAddr: 0x2D44, symBinAddr: 0x104E8, symSize: 0x60 }
- { offsetInCU: 0x4145, offset: 0x465B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA.7', symObjAddr: 0x2DA4, symBinAddr: 0x10548, symSize: 0x88 }
- { offsetInCU: 0x4179, offset: 0x465E8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVIegn_ACytIegnr_TRTA', symObjAddr: 0x2E2C, symBinAddr: 0x105D0, symSize: 0x20 }
- { offsetInCU: 0x41A9, offset: 0x46618, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTA', symObjAddr: 0x2E4C, symBinAddr: 0x105F0, symSize: 0x88 }
- { offsetInCU: 0x41D9, offset: 0x46648, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTA', symObjAddr: 0x2ED4, symBinAddr: 0x10678, symSize: 0x80 }
- { offsetInCU: 0x4209, offset: 0x46678, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTATQ0_', symObjAddr: 0x2F54, symBinAddr: 0x106F8, symSize: 0x48 }
- { offsetInCU: 0x4265, offset: 0x466D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6ResultOAA6PlayerCSgIegnng_AceHytIegnnnr_TRTA', symObjAddr: 0x2F9C, symBinAddr: 0x10740, symSize: 0x24 }
- { offsetInCU: 0x4299, offset: 0x46708, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCIegnng_AceGytIegnnnr_TRTA', symObjAddr: 0x2FC0, symBinAddr: 0x10764, symSize: 0x24 }
- { offsetInCU: 0x42CD, offset: 0x4673C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCSbIegnngy_AceGSbytIegnnnnr_TRTA', symObjAddr: 0x2FE4, symBinAddr: 0x10788, symSize: 0x28 }
- { offsetInCU: 0x4301, offset: 0x46770, size: 0x8, addend: 0x0, symName: '_$sS2i14DouShouQiModel5PieceVIegyyn_S2iACytIegnnnr_TRTA', symObjAddr: 0x300C, symBinAddr: 0x107B0, symSize: 0x28 }
- { offsetInCU: 0x432A, offset: 0x46799, size: 0x8, addend: 0x0, symName: ___swift_mutable_project_boxed_opaque_existential_1, symObjAddr: 0x3034, symBinAddr: 0x107D8, symSize: 0x28 }
- { offsetInCU: 0x433E, offset: 0x467AD, size: 0x8, addend: 0x0, symName: ___swift_assign_boxed_opaque_existential_1, symObjAddr: 0x3308, symBinAddr: 0x10AAC, symSize: 0x168 }
...

@ -0,0 +1,486 @@
---
triple: 'x86_64-apple-darwin'
binary-path: '/Users/marcchevaldonne/Library/Developer/Xcode/DerivedData/DouShouQiModel-bzzvovsrfmbhuydeirorjmljgtyf/Build/Intermediates.noindex/ArchiveIntermediates/DouShouQiModel/InstallationBuildProductsLocation/Library/Frameworks/DouShouQiModel.framework/DouShouQiModel'
relocations:
- { offsetInCU: 0x34, offset: 0x3013C, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionString, symObjAddr: 0x0, symBinAddr: 0x14FA0, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x30171, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionNumber, symObjAddr: 0x38, symBinAddr: 0x14FD8, symSize: 0x0 }
- { offsetInCU: 0x27, offset: 0x301AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x3C20, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x301D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x3C20, symSize: 0x10 }
- { offsetInCU: 0x6E, offset: 0x301F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x20, symBinAddr: 0x3C40, symSize: 0x10 }
- { offsetInCU: 0x9F, offset: 0x30226, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x140, symBinAddr: 0x3D60, symSize: 0x40 }
- { offsetInCU: 0xE5, offset: 0x3026C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x10, symBinAddr: 0x3C30, symSize: 0x10 }
- { offsetInCU: 0x114, offset: 0x3029B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x30, symBinAddr: 0x3C50, symSize: 0x20 }
- { offsetInCU: 0x1AA, offset: 0x30331, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO9hashValueSivg', symObjAddr: 0x50, symBinAddr: 0x3C70, symSize: 0x40 }
- { offsetInCU: 0x2A5, offset: 0x3042C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x90, symBinAddr: 0x3CB0, symSize: 0x10 }
- { offsetInCU: 0x2FB, offset: 0x30482, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH9hashValueSivgTW', symObjAddr: 0xA0, symBinAddr: 0x3CC0, symSize: 0x40 }
- { offsetInCU: 0x3DF, offset: 0x30566, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x3D00, symSize: 0x20 }
- { offsetInCU: 0x468, offset: 0x305EF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASQWb', symObjAddr: 0x180, symBinAddr: 0x3DA0, symSize: 0x10 }
- { offsetInCU: 0x47C, offset: 0x30603, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOACSQAAWl', symObjAddr: 0x190, symBinAddr: 0x3DB0, symSize: 0x30 }
- { offsetInCU: 0x490, offset: 0x30617, size: 0x8, addend: 0x0, symName: ___swift_memcpy2_1, symObjAddr: 0x1C0, symBinAddr: 0x3DE0, symSize: 0x10 }
- { offsetInCU: 0x4A4, offset: 0x3062B, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x1D0, symBinAddr: 0x3DF0, symSize: 0x10 }
- { offsetInCU: 0x4B8, offset: 0x3063F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwet', symObjAddr: 0x1E0, symBinAddr: 0x3E00, symSize: 0xB0 }
- { offsetInCU: 0x4CC, offset: 0x30653, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwst', symObjAddr: 0x290, symBinAddr: 0x3EB0, symSize: 0xE0 }
- { offsetInCU: 0x4E0, offset: 0x30667, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwug', symObjAddr: 0x370, symBinAddr: 0x3F90, symSize: 0x20 }
- { offsetInCU: 0x4F4, offset: 0x3067B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwup', symObjAddr: 0x390, symBinAddr: 0x3FB0, symSize: 0x10 }
- { offsetInCU: 0x508, offset: 0x3068F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwui', symObjAddr: 0x3A0, symBinAddr: 0x3FC0, symSize: 0x30 }
- { offsetInCU: 0x51C, offset: 0x306A3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOMa', symObjAddr: 0x3D0, symBinAddr: 0x3FF0, symSize: 0x10 }
- { offsetInCU: 0x530, offset: 0x306B7, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x3E0, symBinAddr: 0x4000, symSize: 0x10 }
- { offsetInCU: 0x544, offset: 0x306CB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwet', symObjAddr: 0x3F0, symBinAddr: 0x4010, symSize: 0x80 }
- { offsetInCU: 0x558, offset: 0x306DF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwst', symObjAddr: 0x470, symBinAddr: 0x4090, symSize: 0xD0 }
- { offsetInCU: 0x56C, offset: 0x306F3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwug', symObjAddr: 0x540, symBinAddr: 0x4160, symSize: 0x10 }
- { offsetInCU: 0x580, offset: 0x30707, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwup', symObjAddr: 0x550, symBinAddr: 0x4170, symSize: 0x10 }
- { offsetInCU: 0x594, offset: 0x3071B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwui', symObjAddr: 0x560, symBinAddr: 0x4180, symSize: 0x10 }
- { offsetInCU: 0x5A8, offset: 0x3072F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOMa', symObjAddr: 0x570, symBinAddr: 0x4190, symSize: 0xA }
- { offsetInCU: 0x622, offset: 0x307A9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x100, symBinAddr: 0x3D20, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x308ED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x41A0, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x30911, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x41A0, symSize: 0x10 }
- { offsetInCU: 0x6E, offset: 0x30934, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x20, symBinAddr: 0x41C0, symSize: 0x10 }
- { offsetInCU: 0x9F, offset: 0x30965, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x140, symBinAddr: 0x42E0, symSize: 0x60 }
- { offsetInCU: 0x113, offset: 0x309D9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x10, symBinAddr: 0x41B0, symSize: 0x10 }
- { offsetInCU: 0x142, offset: 0x30A08, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x30, symBinAddr: 0x41D0, symSize: 0x20 }
- { offsetInCU: 0x1D8, offset: 0x30A9E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg', symObjAddr: 0x50, symBinAddr: 0x41F0, symSize: 0x40 }
- { offsetInCU: 0x2D3, offset: 0x30B99, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x90, symBinAddr: 0x4230, symSize: 0x10 }
- { offsetInCU: 0x329, offset: 0x30BEF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH9hashValueSivgTW', symObjAddr: 0xA0, symBinAddr: 0x4240, symSize: 0x40 }
- { offsetInCU: 0x40D, offset: 0x30CD3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x4280, symSize: 0x20 }
- { offsetInCU: 0x496, offset: 0x30D5C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASQWb', symObjAddr: 0x1A0, symBinAddr: 0x4340, symSize: 0x10 }
- { offsetInCU: 0x4AA, offset: 0x30D70, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOACSQAAWl', symObjAddr: 0x1B0, symBinAddr: 0x4350, symSize: 0x30 }
- { offsetInCU: 0x4BE, offset: 0x30D84, size: 0x8, addend: 0x0, symName: ___swift_memcpy3_1, symObjAddr: 0x1E0, symBinAddr: 0x4380, symSize: 0x20 }
- { offsetInCU: 0x4D2, offset: 0x30D98, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwet', symObjAddr: 0x210, symBinAddr: 0x43A0, symSize: 0x70 }
- { offsetInCU: 0x4E6, offset: 0x30DAC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwst', symObjAddr: 0x280, symBinAddr: 0x4410, symSize: 0x80 }
- { offsetInCU: 0x4FA, offset: 0x30DC0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwug', symObjAddr: 0x300, symBinAddr: 0x4490, symSize: 0x20 }
- { offsetInCU: 0x50E, offset: 0x30DD4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwup', symObjAddr: 0x320, symBinAddr: 0x44B0, symSize: 0x10 }
- { offsetInCU: 0x522, offset: 0x30DE8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwui', symObjAddr: 0x330, symBinAddr: 0x44C0, symSize: 0x20 }
- { offsetInCU: 0x536, offset: 0x30DFC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOMa', symObjAddr: 0x350, symBinAddr: 0x44E0, symSize: 0x10 }
- { offsetInCU: 0x54A, offset: 0x30E10, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwet', symObjAddr: 0x370, symBinAddr: 0x44F0, symSize: 0x80 }
- { offsetInCU: 0x55E, offset: 0x30E24, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwst', symObjAddr: 0x3F0, symBinAddr: 0x4570, symSize: 0xD0 }
- { offsetInCU: 0x572, offset: 0x30E38, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwug', symObjAddr: 0x4C0, symBinAddr: 0x4640, symSize: 0x10 }
- { offsetInCU: 0x586, offset: 0x30E4C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwup', symObjAddr: 0x4D0, symBinAddr: 0x4650, symSize: 0x10 }
- { offsetInCU: 0x59A, offset: 0x30E60, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwui', symObjAddr: 0x4E0, symBinAddr: 0x4660, symSize: 0x10 }
- { offsetInCU: 0x5AE, offset: 0x30E74, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOMa', symObjAddr: 0x4F0, symBinAddr: 0x4670, symSize: 0xA }
- { offsetInCU: 0x60C, offset: 0x30ED2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x100, symBinAddr: 0x42A0, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x31002, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x4680, symSize: 0xD0 }
- { offsetInCU: 0x99, offset: 0x31074, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x4680, symSize: 0xD0 }
- { offsetInCU: 0x124, offset: 0x310FF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc', symObjAddr: 0xD0, symBinAddr: 0x4750, symSize: 0xA0 }
- { offsetInCU: 0x1EB, offset: 0x311C6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x190, symBinAddr: 0x4810, symSize: 0xA0 }
- { offsetInCU: 0x276, offset: 0x31251, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x230, symBinAddr: 0x48B0, symSize: 0x70 }
- { offsetInCU: 0x2F3, offset: 0x312CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x2A0, symBinAddr: 0x4920, symSize: 0x30 }
- { offsetInCU: 0x36F, offset: 0x3134A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF', symObjAddr: 0x2D0, symBinAddr: 0x4950, symSize: 0x30 }
- { offsetInCU: 0x3D4, offset: 0x313AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF', symObjAddr: 0x300, symBinAddr: 0x4980, symSize: 0x50 }
- { offsetInCU: 0x461, offset: 0x3143C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY0_', symObjAddr: 0x350, symBinAddr: 0x49D0, symSize: 0x110 }
- { offsetInCU: 0x5B9, offset: 0x31594, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTQ1_', symObjAddr: 0x460, symBinAddr: 0x4AE0, symSize: 0x80 }
- { offsetInCU: 0x669, offset: 0x31644, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY2_', symObjAddr: 0x4E0, symBinAddr: 0x4B60, symSize: 0x120 }
- { offsetInCU: 0x744, offset: 0x3171F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY3_', symObjAddr: 0x600, symBinAddr: 0x4C80, symSize: 0x50 }
- { offsetInCU: 0x7A2, offset: 0x3177D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfd', symObjAddr: 0x670, symBinAddr: 0x4CF0, symSize: 0x30 }
- { offsetInCU: 0x7F3, offset: 0x317CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfD', symObjAddr: 0x6A0, symBinAddr: 0x4D20, symSize: 0x40 }
- { offsetInCU: 0x92F, offset: 0x3190A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCAA4MoveVSgIeggr_SgWOe', symObjAddr: 0x170, symBinAddr: 0x47F0, symSize: 0x20 }
- { offsetInCU: 0x9E8, offset: 0x319C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfE', symObjAddr: 0x650, symBinAddr: 0x4CD0, symSize: 0x20 }
- { offsetInCU: 0xA15, offset: 0x319F0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCMa', symObjAddr: 0x6E0, symBinAddr: 0x4D60, symSize: 0x20 }
- { offsetInCU: 0x4F, offset: 0x31B95, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0x2C500, symBinAddr: 0x1DB40, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x31BAF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LLShyAA5PieceVGvpZ', symObjAddr: 0x71E0, symBinAddr: 0x1C720, symSize: 0x0 }
- { offsetInCU: 0xD7, offset: 0x31C1D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x71E8, symBinAddr: 0x1C728, symSize: 0x0 }
- { offsetInCU: 0xF1, offset: 0x31C37, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardV_S2itKcGvpZ', symObjAddr: 0x71F0, symBinAddr: 0x1C730, symSize: 0x0 }
- { offsetInCU: 0x10B, offset: 0x31C51, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x71F8, symBinAddr: 0x1C738, symSize: 0x0 }
- { offsetInCU: 0x125, offset: 0x31C6B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellTypeSDyAA0iJ0OSaySi3row_Si3coltGGvpZ', symObjAddr: 0x2C508, symBinAddr: 0x1DB48, symSize: 0x0 }
- { offsetInCU: 0x2A8, offset: 0x31DEE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x4E90, symSize: 0x2C0 }
- { offsetInCU: 0xAC6, offset: 0x3260C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ', symObjAddr: 0x2C0, symBinAddr: 0x5150, symSize: 0x70 }
- { offsetInCU: 0xB04, offset: 0x3264A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ', symObjAddr: 0x330, symBinAddr: 0x51C0, symSize: 0x10 }
- { offsetInCU: 0xB2E, offset: 0x32674, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU_', symObjAddr: 0x390, symBinAddr: 0x5220, symSize: 0x30 }
- { offsetInCU: 0xB6E, offset: 0x326B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU0_', symObjAddr: 0x3C0, symBinAddr: 0x5250, symSize: 0x60 }
- { offsetInCU: 0xBC0, offset: 0x32706, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVACycfC', symObjAddr: 0x650, symBinAddr: 0x54E0, symSize: 0x30 }
- { offsetInCU: 0xC05, offset: 0x3274B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x680, symBinAddr: 0x5510, symSize: 0x50 }
- { offsetInCU: 0xC6A, offset: 0x327B0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV19findAuthorizedMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL5boardSayAA4MoveVGAA5BoardV_tF', symObjAddr: 0x6D0, symBinAddr: 0x5560, symSize: 0x460 }
- { offsetInCU: 0x15D1, offset: 0x33117, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12findRatMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0xB30, symBinAddr: 0x59C0, symSize: 0x740 }
- { offsetInCU: 0x2140, offset: 0x33C86, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV17findElephantMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1270, symBinAddr: 0x6100, symSize: 0x6D0 }
- { offsetInCU: 0x2BB3, offset: 0x346F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16findDefaultMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1940, symBinAddr: 0x67D0, symSize: 0x740 }
- { offsetInCU: 0x3725, offset: 0x3526B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV21findTigerAndLionMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x2080, symBinAddr: 0x6F10, symSize: 0x4C0 }
- { offsetInCU: 0x3DE7, offset: 0x3592D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20findDirectNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x2540, symBinAddr: 0x73D0, symSize: 0x390 }
- { offsetInCU: 0x4327, offset: 0x35E6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV26findTigerAndLionNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x28D0, symBinAddr: 0x7760, symSize: 0x5D0 }
- { offsetInCU: 0x4C67, offset: 0x367AD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2EA0, symBinAddr: 0x7D30, symSize: 0x140 }
- { offsetInCU: 0x4E34, offset: 0x3697A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x2FE0, symBinAddr: 0x7E70, symSize: 0x150 }
- { offsetInCU: 0x505D, offset: 0x36BA3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF', symObjAddr: 0x3130, symBinAddr: 0x7FC0, symSize: 0x80 }
- { offsetInCU: 0x512F, offset: 0x36C75, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF', symObjAddr: 0x31B0, symBinAddr: 0x8040, symSize: 0xF0 }
- { offsetInCU: 0x539B, offset: 0x36EE1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x32A0, symBinAddr: 0x8130, symSize: 0x30 }
- { offsetInCU: 0x5482, offset: 0x36FC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF', symObjAddr: 0x32D0, symBinAddr: 0x8160, symSize: 0x1B0 }
- { offsetInCU: 0x5622, offset: 0x37168, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF', symObjAddr: 0x3480, symBinAddr: 0x8310, symSize: 0x4F0 }
- { offsetInCU: 0x5B31, offset: 0x37677, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0x3970, symBinAddr: 0x8800, symSize: 0x10 }
- { offsetInCU: 0x5B45, offset: 0x3768B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg', symObjAddr: 0x3980, symBinAddr: 0x8810, symSize: 0x10 }
- { offsetInCU: 0x5B77, offset: 0x376BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11createBoardAA0H0VyFZTW', symObjAddr: 0x3990, symBinAddr: 0x8820, symSize: 0x70 }
- { offsetInCU: 0x5BC4, offset: 0x3770A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10checkBoardyyAA0H0VKFZTW', symObjAddr: 0x3A00, symBinAddr: 0x8890, symSize: 0x10 }
- { offsetInCU: 0x5BFC, offset: 0x37742, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0x3A10, symBinAddr: 0x88A0, symSize: 0x10 }
- { offsetInCU: 0x5C18, offset: 0x3775E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0x3A20, symBinAddr: 0x88B0, symSize: 0x10 }
- { offsetInCU: 0x5C34, offset: 0x3777A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0x3A30, symBinAddr: 0x88C0, symSize: 0x10 }
- { offsetInCU: 0x5C50, offset: 0x37796, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itFTW', symObjAddr: 0x3A40, symBinAddr: 0x88D0, symSize: 0x10 }
- { offsetInCU: 0x5C6C, offset: 0x377B2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtFTW', symObjAddr: 0x3A50, symBinAddr: 0x88E0, symSize: 0x10 }
- { offsetInCU: 0x5C88, offset: 0x377CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itFTW', symObjAddr: 0x3A60, symBinAddr: 0x88F0, symSize: 0x10 }
- { offsetInCU: 0x5CA4, offset: 0x377EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VALtKFTW', symObjAddr: 0x3A70, symBinAddr: 0x8900, symSize: 0x10 }
- { offsetInCU: 0x5CD9, offset: 0x3781F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3A80, symBinAddr: 0x8910, symSize: 0x10 }
- { offsetInCU: 0x5D1E, offset: 0x37864, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x3A90, symBinAddr: 0x8920, symSize: 0x10 }
- { offsetInCU: 0x5D51, offset: 0x37897, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZTf4nd_n', symObjAddr: 0x5C40, symBinAddr: 0xAAD0, symSize: 0x2E0 }
- { offsetInCU: 0x60E8, offset: 0x37C2E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20initPlacesByCellType33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardVFZTf4nd_n', symObjAddr: 0x5F20, symBinAddr: 0xADB0, symSize: 0x3D0 }
- { offsetInCU: 0x65E9, offset: 0x3812F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV23checkCellsByTypeIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x62F0, symBinAddr: 0xB180, symSize: 0x150 }
- { offsetInCU: 0x6791, offset: 0x382D7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV18checkPiecesIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6440, symBinAddr: 0xB2D0, symSize: 0x150 }
- { offsetInCU: 0x6859, offset: 0x3839F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15checkWaterCells33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6590, symBinAddr: 0xB420, symSize: 0xB0 }
- { offsetInCU: 0x695B, offset: 0x384A1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x340, symBinAddr: 0x51D0, symSize: 0x20 }
- { offsetInCU: 0x6975, offset: 0x384BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x360, symBinAddr: 0x51F0, symSize: 0x30 }
- { offsetInCU: 0x69AB, offset: 0x384F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x420, symBinAddr: 0x52B0, symSize: 0x30 }
- { offsetInCU: 0x69C5, offset: 0x3850B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x4E0, symBinAddr: 0x5370, symSize: 0x20 }
- { offsetInCU: 0x69DF, offset: 0x38525, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellType_WZ', symObjAddr: 0x500, symBinAddr: 0x5390, symSize: 0x20 }
- { offsetInCU: 0x6F06, offset: 0x38A4C, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8setValue_6forKeyyq_n_xtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3AA0, symBinAddr: 0x8930, symSize: 0xB0 }
- { offsetInCU: 0x6F7B, offset: 0x38AC1, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3B50, symBinAddr: 0x89E0, symSize: 0x60 }
- { offsetInCU: 0x6FA8, offset: 0x38AEE, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3BB0, symBinAddr: 0x8A40, symSize: 0x30 }
- { offsetInCU: 0x6FEB, offset: 0x38B31, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3BE0, symBinAddr: 0x8A70, symSize: 0x50 }
- { offsetInCU: 0x7063, offset: 0x38BA9, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3C30, symBinAddr: 0x8AC0, symSize: 0xD0 }
- { offsetInCU: 0x719B, offset: 0x38CE1, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3D00, symBinAddr: 0x8B90, symSize: 0x30 }
- { offsetInCU: 0x71BE, offset: 0x38D04, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5.resume.0', symObjAddr: 0x3D30, symBinAddr: 0x8BC0, symSize: 0x20 }
- { offsetInCU: 0x71F9, offset: 0x38D3F, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3D50, symBinAddr: 0x8BE0, symSize: 0xB0 }
- { offsetInCU: 0x7261, offset: 0x38DA7, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3E00, symBinAddr: 0x8C90, symSize: 0xC0 }
- { offsetInCU: 0x72B7, offset: 0x38DFD, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3EC0, symBinAddr: 0x8D50, symSize: 0x80 }
- { offsetInCU: 0x7324, offset: 0x38E6A, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3FA0, symBinAddr: 0x8E30, symSize: 0x1E0 }
- { offsetInCU: 0x7447, offset: 0x38F8D, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x4180, symBinAddr: 0x9010, symSize: 0x50 }
- { offsetInCU: 0x7518, offset: 0x3905E, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x41D0, symBinAddr: 0x9060, symSize: 0x210 }
- { offsetInCU: 0x76D8, offset: 0x3921E, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4470, symBinAddr: 0x9300, symSize: 0x200 }
- { offsetInCU: 0x7751, offset: 0x39297, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4670, symBinAddr: 0x9500, symSize: 0x210 }
- { offsetInCU: 0x77EB, offset: 0x39331, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4880, symBinAddr: 0x9710, symSize: 0x380 }
- { offsetInCU: 0x7988, offset: 0x394CE, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4C00, symBinAddr: 0x9A90, symSize: 0x330 }
- { offsetInCU: 0x7AAF, offset: 0x395F5, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4F30, symBinAddr: 0x9DC0, symSize: 0x140 }
- { offsetInCU: 0x7CC8, offset: 0x3980E, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x5070, symBinAddr: 0x9F00, symSize: 0x160 }
- { offsetInCU: 0x7EF4, offset: 0x39A3A, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x51D0, symBinAddr: 0xA060, symSize: 0x1C0 }
- { offsetInCU: 0x7F58, offset: 0x39A9E, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5390, symBinAddr: 0xA220, symSize: 0x2F0 }
- { offsetInCU: 0x8173, offset: 0x39CB9, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5680, symBinAddr: 0xA510, symSize: 0x350 }
- { offsetInCU: 0x83B8, offset: 0x39EFE, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x59D0, symBinAddr: 0xA860, symSize: 0x20 }
- { offsetInCU: 0x83D0, offset: 0x39F16, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x59F0, symBinAddr: 0xA880, symSize: 0x20 }
- { offsetInCU: 0x842A, offset: 0x39F70, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x5A10, symBinAddr: 0xA8A0, symSize: 0x120 }
- { offsetInCU: 0x8582, offset: 0x3A0C8, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x5B30, symBinAddr: 0xA9C0, symSize: 0x110 }
- { offsetInCU: 0x87DD, offset: 0x3A323, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOACs0F0AAWl', symObjAddr: 0x6830, symBinAddr: 0xB6C0, symSize: 0x30 }
- { offsetInCU: 0x87F1, offset: 0x3A337, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOACs0G0AAWl', symObjAddr: 0x6860, symBinAddr: 0xB6F0, symSize: 0x30 }
- { offsetInCU: 0x8805, offset: 0x3A34B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwCP', symObjAddr: 0x6890, symBinAddr: 0xB720, symSize: 0x30 }
- { offsetInCU: 0x8819, offset: 0x3A35F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwxx', symObjAddr: 0x68C0, symBinAddr: 0xB750, symSize: 0x20 }
- { offsetInCU: 0x882D, offset: 0x3A373, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwcp', symObjAddr: 0x68E0, symBinAddr: 0xB770, symSize: 0x30 }
- { offsetInCU: 0x8841, offset: 0x3A387, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwca', symObjAddr: 0x6910, symBinAddr: 0xB7A0, symSize: 0x50 }
- { offsetInCU: 0x8855, offset: 0x3A39B, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x6960, symBinAddr: 0xB7F0, symSize: 0x10 }
- { offsetInCU: 0x8869, offset: 0x3A3AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwta', symObjAddr: 0x6970, symBinAddr: 0xB800, symSize: 0x30 }
- { offsetInCU: 0x887D, offset: 0x3A3C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwet', symObjAddr: 0x69A0, symBinAddr: 0xB830, symSize: 0x40 }
- { offsetInCU: 0x8891, offset: 0x3A3D7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwst', symObjAddr: 0x69E0, symBinAddr: 0xB870, symSize: 0x40 }
- { offsetInCU: 0x88A5, offset: 0x3A3EB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVMa', symObjAddr: 0x6A20, symBinAddr: 0xB8B0, symSize: 0x10 }
- { offsetInCU: 0x88B9, offset: 0x3A3FF, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x6A30, symBinAddr: 0xB8C0, symSize: 0x40 }
- { offsetInCU: 0x897D, offset: 0x3A4C3, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14DouShouQiModel4MoveVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x6B70, symBinAddr: 0xBA00, symSize: 0x150 }
- { offsetInCU: 0x8A4E, offset: 0x3A594, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14DouShouQiModel4MoveV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x6CC0, symBinAddr: 0xBB50, symSize: 0xA0 }
- { offsetInCU: 0x8C5D, offset: 0x3A7A3, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x520, symBinAddr: 0x53B0, symSize: 0x40 }
- { offsetInCU: 0x8C79, offset: 0x3A7BF, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x560, symBinAddr: 0x53F0, symSize: 0x20 }
- { offsetInCU: 0x8D23, offset: 0x3A869, size: 0x8, addend: 0x0, symName: '_$sSh8containsySbxF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x580, symBinAddr: 0x5410, symSize: 0xD0 }
- { offsetInCU: 0x9295, offset: 0x3ADDB, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5Tf4gd_n', symObjAddr: 0x6640, symBinAddr: 0xB4D0, symSize: 0x100 }
- { offsetInCU: 0x93C6, offset: 0x3AF0C, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5BoardV_SiTg5Tf4gd_n', symObjAddr: 0x6740, symBinAddr: 0xB5D0, symSize: 0xF0 }
- { offsetInCU: 0x9513, offset: 0x3B059, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5OwnerO_AC6PlayerCTg5Tf4gd_n', symObjAddr: 0x6A70, symBinAddr: 0xB900, symSize: 0x100 }
- { offsetInCU: 0x27, offset: 0x3B392, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xBFF0, symSize: 0x20 }
- { offsetInCU: 0x4B, offset: 0x3B3B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xBFF0, symSize: 0x20 }
- { offsetInCU: 0x9A, offset: 0x3B405, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV11descriptionSSvg', symObjAddr: 0x20, symBinAddr: 0xC010, symSize: 0x100 }
- { offsetInCU: 0x1DF, offset: 0x3B54A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg', symObjAddr: 0x120, symBinAddr: 0xC110, symSize: 0x10 }
- { offsetInCU: 0x1FD, offset: 0x3B568, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg', symObjAddr: 0x130, symBinAddr: 0xC120, symSize: 0x10 }
- { offsetInCU: 0x21B, offset: 0x3B586, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg', symObjAddr: 0x140, symBinAddr: 0xC130, symSize: 0x10 }
- { offsetInCU: 0x239, offset: 0x3B5A4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs', symObjAddr: 0x150, symBinAddr: 0xC140, symSize: 0x10 }
- { offsetInCU: 0x277, offset: 0x3B5E2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM', symObjAddr: 0x160, symBinAddr: 0xC150, symSize: 0x20 }
- { offsetInCU: 0x2A5, offset: 0x3B610, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM.resume.0', symObjAddr: 0x180, symBinAddr: 0xC170, symSize: 0x10 }
- { offsetInCU: 0x2D0, offset: 0x3B63B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ', symObjAddr: 0x190, symBinAddr: 0xC180, symSize: 0x10 }
- { offsetInCU: 0x2E4, offset: 0x3B64F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1A0, symBinAddr: 0xC190, symSize: 0x10 }
- { offsetInCU: 0x30F, offset: 0x3B67A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1B0, symBinAddr: 0xC1A0, symSize: 0x10 }
- { offsetInCU: 0x340, offset: 0x3B6AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1C0, symBinAddr: 0xC1B0, symSize: 0x60 }
- { offsetInCU: 0x3B4, offset: 0x3B71F, size: 0x8, addend: 0x0, symName: ___swift_memcpy4_1, symObjAddr: 0x220, symBinAddr: 0xC210, symSize: 0x10 }
- { offsetInCU: 0x3C8, offset: 0x3B733, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwet', symObjAddr: 0x240, symBinAddr: 0xC220, symSize: 0x40 }
- { offsetInCU: 0x3DC, offset: 0x3B747, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwst', symObjAddr: 0x280, symBinAddr: 0xC260, symSize: 0x40 }
- { offsetInCU: 0x3F0, offset: 0x3B75B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVMa', symObjAddr: 0x2C0, symBinAddr: 0xC2A0, symSize: 0xA }
- { offsetInCU: 0x2B, offset: 0x3B866, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xC2B0, symSize: 0x170 }
- { offsetInCU: 0x4F, offset: 0x3B88A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0xBDD0, symBinAddr: 0x1DB50, symSize: 0x0 }
- { offsetInCU: 0x195, offset: 0x3B9D0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xC2B0, symSize: 0x170 }
- { offsetInCU: 0x575, offset: 0x3BDB0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ', symObjAddr: 0x170, symBinAddr: 0xC420, symSize: 0x70 }
- { offsetInCU: 0x5B3, offset: 0x3BDEE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ', symObjAddr: 0x1E0, symBinAddr: 0xC490, symSize: 0x10 }
- { offsetInCU: 0x5CE, offset: 0x3BE09, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVACycfC', symObjAddr: 0x1F0, symBinAddr: 0xC4A0, symSize: 0x30 }
- { offsetInCU: 0x612, offset: 0x3BE4D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x220, symBinAddr: 0xC4D0, symSize: 0x50 }
- { offsetInCU: 0x676, offset: 0x3BEB1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x270, symBinAddr: 0xC520, symSize: 0x1B0 }
- { offsetInCU: 0x9B0, offset: 0x3C1EB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x420, symBinAddr: 0xC6D0, symSize: 0x2A0 }
- { offsetInCU: 0xDB1, offset: 0x3C5EC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF', symObjAddr: 0x6C0, symBinAddr: 0xC970, symSize: 0x80 }
- { offsetInCU: 0xEAA, offset: 0x3C6E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF', symObjAddr: 0x740, symBinAddr: 0xC9F0, symSize: 0xF0 }
- { offsetInCU: 0x1085, offset: 0x3C8C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x830, symBinAddr: 0xCAE0, symSize: 0x30 }
- { offsetInCU: 0x116B, offset: 0x3C9A6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF', symObjAddr: 0x860, symBinAddr: 0xCB10, symSize: 0x130 }
- { offsetInCU: 0x12C3, offset: 0x3CAFE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF', symObjAddr: 0x990, symBinAddr: 0xCC40, symSize: 0x240 }
- { offsetInCU: 0x146A, offset: 0x3CCA5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0xBD0, symBinAddr: 0xCE80, symSize: 0x10 }
- { offsetInCU: 0x147E, offset: 0x3CCB9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg', symObjAddr: 0xBE0, symBinAddr: 0xCE90, symSize: 0x10 }
- { offsetInCU: 0x14B0, offset: 0x3CCEB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11createBoardAA0I0VyFZTW', symObjAddr: 0xBF0, symBinAddr: 0xCEA0, symSize: 0x70 }
- { offsetInCU: 0x14FD, offset: 0x3CD38, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10checkBoardyyAA0I0VKFZTW', symObjAddr: 0xC60, symBinAddr: 0xCF10, symSize: 0x10 }
- { offsetInCU: 0x1535, offset: 0x3CD70, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0xC70, symBinAddr: 0xCF20, symSize: 0x10 }
- { offsetInCU: 0x1551, offset: 0x3CD8C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0xC80, symBinAddr: 0xCF30, symSize: 0x10 }
- { offsetInCU: 0x156D, offset: 0x3CDA8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0xC90, symBinAddr: 0xCF40, symSize: 0x10 }
- { offsetInCU: 0x1589, offset: 0x3CDC4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itFTW', symObjAddr: 0xCA0, symBinAddr: 0xCF50, symSize: 0x10 }
- { offsetInCU: 0x15A5, offset: 0x3CDE0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtFTW', symObjAddr: 0xCB0, symBinAddr: 0xCF60, symSize: 0x10 }
- { offsetInCU: 0x15C1, offset: 0x3CDFC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itFTW', symObjAddr: 0xCC0, symBinAddr: 0xCF70, symSize: 0x10 }
- { offsetInCU: 0x15DD, offset: 0x3CE18, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VALtKFTW', symObjAddr: 0xCD0, symBinAddr: 0xCF80, symSize: 0x10 }
- { offsetInCU: 0x1611, offset: 0x3CE4C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCE0, symBinAddr: 0xCF90, symSize: 0x10 }
- { offsetInCU: 0x1654, offset: 0x3CE8F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCF0, symBinAddr: 0xCFA0, symSize: 0x10 }
- { offsetInCU: 0x1686, offset: 0x3CEC1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV16checkCellsByType33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xD00, symBinAddr: 0xCFB0, symSize: 0x130 }
- { offsetInCU: 0x18E4, offset: 0x3D11F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11checkPieces33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xE30, symBinAddr: 0xD0E0, symSize: 0x230 }
- { offsetInCU: 0x1CEA, offset: 0x3D525, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZTf4nd_n', symObjAddr: 0x1060, symBinAddr: 0xD310, symSize: 0xC0 }
- { offsetInCU: 0x1F87, offset: 0x3D7C2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwCP', symObjAddr: 0x11C0, symBinAddr: 0xD3D0, symSize: 0x30 }
- { offsetInCU: 0x1F9B, offset: 0x3D7D6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwxx', symObjAddr: 0x11F0, symBinAddr: 0xD400, symSize: 0x20 }
- { offsetInCU: 0x1FAF, offset: 0x3D7EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwcp', symObjAddr: 0x1210, symBinAddr: 0xD420, symSize: 0x30 }
- { offsetInCU: 0x1FC3, offset: 0x3D7FE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwca', symObjAddr: 0x1240, symBinAddr: 0xD450, symSize: 0x50 }
- { offsetInCU: 0x1FD7, offset: 0x3D812, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwta', symObjAddr: 0x12A0, symBinAddr: 0xD4A0, symSize: 0x30 }
- { offsetInCU: 0x1FEB, offset: 0x3D826, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwet', symObjAddr: 0x12D0, symBinAddr: 0xD4D0, symSize: 0x40 }
- { offsetInCU: 0x1FFF, offset: 0x3D83A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwst', symObjAddr: 0x1310, symBinAddr: 0xD510, symSize: 0x40 }
- { offsetInCU: 0x2013, offset: 0x3D84E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVMa', symObjAddr: 0x1350, symBinAddr: 0xD550, symSize: 0xA }
- { offsetInCU: 0x72, offset: 0x3DC02, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xD610, symSize: 0x60 }
- { offsetInCU: 0xC3, offset: 0x3DC53, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfd', symObjAddr: 0x80, symBinAddr: 0xD690, symSize: 0x20 }
- { offsetInCU: 0xE0, offset: 0x3DC70, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF', symObjAddr: 0xA0, symBinAddr: 0xD6B0, symSize: 0xE0 }
- { offsetInCU: 0x1F4, offset: 0x3DD84, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF', symObjAddr: 0x180, symBinAddr: 0xD790, symSize: 0x50 }
- { offsetInCU: 0x27B, offset: 0x3DE0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY0_', symObjAddr: 0x1D0, symBinAddr: 0xD7E0, symSize: 0x110 }
- { offsetInCU: 0x3D9, offset: 0x3DF69, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTQ1_', symObjAddr: 0x2E0, symBinAddr: 0xD8F0, symSize: 0x80 }
- { offsetInCU: 0x490, offset: 0x3E020, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY2_', symObjAddr: 0x360, symBinAddr: 0xD970, symSize: 0x120 }
- { offsetInCU: 0x571, offset: 0x3E101, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY3_', symObjAddr: 0x480, symBinAddr: 0xDA90, symSize: 0x50 }
- { offsetInCU: 0x5E3, offset: 0x3E173, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC4nameSSvg', symObjAddr: 0x4D0, symBinAddr: 0xDAE0, symSize: 0x30 }
- { offsetInCU: 0x610, offset: 0x3E1A0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC2idAA5OwnerOvg', symObjAddr: 0x500, symBinAddr: 0xDB10, symSize: 0x10 }
- { offsetInCU: 0x673, offset: 0x3E203, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x510, symBinAddr: 0xDB20, symSize: 0x90 }
- { offsetInCU: 0x6D0, offset: 0x3E260, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x5A0, symBinAddr: 0xDBB0, symSize: 0x30 }
- { offsetInCU: 0x740, offset: 0x3E2D0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfD', symObjAddr: 0x790, symBinAddr: 0xDDA0, symSize: 0x30 }
- { offsetInCU: 0x784, offset: 0x3E314, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCMa', symObjAddr: 0x60, symBinAddr: 0xD670, symSize: 0x20 }
- { offsetInCU: 0x88B, offset: 0x3E41B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TR', symObjAddr: 0x5D0, symBinAddr: 0xDBE0, symSize: 0x70 }
- { offsetInCU: 0x8C5, offset: 0x3E455, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTQ0_', symObjAddr: 0x640, symBinAddr: 0xDC50, symSize: 0x50 }
- { offsetInCU: 0x91F, offset: 0x3E4AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x6B0, symBinAddr: 0xDCC0, symSize: 0x90 }
- { offsetInCU: 0x94F, offset: 0x3E4DF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTATQ0_', symObjAddr: 0x740, symBinAddr: 0xDD50, symSize: 0x50 }
- { offsetInCU: 0xA11, offset: 0x3E5A1, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSi3row_Si3colt_Tg5', symObjAddr: 0x910, symBinAddr: 0xDF20, symSize: 0x110 }
- { offsetInCU: 0xB9C, offset: 0x3E72C, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0xA60, symBinAddr: 0xE030, symSize: 0x120 }
- { offsetInCU: 0xD3F, offset: 0x3E8CF, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0xB80, symBinAddr: 0xE150, symSize: 0x110 }
- { offsetInCU: 0xEED, offset: 0x3EA7D, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0xC90, symBinAddr: 0xE260, symSize: 0x130 }
- { offsetInCU: 0x27, offset: 0x3EDA2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xE5E0, symSize: 0x10 }
- { offsetInCU: 0x3F, offset: 0x3EDBA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwCP', symObjAddr: 0x40, symBinAddr: 0xE620, symSize: 0x40 }
- { offsetInCU: 0x53, offset: 0x3EDCE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwxx', symObjAddr: 0x80, symBinAddr: 0xE660, symSize: 0x20 }
- { offsetInCU: 0x67, offset: 0x3EDE2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwcp', symObjAddr: 0xA0, symBinAddr: 0xE680, symSize: 0x40 }
- { offsetInCU: 0x7B, offset: 0x3EDF6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwca', symObjAddr: 0xE0, symBinAddr: 0xE6C0, symSize: 0x80 }
- { offsetInCU: 0x8F, offset: 0x3EE0A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwta', symObjAddr: 0x170, symBinAddr: 0xE740, symSize: 0x50 }
- { offsetInCU: 0xA3, offset: 0x3EE1E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwet', symObjAddr: 0x1C0, symBinAddr: 0xE790, symSize: 0x50 }
- { offsetInCU: 0xB7, offset: 0x3EE32, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwst', symObjAddr: 0x210, symBinAddr: 0xE7E0, symSize: 0x50 }
- { offsetInCU: 0xCB, offset: 0x3EE46, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwug', symObjAddr: 0x260, symBinAddr: 0xE830, symSize: 0x20 }
- { offsetInCU: 0xDF, offset: 0x3EE5A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwup', symObjAddr: 0x280, symBinAddr: 0xE850, symSize: 0x10 }
- { offsetInCU: 0xF3, offset: 0x3EE6E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwui', symObjAddr: 0x290, symBinAddr: 0xE860, symSize: 0x30 }
- { offsetInCU: 0x107, offset: 0x3EE82, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOMa', symObjAddr: 0x2C0, symBinAddr: 0xE890, symSize: 0xA }
- { offsetInCU: 0x12C, offset: 0x3EEA7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xE5E0, symSize: 0x10 }
- { offsetInCU: 0x148, offset: 0x3EEC3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP5_codeSivgTW', symObjAddr: 0x10, symBinAddr: 0xE5F0, symSize: 0x10 }
- { offsetInCU: 0x164, offset: 0x3EEDF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x20, symBinAddr: 0xE600, symSize: 0x10 }
- { offsetInCU: 0x180, offset: 0x3EEFB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x30, symBinAddr: 0xE610, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x3EF8F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xE8A0, symSize: 0x40 }
- { offsetInCU: 0x52, offset: 0x3EFBA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xE8A0, symSize: 0x40 }
- { offsetInCU: 0xBB, offset: 0x3F023, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY0_', symObjAddr: 0x40, symBinAddr: 0xE8E0, symSize: 0x200 }
- { offsetInCU: 0x394, offset: 0x3F2FC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTQ1_', symObjAddr: 0x240, symBinAddr: 0xEAE0, symSize: 0x80 }
- { offsetInCU: 0x48D, offset: 0x3F3F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY2_', symObjAddr: 0x2C0, symBinAddr: 0xEB60, symSize: 0x140 }
- { offsetInCU: 0x5AF, offset: 0x3F517, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY3_', symObjAddr: 0x400, symBinAddr: 0xECA0, symSize: 0x60 }
- { offsetInCU: 0x696, offset: 0x3F5FE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x490, symBinAddr: 0xED30, symSize: 0x90 }
- { offsetInCU: 0x72D, offset: 0x3F695, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x520, symBinAddr: 0xEDC0, symSize: 0x70 }
- { offsetInCU: 0x7B6, offset: 0x3F71E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfd', symObjAddr: 0x590, symBinAddr: 0xEE30, symSize: 0x20 }
- { offsetInCU: 0x815, offset: 0x3F77D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfD', symObjAddr: 0x5B0, symBinAddr: 0xEE50, symSize: 0x30 }
- { offsetInCU: 0xA42, offset: 0x3F9AA, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x460, symBinAddr: 0xED00, symSize: 0x30 }
- { offsetInCU: 0xB2A, offset: 0x3FA92, size: 0x8, addend: 0x0, symName: '_$sSGsE4next10upperBoundqd__qd___ts17FixedWidthIntegerRd__SURd__lFs27SystemRandomNumberGeneratorV_SuTg5', symObjAddr: 0x5E0, symBinAddr: 0xEE80, symSize: 0xB0 }
- { offsetInCU: 0xBF7, offset: 0x3FB5F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCMa', symObjAddr: 0x690, symBinAddr: 0xEF30, symSize: 0x14 }
- { offsetInCU: 0x27, offset: 0x3FD0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xEF50, symSize: 0x40 }
- { offsetInCU: 0x6C, offset: 0x3FD50, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xEF50, symSize: 0x40 }
- { offsetInCU: 0xDB, offset: 0x3FDBF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ', symObjAddr: 0x80, symBinAddr: 0xEF90, symSize: 0x10 }
- { offsetInCU: 0x10A, offset: 0x3FDEE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF', symObjAddr: 0x90, symBinAddr: 0xEFA0, symSize: 0x20 }
- { offsetInCU: 0x1A0, offset: 0x3FE84, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO9hashValueSivg', symObjAddr: 0xB0, symBinAddr: 0xEFC0, symSize: 0x40 }
- { offsetInCU: 0x29B, offset: 0x3FF7F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xF0, symBinAddr: 0xF000, symSize: 0x10 }
- { offsetInCU: 0x2F1, offset: 0x3FFD5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH9hashValueSivgTW', symObjAddr: 0x100, symBinAddr: 0xF010, symSize: 0x40 }
- { offsetInCU: 0x3D5, offset: 0x400B9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x140, symBinAddr: 0xF050, symSize: 0x20 }
- { offsetInCU: 0x461, offset: 0x40145, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAAsADP8allCases03AllJ0QzvgZTW', symObjAddr: 0x270, symBinAddr: 0xF180, symSize: 0x50 }
- { offsetInCU: 0x4FD, offset: 0x401E1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASQWb', symObjAddr: 0x1A0, symBinAddr: 0xF0B0, symSize: 0x10 }
- { offsetInCU: 0x511, offset: 0x401F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOACSQAAWl', symObjAddr: 0x1B0, symBinAddr: 0xF0C0, symSize: 0x30 }
- { offsetInCU: 0x525, offset: 0x40209, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x1E0, symBinAddr: 0xF0F0, symSize: 0x10 }
- { offsetInCU: 0x539, offset: 0x4021D, size: 0x8, addend: 0x0, symName: '_$sSay14DouShouQiModel8CellTypeOGSayxGSlsWl', symObjAddr: 0x1F0, symBinAddr: 0xF100, symSize: 0x40 }
- { offsetInCU: 0x54D, offset: 0x40231, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x230, symBinAddr: 0xF140, symSize: 0x40 }
- { offsetInCU: 0x561, offset: 0x40245, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwet', symObjAddr: 0x2E0, symBinAddr: 0xF1D0, symSize: 0x80 }
- { offsetInCU: 0x575, offset: 0x40259, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwst', symObjAddr: 0x360, symBinAddr: 0xF250, symSize: 0xD0 }
- { offsetInCU: 0x589, offset: 0x4026D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwug', symObjAddr: 0x430, symBinAddr: 0xF320, symSize: 0x10 }
- { offsetInCU: 0x59D, offset: 0x40281, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwup', symObjAddr: 0x440, symBinAddr: 0xF330, symSize: 0x10 }
- { offsetInCU: 0x5B1, offset: 0x40295, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwui', symObjAddr: 0x450, symBinAddr: 0xF340, symSize: 0x10 }
- { offsetInCU: 0x5C5, offset: 0x402A9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOMa', symObjAddr: 0x460, symBinAddr: 0xF350, symSize: 0xA }
- { offsetInCU: 0x632, offset: 0x40316, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x160, symBinAddr: 0xF070, symSize: 0x40 }
- { offsetInCU: 0x2B, offset: 0x40457, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xF360, symSize: 0x60 }
- { offsetInCU: 0xA6, offset: 0x404D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xF360, symSize: 0x60 }
- { offsetInCU: 0x285, offset: 0x406B1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF', symObjAddr: 0x60, symBinAddr: 0xF3C0, symSize: 0x1B0 }
- { offsetInCU: 0x529, offset: 0x40955, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF', symObjAddr: 0x210, symBinAddr: 0xF570, symSize: 0xB0 }
- { offsetInCU: 0x764, offset: 0x40B90, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6nbRowsSivg', symObjAddr: 0x2C0, symBinAddr: 0xF620, symSize: 0x10 }
- { offsetInCU: 0x782, offset: 0x40BAE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9nbColumnsSivg', symObjAddr: 0x2D0, symBinAddr: 0xF630, symSize: 0x10 }
- { offsetInCU: 0x7A0, offset: 0x40BCC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg', symObjAddr: 0x2E0, symBinAddr: 0xF640, symSize: 0x10 }
- { offsetInCU: 0x7BE, offset: 0x40BEA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF', symObjAddr: 0x2F0, symBinAddr: 0xF650, symSize: 0xA0 }
- { offsetInCU: 0x9F2, offset: 0x40E1E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF', symObjAddr: 0x390, symBinAddr: 0xF6F0, symSize: 0x110 }
- { offsetInCU: 0xBA1, offset: 0x40FCD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF', symObjAddr: 0x4A0, symBinAddr: 0xF800, symSize: 0xF0 }
- { offsetInCU: 0xD6F, offset: 0x4119B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ', symObjAddr: 0x590, symBinAddr: 0xF8F0, symSize: 0x30 }
- { offsetInCU: 0xDB1, offset: 0x411DD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9hashValueSivg', symObjAddr: 0x5C0, symBinAddr: 0xF920, symSize: 0x50 }
- { offsetInCU: 0xE3D, offset: 0x41269, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH9hashValueSivgTW', symObjAddr: 0x610, symBinAddr: 0xF970, symSize: 0x50 }
- { offsetInCU: 0xECC, offset: 0x412F8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x660, symBinAddr: 0xF9C0, symSize: 0x10 }
- { offsetInCU: 0xEFA, offset: 0x41326, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6C0, symBinAddr: 0xFA20, symSize: 0x30 }
- { offsetInCU: 0x1189, offset: 0x415B5, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x6F0, symBinAddr: 0xFA50, symSize: 0x20 }
- { offsetInCU: 0x11C1, offset: 0x415ED, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x710, symBinAddr: 0xFA70, symSize: 0x20 }
- { offsetInCU: 0x11F9, offset: 0x41625, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0x730, symBinAddr: 0xFA90, symSize: 0x20 }
- { offsetInCU: 0x1231, offset: 0x4165D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASQWb', symObjAddr: 0x920, symBinAddr: 0xFC80, symSize: 0x10 }
- { offsetInCU: 0x1245, offset: 0x41671, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVACSQAAWl', symObjAddr: 0x930, symBinAddr: 0xFC90, symSize: 0x30 }
- { offsetInCU: 0x1259, offset: 0x41685, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwCP', symObjAddr: 0x960, symBinAddr: 0xFCC0, symSize: 0x30 }
- { offsetInCU: 0x126D, offset: 0x41699, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwxx', symObjAddr: 0x990, symBinAddr: 0xFCF0, symSize: 0x10 }
- { offsetInCU: 0x1281, offset: 0x416AD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwcp', symObjAddr: 0x9A0, symBinAddr: 0xFD00, symSize: 0x30 }
- { offsetInCU: 0x1295, offset: 0x416C1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwca', symObjAddr: 0x9D0, symBinAddr: 0xFD30, symSize: 0x40 }
- { offsetInCU: 0x12A9, offset: 0x416D5, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0xA10, symBinAddr: 0xFD70, symSize: 0x20 }
- { offsetInCU: 0x12BD, offset: 0x416E9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwta', symObjAddr: 0xA30, symBinAddr: 0xFD90, symSize: 0x30 }
- { offsetInCU: 0x12D1, offset: 0x416FD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwet', symObjAddr: 0xA60, symBinAddr: 0xFDC0, symSize: 0x40 }
- { offsetInCU: 0x12E5, offset: 0x41711, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwst', symObjAddr: 0xAA0, symBinAddr: 0xFE00, symSize: 0x40 }
- { offsetInCU: 0x12F9, offset: 0x41725, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVMa', symObjAddr: 0xAE0, symBinAddr: 0xFE40, symSize: 0xA }
- { offsetInCU: 0x1452, offset: 0x4187E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x670, symBinAddr: 0xF9D0, symSize: 0x50 }
- { offsetInCU: 0x1490, offset: 0x418BC, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x750, symBinAddr: 0xFAB0, symSize: 0xA0 }
- { offsetInCU: 0x1564, offset: 0x41990, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSay14DouShouQiModel4CellVG_Tg5Tf4nnd_n', symObjAddr: 0x7F0, symBinAddr: 0xFB50, symSize: 0x130 }
- { offsetInCU: 0x27, offset: 0x41BD9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xFE50, symSize: 0x20 }
- { offsetInCU: 0x46, offset: 0x41BF8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xFE50, symSize: 0x20 }
- { offsetInCU: 0x85, offset: 0x41C37, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV11descriptionSSvg', symObjAddr: 0x20, symBinAddr: 0xFE70, symSize: 0xC0 }
- { offsetInCU: 0x176, offset: 0x41D28, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg', symObjAddr: 0xE0, symBinAddr: 0xFF30, symSize: 0x10 }
- { offsetInCU: 0x194, offset: 0x41D46, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV6animalAA6AnimalOvg', symObjAddr: 0xF0, symBinAddr: 0xFF40, symSize: 0x10 }
- { offsetInCU: 0x1B2, offset: 0x41D64, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF', symObjAddr: 0x100, symBinAddr: 0xFF50, symSize: 0x40 }
- { offsetInCU: 0x2E8, offset: 0x41E9A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ', symObjAddr: 0x140, symBinAddr: 0xFF90, symSize: 0x30 }
- { offsetInCU: 0x32D, offset: 0x41EDF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9hashValueSivg', symObjAddr: 0x170, symBinAddr: 0xFFC0, symSize: 0x50 }
- { offsetInCU: 0x4C4, offset: 0x42076, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1C0, symBinAddr: 0x10010, symSize: 0x10 }
- { offsetInCU: 0x4EF, offset: 0x420A1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH9hashValueSivgTW', symObjAddr: 0x1D0, symBinAddr: 0x10020, symSize: 0x50 }
- { offsetInCU: 0x6A3, offset: 0x42255, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x220, symBinAddr: 0x10070, symSize: 0x40 }
- { offsetInCU: 0x808, offset: 0x423BA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2B0, symBinAddr: 0x10100, symSize: 0x30 }
- { offsetInCU: 0x8DA, offset: 0x4248C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASQWb', symObjAddr: 0x2E0, symBinAddr: 0x10130, symSize: 0x10 }
- { offsetInCU: 0x8EE, offset: 0x424A0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVACSQAAWl', symObjAddr: 0x2F0, symBinAddr: 0x10140, symSize: 0x30 }
- { offsetInCU: 0x902, offset: 0x424B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwet', symObjAddr: 0x340, symBinAddr: 0x10170, symSize: 0x90 }
- { offsetInCU: 0x916, offset: 0x424C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwst', symObjAddr: 0x3D0, symBinAddr: 0x10200, symSize: 0xE0 }
- { offsetInCU: 0x92A, offset: 0x424DC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVMa', symObjAddr: 0x4B0, symBinAddr: 0x102E0, symSize: 0xA }
- { offsetInCU: 0x9CF, offset: 0x42581, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x260, symBinAddr: 0x100B0, symSize: 0x50 }
- { offsetInCU: 0x27, offset: 0x42787, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x102F0, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x427AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x102F0, symSize: 0x10 }
- { offsetInCU: 0x6E, offset: 0x427CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x50, symBinAddr: 0x10340, symSize: 0x10 }
- { offsetInCU: 0x9F, offset: 0x427FF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x60, symBinAddr: 0x10350, symSize: 0x110 }
- { offsetInCU: 0x15B, offset: 0x428BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwCP', symObjAddr: 0x170, symBinAddr: 0x10460, symSize: 0x30 }
- { offsetInCU: 0x16F, offset: 0x428CF, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x1B0, symBinAddr: 0x10490, symSize: 0x20 }
- { offsetInCU: 0x183, offset: 0x428E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwet', symObjAddr: 0x1D0, symBinAddr: 0x104B0, symSize: 0x50 }
- { offsetInCU: 0x197, offset: 0x428F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwst', symObjAddr: 0x220, symBinAddr: 0x10500, symSize: 0x50 }
- { offsetInCU: 0x1AB, offset: 0x4290B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwug', symObjAddr: 0x270, symBinAddr: 0x10550, symSize: 0x20 }
- { offsetInCU: 0x1BF, offset: 0x4291F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwup', symObjAddr: 0x290, symBinAddr: 0x10570, symSize: 0x10 }
- { offsetInCU: 0x1D3, offset: 0x42933, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwui', symObjAddr: 0x2A0, symBinAddr: 0x10580, symSize: 0x20 }
- { offsetInCU: 0x1E7, offset: 0x42947, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOMa', symObjAddr: 0x2C0, symBinAddr: 0x105A0, symSize: 0xA }
- { offsetInCU: 0x20C, offset: 0x4296C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP7_domainSSvgTW', symObjAddr: 0x10, symBinAddr: 0x10300, symSize: 0x10 }
- { offsetInCU: 0x228, offset: 0x42988, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP5_codeSivgTW', symObjAddr: 0x20, symBinAddr: 0x10310, symSize: 0x10 }
- { offsetInCU: 0x244, offset: 0x429A4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x30, symBinAddr: 0x10320, symSize: 0x10 }
- { offsetInCU: 0x260, offset: 0x429C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x40, symBinAddr: 0x10330, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x42A64, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x105B0, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x42A88, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x105B0, symSize: 0x10 }
- { offsetInCU: 0x7A, offset: 0x42AB7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg', symObjAddr: 0x10, symBinAddr: 0x105C0, symSize: 0x20 }
- { offsetInCU: 0xA5, offset: 0x42AE2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF', symObjAddr: 0x30, symBinAddr: 0x105E0, symSize: 0x20 }
- { offsetInCU: 0x13B, offset: 0x42B78, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO9hashValueSivg', symObjAddr: 0x50, symBinAddr: 0x10600, symSize: 0x40 }
- { offsetInCU: 0x236, offset: 0x42C73, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x90, symBinAddr: 0x10640, symSize: 0x10 }
- { offsetInCU: 0x28C, offset: 0x42CC9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH9hashValueSivgTW', symObjAddr: 0xA0, symBinAddr: 0x10650, symSize: 0x40 }
- { offsetInCU: 0x370, offset: 0x42DAD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x10690, symSize: 0x20 }
- { offsetInCU: 0x3F9, offset: 0x42E36, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASQWb', symObjAddr: 0x140, symBinAddr: 0x106F0, symSize: 0x10 }
- { offsetInCU: 0x40D, offset: 0x42E4A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOACSQAAWl', symObjAddr: 0x150, symBinAddr: 0x10700, symSize: 0x30 }
- { offsetInCU: 0x421, offset: 0x42E5E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwet', symObjAddr: 0x1A0, symBinAddr: 0x10730, symSize: 0x80 }
- { offsetInCU: 0x435, offset: 0x42E72, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwst', symObjAddr: 0x220, symBinAddr: 0x107B0, symSize: 0xD0 }
- { offsetInCU: 0x449, offset: 0x42E86, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwug', symObjAddr: 0x2F0, symBinAddr: 0x10880, symSize: 0x10 }
- { offsetInCU: 0x45D, offset: 0x42E9A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwup', symObjAddr: 0x300, symBinAddr: 0x10890, symSize: 0x10 }
- { offsetInCU: 0x471, offset: 0x42EAE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwui', symObjAddr: 0x310, symBinAddr: 0x108A0, symSize: 0x10 }
- { offsetInCU: 0x485, offset: 0x42EC2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOMa', symObjAddr: 0x320, symBinAddr: 0x108B0, symSize: 0xA }
- { offsetInCU: 0x4DD, offset: 0x42F1A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x100, symBinAddr: 0x106B0, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x43045, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x108C0, symSize: 0x70 }
- { offsetInCU: 0xD3, offset: 0x430F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x108C0, symSize: 0x70 }
- { offsetInCU: 0x145, offset: 0x43163, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfd', symObjAddr: 0x70, symBinAddr: 0x10930, symSize: 0x20 }
- { offsetInCU: 0x1AA, offset: 0x431C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x90, symBinAddr: 0x10950, symSize: 0x90 }
- { offsetInCU: 0x248, offset: 0x43266, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfD', symObjAddr: 0x120, symBinAddr: 0x109E0, symSize: 0x30 }
- { offsetInCU: 0x2A2, offset: 0x432C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCMa', symObjAddr: 0x150, symBinAddr: 0x10A10, symSize: 0x14 }
- { offsetInCU: 0x27, offset: 0x43389, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10A30, symSize: 0x10 }
- { offsetInCU: 0x46, offset: 0x433A8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10A30, symSize: 0x10 }
- { offsetInCU: 0x5A, offset: 0x433BC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfC', symObjAddr: 0x10, symBinAddr: 0x10A40, symSize: 0x20 }
- { offsetInCU: 0xC1, offset: 0x43423, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg', symObjAddr: 0x30, symBinAddr: 0x10A60, symSize: 0x10 }
- { offsetInCU: 0xDF, offset: 0x43441, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV9rowOriginSivg', symObjAddr: 0x40, symBinAddr: 0x10A70, symSize: 0x10 }
- { offsetInCU: 0xFD, offset: 0x4345F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV12columnOriginSivg', symObjAddr: 0x50, symBinAddr: 0x10A80, symSize: 0x10 }
- { offsetInCU: 0x11B, offset: 0x4347D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV14rowDestinationSivg', symObjAddr: 0x60, symBinAddr: 0x10A90, symSize: 0x10 }
- { offsetInCU: 0x139, offset: 0x4349B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV17columnDestinationSivg', symObjAddr: 0x70, symBinAddr: 0x10AA0, symSize: 0x10 }
- { offsetInCU: 0x157, offset: 0x434B9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV11descriptionSSvg', symObjAddr: 0x80, symBinAddr: 0x10AB0, symSize: 0x1E0 }
- { offsetInCU: 0x287, offset: 0x435E9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x260, symBinAddr: 0x10C90, symSize: 0x10 }
- { offsetInCU: 0x2B2, offset: 0x43614, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x270, symBinAddr: 0x10CA0, symSize: 0x10 }
- { offsetInCU: 0x2E3, offset: 0x43645, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x280, symBinAddr: 0x10CB0, symSize: 0x40 }
- { offsetInCU: 0x365, offset: 0x436C7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwCP', symObjAddr: 0x2C0, symBinAddr: 0x10CF0, symSize: 0x30 }
- { offsetInCU: 0x379, offset: 0x436DB, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x300, symBinAddr: 0x10D20, symSize: 0x20 }
- { offsetInCU: 0x38D, offset: 0x436EF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwet', symObjAddr: 0x320, symBinAddr: 0x10D40, symSize: 0x40 }
- { offsetInCU: 0x3A1, offset: 0x43703, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwst', symObjAddr: 0x360, symBinAddr: 0x10D80, symSize: 0x50 }
- { offsetInCU: 0x3B5, offset: 0x43717, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVMa', symObjAddr: 0x3B0, symBinAddr: 0x10DD0, symSize: 0xA }
- { offsetInCU: 0x27, offset: 0x43808, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x10DE0, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x4382C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x10DE0, symSize: 0x10 }
- { offsetInCU: 0x66, offset: 0x43847, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfC', symObjAddr: 0x10, symBinAddr: 0x10DF0, symSize: 0x20 }
- { offsetInCU: 0xBA, offset: 0x4389B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0x130, symBinAddr: 0x10F10, symSize: 0x10 }
- { offsetInCU: 0xD6, offset: 0x438B7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x140, symBinAddr: 0x10F20, symSize: 0x20 }
- { offsetInCU: 0x10B, offset: 0x438EC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASQWb', symObjAddr: 0x40, symBinAddr: 0x10E20, symSize: 0x10 }
- { offsetInCU: 0x11F, offset: 0x43900, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOACSQAAWl', symObjAddr: 0x50, symBinAddr: 0x10E30, symSize: 0x30 }
- { offsetInCU: 0x149, offset: 0x4392A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwet', symObjAddr: 0x180, symBinAddr: 0x10F40, symSize: 0x80 }
- { offsetInCU: 0x15D, offset: 0x4393E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwst', symObjAddr: 0x200, symBinAddr: 0x10FC0, symSize: 0xD0 }
- { offsetInCU: 0x171, offset: 0x43952, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwug', symObjAddr: 0x2D0, symBinAddr: 0x11090, symSize: 0x10 }
- { offsetInCU: 0x185, offset: 0x43966, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwup', symObjAddr: 0x2E0, symBinAddr: 0x110A0, symSize: 0x10 }
- { offsetInCU: 0x199, offset: 0x4397A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwui', symObjAddr: 0x2F0, symBinAddr: 0x110B0, symSize: 0x10 }
- { offsetInCU: 0x1AD, offset: 0x4398E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOMa', symObjAddr: 0x300, symBinAddr: 0x110C0, symSize: 0xA }
- { offsetInCU: 0x1E7, offset: 0x439C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x30, symBinAddr: 0x10E10, symSize: 0x10 }
- { offsetInCU: 0x278, offset: 0x43A59, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH9hashValueSivgTW', symObjAddr: 0x80, symBinAddr: 0x10E60, symSize: 0x40 }
- { offsetInCU: 0x350, offset: 0x43B31, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xC0, symBinAddr: 0x10EA0, symSize: 0x30 }
- { offsetInCU: 0x3CC, offset: 0x43BAD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xF0, symBinAddr: 0x10ED0, symSize: 0x40 }
- { offsetInCU: 0x97, offset: 0x43D4B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvg', symObjAddr: 0xA0, symBinAddr: 0x11170, symSize: 0x40 }
- { offsetInCU: 0xDE, offset: 0x43D92, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvg', symObjAddr: 0x140, symBinAddr: 0x11210, symSize: 0x40 }
- { offsetInCU: 0xFB, offset: 0x43DAF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg', symObjAddr: 0x1B0, symBinAddr: 0x11280, symSize: 0x10 }
- { offsetInCU: 0x128, offset: 0x43DDC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfC', symObjAddr: 0x1C0, symBinAddr: 0x11290, symSize: 0x60 }
- { offsetInCU: 0x14D, offset: 0x43E01, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc', symObjAddr: 0x220, symBinAddr: 0x112F0, symSize: 0x4F0 }
- { offsetInCU: 0x563, offset: 0x44217, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_', symObjAddr: 0x800, symBinAddr: 0x11830, symSize: 0xB0 }
- { offsetInCU: 0x612, offset: 0x442C6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TQ0_', symObjAddr: 0x8B0, symBinAddr: 0x118E0, symSize: 0x70 }
- { offsetInCU: 0x6A3, offset: 0x44357, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TY2_', symObjAddr: 0x920, symBinAddr: 0x11950, symSize: 0x50 }
- { offsetInCU: 0x6E8, offset: 0x4439C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_', symObjAddr: 0x970, symBinAddr: 0x119A0, symSize: 0xB0 }
- { offsetInCU: 0x797, offset: 0x4444B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TQ0_', symObjAddr: 0xA20, symBinAddr: 0x11A50, symSize: 0x70 }
- { offsetInCU: 0x828, offset: 0x444DC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY1_', symObjAddr: 0xA90, symBinAddr: 0x11AC0, symSize: 0x30 }
- { offsetInCU: 0x882, offset: 0x44536, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY2_', symObjAddr: 0xAC0, symBinAddr: 0x11AF0, symSize: 0x50 }
- { offsetInCU: 0x8C7, offset: 0x4457B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfC', symObjAddr: 0xB10, symBinAddr: 0x11B40, symSize: 0x60 }
- { offsetInCU: 0x8EC, offset: 0x445A0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc', symObjAddr: 0xB70, symBinAddr: 0x11BA0, symSize: 0x320 }
- { offsetInCU: 0xA27, offset: 0x446DB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF', symObjAddr: 0xE90, symBinAddr: 0x11EC0, symSize: 0xD0 }
- { offsetInCU: 0xB3B, offset: 0x447EF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF', symObjAddr: 0xF60, symBinAddr: 0x11F90, symSize: 0xD0 }
- { offsetInCU: 0xC4F, offset: 0x44903, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF', symObjAddr: 0x10F0, symBinAddr: 0x12120, symSize: 0xD0 }
- { offsetInCU: 0xD63, offset: 0x44A17, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF', symObjAddr: 0x1220, symBinAddr: 0x12250, symSize: 0xD0 }
- { offsetInCU: 0xE77, offset: 0x44B2B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF', symObjAddr: 0x12F0, symBinAddr: 0x12320, symSize: 0xD0 }
- { offsetInCU: 0xF8B, offset: 0x44C3F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF', symObjAddr: 0x13C0, symBinAddr: 0x123F0, symSize: 0xE0 }
- { offsetInCU: 0x109F, offset: 0x44D53, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF', symObjAddr: 0x14A0, symBinAddr: 0x124D0, symSize: 0xE0 }
- { offsetInCU: 0x11B3, offset: 0x44E67, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF', symObjAddr: 0x1580, symBinAddr: 0x125B0, symSize: 0xE0 }
- { offsetInCU: 0x12E5, offset: 0x44F99, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC18notifyPieceRemoved33_4E9958627B7DCD90B6D32369387417C3LLyySi_SiAA0G0VtF', symObjAddr: 0x1660, symBinAddr: 0x12690, symSize: 0xC0 }
- { offsetInCU: 0x1497, offset: 0x4514B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF', symObjAddr: 0x1720, symBinAddr: 0x12750, symSize: 0x60 }
- { offsetInCU: 0x1876, offset: 0x4552A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY0_', symObjAddr: 0x1780, symBinAddr: 0x127B0, symSize: 0xD90 }
- { offsetInCU: 0x25A8, offset: 0x4625C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ1_', symObjAddr: 0x2510, symBinAddr: 0x13540, symSize: 0x70 }
- { offsetInCU: 0x26D3, offset: 0x46387, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY2_', symObjAddr: 0x2580, symBinAddr: 0x135B0, symSize: 0x280 }
- { offsetInCU: 0x29BD, offset: 0x46671, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ3_', symObjAddr: 0x2800, symBinAddr: 0x13830, symSize: 0x80 }
- { offsetInCU: 0x2AAE, offset: 0x46762, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY4_', symObjAddr: 0x2880, symBinAddr: 0x138B0, symSize: 0x150 }
- { offsetInCU: 0x2BE9, offset: 0x4689D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY5_', symObjAddr: 0x29D0, symBinAddr: 0x13A00, symSize: 0x70 }
- { offsetInCU: 0x2C97, offset: 0x4694B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC6isOverSbvg', symObjAddr: 0x2A40, symBinAddr: 0x13A70, symSize: 0x30 }
- { offsetInCU: 0x2CB4, offset: 0x46968, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKF', symObjAddr: 0x2A70, symBinAddr: 0x13AA0, symSize: 0x30 }
- { offsetInCU: 0x2D65, offset: 0x46A19, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY0_', symObjAddr: 0x2AA0, symBinAddr: 0x13AD0, symSize: 0x3D0 }
- { offsetInCU: 0x3221, offset: 0x46ED5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ1_', symObjAddr: 0x2E70, symBinAddr: 0x13EA0, symSize: 0x70 }
- { offsetInCU: 0x32B5, offset: 0x46F69, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY2_', symObjAddr: 0x2EE0, symBinAddr: 0x13F10, symSize: 0x270 }
- { offsetInCU: 0x350A, offset: 0x471BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ3_', symObjAddr: 0x3150, symBinAddr: 0x14180, symSize: 0x80 }
- { offsetInCU: 0x35AB, offset: 0x4725F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY4_', symObjAddr: 0x31D0, symBinAddr: 0x14200, symSize: 0x140 }
- { offsetInCU: 0x3697, offset: 0x4734B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY5_', symObjAddr: 0x3310, symBinAddr: 0x14340, symSize: 0x70 }
- { offsetInCU: 0x36E6, offset: 0x4739A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfd', symObjAddr: 0x3380, symBinAddr: 0x143B0, symSize: 0x80 }
- { offsetInCU: 0x3713, offset: 0x473C7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfD', symObjAddr: 0x3400, symBinAddr: 0x14430, symSize: 0x20 }
- { offsetInCU: 0x3741, offset: 0x473F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTK', symObjAddr: 0x0, symBinAddr: 0x110D0, symSize: 0x40 }
- { offsetInCU: 0x3777, offset: 0x4742B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTk', symObjAddr: 0x40, symBinAddr: 0x11110, symSize: 0x60 }
- { offsetInCU: 0x37AF, offset: 0x47463, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvpACTk', symObjAddr: 0xE0, symBinAddr: 0x111B0, symSize: 0x60 }
- { offsetInCU: 0x37F2, offset: 0x474A6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5Rules_pWOc', symObjAddr: 0x180, symBinAddr: 0x11250, symSize: 0x30 }
- { offsetInCU: 0x3929, offset: 0x475DD, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x770, symBinAddr: 0x117E0, symSize: 0x30 }
- { offsetInCU: 0x393D, offset: 0x475F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCMa', symObjAddr: 0x7A0, symBinAddr: 0x11810, symSize: 0x20 }
- { offsetInCU: 0x3A4F, offset: 0x47703, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TR', symObjAddr: 0x1030, symBinAddr: 0x12060, symSize: 0x70 }
- { offsetInCU: 0x3A89, offset: 0x4773D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTQ0_', symObjAddr: 0x10A0, symBinAddr: 0x120D0, symSize: 0x50 }
- { offsetInCU: 0x3B46, offset: 0x477FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TR', symObjAddr: 0x11C0, symBinAddr: 0x121F0, symSize: 0x60 }
- { offsetInCU: 0x3F7D, offset: 0x47C31, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TA', symObjAddr: 0x3420, symBinAddr: 0x14450, symSize: 0x60 }
- { offsetInCU: 0x3FAD, offset: 0x47C61, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TA', symObjAddr: 0x3530, symBinAddr: 0x144D0, symSize: 0x60 }
- { offsetInCU: 0x3FDD, offset: 0x47C91, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA.7', symObjAddr: 0x3590, symBinAddr: 0x14530, symSize: 0x90 }
- { offsetInCU: 0x4011, offset: 0x47CC5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVIegn_ACytIegnr_TRTA', symObjAddr: 0x3620, symBinAddr: 0x145C0, symSize: 0x20 }
- { offsetInCU: 0x4041, offset: 0x47CF5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTA', symObjAddr: 0x3640, symBinAddr: 0x145E0, symSize: 0x90 }
- { offsetInCU: 0x4071, offset: 0x47D25, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTA', symObjAddr: 0x36D0, symBinAddr: 0x14670, symSize: 0x80 }
- { offsetInCU: 0x40A1, offset: 0x47D55, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTATQ0_', symObjAddr: 0x3750, symBinAddr: 0x146F0, symSize: 0x50 }
- { offsetInCU: 0x40F5, offset: 0x47DA9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6ResultOAA6PlayerCSgIegnng_AceHytIegnnnr_TRTA', symObjAddr: 0x37A0, symBinAddr: 0x14740, symSize: 0x20 }
- { offsetInCU: 0x4129, offset: 0x47DDD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCIegnng_AceGytIegnnnr_TRTA', symObjAddr: 0x37C0, symBinAddr: 0x14760, symSize: 0x20 }
- { offsetInCU: 0x415D, offset: 0x47E11, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCSbIegnngy_AceGSbytIegnnnnr_TRTA', symObjAddr: 0x37E0, symBinAddr: 0x14780, symSize: 0x20 }
- { offsetInCU: 0x4191, offset: 0x47E45, size: 0x8, addend: 0x0, symName: '_$sS2i14DouShouQiModel5PieceVIegyyn_S2iACytIegnnnr_TRTA', symObjAddr: 0x3800, symBinAddr: 0x147A0, symSize: 0x20 }
- { offsetInCU: 0x41BA, offset: 0x47E6E, size: 0x8, addend: 0x0, symName: ___swift_mutable_project_boxed_opaque_existential_1, symObjAddr: 0x3820, symBinAddr: 0x147C0, symSize: 0x30 }
- { offsetInCU: 0x41CE, offset: 0x47E82, size: 0x8, addend: 0x0, symName: ___swift_assign_boxed_opaque_existential_1, symObjAddr: 0x3BF0, symBinAddr: 0x14B90, symSize: 0x130 }
...

@ -0,0 +1,618 @@
#if 0
#elif defined(__arm64__) && __arm64__
// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
#ifndef DOUSHOUQIMODEL_SWIFT_H
#define DOUSHOUQIMODEL_SWIFT_H
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgcc-compat"
#if !defined(__has_include)
# define __has_include(x) 0
#endif
#if !defined(__has_attribute)
# define __has_attribute(x) 0
#endif
#if !defined(__has_feature)
# define __has_feature(x) 0
#endif
#if !defined(__has_warning)
# define __has_warning(x) 0
#endif
#if __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif
#pragma clang diagnostic ignored "-Wauto-import"
#if defined(__OBJC__)
#include <Foundation/Foundation.h>
#endif
#if defined(__cplusplus)
#include <cstdint>
#include <cstddef>
#include <cstdbool>
#include <cstring>
#include <stdlib.h>
#include <new>
#include <type_traits>
#else
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
#endif
#if defined(__cplusplus)
#if defined(__arm64e__) && __has_include(<ptrauth.h>)
# include <ptrauth.h>
#else
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
# ifndef __ptrauth_swift_value_witness_function_pointer
# define __ptrauth_swift_value_witness_function_pointer(x)
# endif
# ifndef __ptrauth_swift_class_method_pointer
# define __ptrauth_swift_class_method_pointer(x)
# endif
#pragma clang diagnostic pop
#endif
#endif
#if !defined(SWIFT_TYPEDEFS)
# define SWIFT_TYPEDEFS 1
# if __has_include(<uchar.h>)
# include <uchar.h>
# elif !defined(__cplusplus)
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
# endif
typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
#endif
#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if !defined(SWIFT_CLASS_PROPERTY)
# if __has_feature(objc_class_property)
# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
# define SWIFT_CLASS_PROPERTY(...)
# endif
#endif
#if !defined(SWIFT_RUNTIME_NAME)
# if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
# else
# define SWIFT_RUNTIME_NAME(X)
# endif
#endif
#if !defined(SWIFT_COMPILE_NAME)
# if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
# else
# define SWIFT_COMPILE_NAME(X)
# endif
#endif
#if !defined(SWIFT_METHOD_FAMILY)
# if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
# else
# define SWIFT_METHOD_FAMILY(X)
# endif
#endif
#if !defined(SWIFT_NOESCAPE)
# if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
# else
# define SWIFT_NOESCAPE
# endif
#endif
#if !defined(SWIFT_RELEASES_ARGUMENT)
# if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
# else
# define SWIFT_RELEASES_ARGUMENT
# endif
#endif
#if !defined(SWIFT_WARN_UNUSED_RESULT)
# if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
# else
# define SWIFT_WARN_UNUSED_RESULT
# endif
#endif
#if !defined(SWIFT_NORETURN)
# if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
# else
# define SWIFT_NORETURN
# endif
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
#if !defined(SWIFT_RESILIENT_CLASS)
# if __has_attribute(objc_class_stub)
# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
# else
# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
# define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if __has_attribute(enum_extensibility)
# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
# define SWIFT_ENUM_ATTR(_extensibility)
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# if __has_feature(generalized_swift_name)
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# else
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
# endif
#endif
#if !defined(SWIFT_UNAVAILABLE)
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
#endif
#if !defined(SWIFT_UNAVAILABLE_MSG)
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
#endif
#if !defined(SWIFT_AVAILABILITY)
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
#endif
#if !defined(SWIFT_WEAK_IMPORT)
# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
#endif
#if !defined(SWIFT_DEPRECATED)
# define SWIFT_DEPRECATED __attribute__((deprecated))
#endif
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if !defined(SWIFT_DEPRECATED_OBJC)
# if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
# else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
# endif
#endif
#if defined(__OBJC__)
#if !defined(IBSegueAction)
# define IBSegueAction
#endif
#endif
#if !defined(SWIFT_EXTERN)
# if defined(__cplusplus)
# define SWIFT_EXTERN extern "C"
# else
# define SWIFT_EXTERN extern
# endif
#endif
#if !defined(SWIFT_CALL)
# define SWIFT_CALL __attribute__((swiftcall))
#endif
#if !defined(SWIFT_INDIRECT_RESULT)
# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
#endif
#if !defined(SWIFT_CONTEXT)
# define SWIFT_CONTEXT __attribute__((swift_context))
#endif
#if !defined(SWIFT_ERROR_RESULT)
# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
#endif
#if defined(__cplusplus)
# define SWIFT_NOEXCEPT noexcept
#else
# define SWIFT_NOEXCEPT
#endif
#if !defined(SWIFT_C_INLINE_THUNK)
# if __has_attribute(always_inline)
# if __has_attribute(nodebug)
# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
# else
# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
# endif
# else
# define SWIFT_C_INLINE_THUNK inline
# endif
#endif
#if defined(_WIN32)
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
#endif
#else
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL
#endif
#endif
#if defined(__OBJC__)
#if __has_feature(objc_modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
#endif
#endif
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
#if __has_warning("-Wpragma-clang-attribute")
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
#endif
#pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wnullability"
#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
#if __has_attribute(external_source_symbol)
# pragma push_macro("any")
# undef any
# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
# pragma pop_macro("any")
#endif
#if defined(__OBJC__)
#endif
#if __has_attribute(external_source_symbol)
# pragma clang attribute pop
#endif
#if defined(__cplusplus)
#endif
#pragma clang diagnostic pop
#endif
#elif defined(__x86_64__) && __x86_64__
// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
#ifndef DOUSHOUQIMODEL_SWIFT_H
#define DOUSHOUQIMODEL_SWIFT_H
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgcc-compat"
#if !defined(__has_include)
# define __has_include(x) 0
#endif
#if !defined(__has_attribute)
# define __has_attribute(x) 0
#endif
#if !defined(__has_feature)
# define __has_feature(x) 0
#endif
#if !defined(__has_warning)
# define __has_warning(x) 0
#endif
#if __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif
#pragma clang diagnostic ignored "-Wauto-import"
#if defined(__OBJC__)
#include <Foundation/Foundation.h>
#endif
#if defined(__cplusplus)
#include <cstdint>
#include <cstddef>
#include <cstdbool>
#include <cstring>
#include <stdlib.h>
#include <new>
#include <type_traits>
#else
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
#endif
#if defined(__cplusplus)
#if defined(__arm64e__) && __has_include(<ptrauth.h>)
# include <ptrauth.h>
#else
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
# ifndef __ptrauth_swift_value_witness_function_pointer
# define __ptrauth_swift_value_witness_function_pointer(x)
# endif
# ifndef __ptrauth_swift_class_method_pointer
# define __ptrauth_swift_class_method_pointer(x)
# endif
#pragma clang diagnostic pop
#endif
#endif
#if !defined(SWIFT_TYPEDEFS)
# define SWIFT_TYPEDEFS 1
# if __has_include(<uchar.h>)
# include <uchar.h>
# elif !defined(__cplusplus)
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
# endif
typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
#endif
#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if !defined(SWIFT_CLASS_PROPERTY)
# if __has_feature(objc_class_property)
# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
# define SWIFT_CLASS_PROPERTY(...)
# endif
#endif
#if !defined(SWIFT_RUNTIME_NAME)
# if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
# else
# define SWIFT_RUNTIME_NAME(X)
# endif
#endif
#if !defined(SWIFT_COMPILE_NAME)
# if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
# else
# define SWIFT_COMPILE_NAME(X)
# endif
#endif
#if !defined(SWIFT_METHOD_FAMILY)
# if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
# else
# define SWIFT_METHOD_FAMILY(X)
# endif
#endif
#if !defined(SWIFT_NOESCAPE)
# if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
# else
# define SWIFT_NOESCAPE
# endif
#endif
#if !defined(SWIFT_RELEASES_ARGUMENT)
# if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
# else
# define SWIFT_RELEASES_ARGUMENT
# endif
#endif
#if !defined(SWIFT_WARN_UNUSED_RESULT)
# if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
# else
# define SWIFT_WARN_UNUSED_RESULT
# endif
#endif
#if !defined(SWIFT_NORETURN)
# if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
# else
# define SWIFT_NORETURN
# endif
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
#if !defined(SWIFT_RESILIENT_CLASS)
# if __has_attribute(objc_class_stub)
# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
# else
# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
# define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if __has_attribute(enum_extensibility)
# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
# define SWIFT_ENUM_ATTR(_extensibility)
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# if __has_feature(generalized_swift_name)
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
# else
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
# endif
#endif
#if !defined(SWIFT_UNAVAILABLE)
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
#endif
#if !defined(SWIFT_UNAVAILABLE_MSG)
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
#endif
#if !defined(SWIFT_AVAILABILITY)
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
#endif
#if !defined(SWIFT_WEAK_IMPORT)
# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
#endif
#if !defined(SWIFT_DEPRECATED)
# define SWIFT_DEPRECATED __attribute__((deprecated))
#endif
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if !defined(SWIFT_DEPRECATED_OBJC)
# if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
# else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
# endif
#endif
#if defined(__OBJC__)
#if !defined(IBSegueAction)
# define IBSegueAction
#endif
#endif
#if !defined(SWIFT_EXTERN)
# if defined(__cplusplus)
# define SWIFT_EXTERN extern "C"
# else
# define SWIFT_EXTERN extern
# endif
#endif
#if !defined(SWIFT_CALL)
# define SWIFT_CALL __attribute__((swiftcall))
#endif
#if !defined(SWIFT_INDIRECT_RESULT)
# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
#endif
#if !defined(SWIFT_CONTEXT)
# define SWIFT_CONTEXT __attribute__((swift_context))
#endif
#if !defined(SWIFT_ERROR_RESULT)
# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
#endif
#if defined(__cplusplus)
# define SWIFT_NOEXCEPT noexcept
#else
# define SWIFT_NOEXCEPT
#endif
#if !defined(SWIFT_C_INLINE_THUNK)
# if __has_attribute(always_inline)
# if __has_attribute(nodebug)
# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
# else
# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
# endif
# else
# define SWIFT_C_INLINE_THUNK inline
# endif
#endif
#if defined(_WIN32)
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
#endif
#else
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL
#endif
#endif
#if defined(__OBJC__)
#if __has_feature(objc_modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
#endif
#endif
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
#if __has_warning("-Wpragma-clang-attribute")
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
#endif
#pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wnullability"
#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
#if __has_attribute(external_source_symbol)
# pragma push_macro("any")
# undef any
# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
# pragma pop_macro("any")
#endif
#if defined(__OBJC__)
#endif
#if __has_attribute(external_source_symbol)
# pragma clang attribute pop
#endif
#if defined(__cplusplus)
#endif
#pragma clang diagnostic pop
#endif
#else
#error unsupported Swift architecture
#endif

@ -0,0 +1,18 @@
//
// DouShouQiModel.h
// DouShouQiModel
//
// Created by Marc Chevaldonné on 14/05/2024.
//
#import <Foundation/Foundation.h>
//! Project version number for DouShouQiModel.
FOUNDATION_EXPORT double DouShouQiModelVersionNumber;
//! Project version string for DouShouQiModel.
FOUNDATION_EXPORT const unsigned char DouShouQiModelVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <DouShouQiModel/PublicHeader.h>

@ -0,0 +1,266 @@
// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel
// swift-module-flags-ignorable: -enable-bare-slash-regex
@_exported import DouShouQiModel
import Foundation
import Swift
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
public enum Result : Swift.Equatable {
case notFinished
case even
case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)
public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool
}
public enum WinningReason {
case denReached, noMorePieces, tooManyOccurences, noMovesLeft
public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
public enum BoardFailingReason {
case unknown, outOfBounds, cellNotEmpty, cellEmpty
public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public struct Cell : Swift.CustomStringConvertible, Swift.Equatable {
public var description: Swift.String {
get
}
public let cellType: DouShouQiModel.CellType
public let initialOwner: DouShouQiModel.Owner
public var piece: DouShouQiModel.Piece?
public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil)
public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool
}
public struct VerySimpleRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public protocol Rules {
static func createBoard() -> DouShouQiModel.Board
static func checkBoard(_ board: DouShouQiModel.Board) throws
func getNextPlayer() -> DouShouQiModel.Owner
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool
func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
var occurences: [DouShouQiModel.Board : Swift.Int] { get }
var historic: [DouShouQiModel.Move] { get }
}
public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public enum CellType : Swift.CaseIterable {
case unknown, jungle, water, trap, den
public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public typealias AllCases = [DouShouQiModel.CellType]
public static var allCases: [DouShouQiModel.CellType] {
get
}
public var hashValue: Swift.Int {
get
}
}
public struct Board : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public let nbRows: Swift.Int
public let nbColumns: Swift.Int
public var grid: [[DouShouQiModel.Cell]] {
get
}
public init?(withGrid grid: [[DouShouQiModel.Cell]])
public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int
public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)
public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public struct Piece : Swift.CustomStringConvertible, Swift.Hashable {
public var description: Swift.String {
get
}
public let owner: DouShouQiModel.Owner
public let animal: DouShouQiModel.Animal
public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal)
public func hash(into hasher: inout Swift.Hasher)
public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public enum InvalidBoardError : Swift.Error, Swift.Equatable {
case unknownError
case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int)
case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)
case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece)
case pieceWithNoOwner(piece: DouShouQiModel.Piece)
case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)
public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool
}
public enum Owner {
case noOne, player1, player2
public var simpleDescription: Swift.String {
get
}
public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
public let columnOrigin: Swift.Int
public let rowDestination: Swift.Int
public let columnDestination: Swift.Int
public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int)
public var description: Swift.String {
get
}
public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool
}
public enum Animal : Swift.Int {
case rat, cat, dog, wolf, leopard, tiger, lion, elephant
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}
extension DouShouQiModel.BoardFailingReason : Swift.Equatable {}
extension DouShouQiModel.BoardFailingReason : Swift.Hashable {}
extension DouShouQiModel.CellType : Swift.Equatable {}
extension DouShouQiModel.CellType : Swift.Hashable {}
extension DouShouQiModel.Owner : Swift.Equatable {}
extension DouShouQiModel.Owner : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.Equatable {}
extension DouShouQiModel.Animal : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.RawRepresentable {}

@ -0,0 +1,266 @@
// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel
// swift-module-flags-ignorable: -enable-bare-slash-regex
@_exported import DouShouQiModel
import Foundation
import Swift
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
public enum Result : Swift.Equatable {
case notFinished
case even
case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)
public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool
}
public enum WinningReason {
case denReached, noMorePieces, tooManyOccurences, noMovesLeft
public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
public enum BoardFailingReason {
case unknown, outOfBounds, cellNotEmpty, cellEmpty
public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public struct Cell : Swift.CustomStringConvertible, Swift.Equatable {
public var description: Swift.String {
get
}
public let cellType: DouShouQiModel.CellType
public let initialOwner: DouShouQiModel.Owner
public var piece: DouShouQiModel.Piece?
public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil)
public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool
}
public struct VerySimpleRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public protocol Rules {
static func createBoard() -> DouShouQiModel.Board
static func checkBoard(_ board: DouShouQiModel.Board) throws
func getNextPlayer() -> DouShouQiModel.Owner
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool
func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
var occurences: [DouShouQiModel.Board : Swift.Int] { get }
var historic: [DouShouQiModel.Move] { get }
}
public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public enum CellType : Swift.CaseIterable {
case unknown, jungle, water, trap, den
public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public typealias AllCases = [DouShouQiModel.CellType]
public static var allCases: [DouShouQiModel.CellType] {
get
}
public var hashValue: Swift.Int {
get
}
}
public struct Board : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public let nbRows: Swift.Int
public let nbColumns: Swift.Int
public var grid: [[DouShouQiModel.Cell]] {
get
}
public init?(withGrid grid: [[DouShouQiModel.Cell]])
public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int
public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)
public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public struct Piece : Swift.CustomStringConvertible, Swift.Hashable {
public var description: Swift.String {
get
}
public let owner: DouShouQiModel.Owner
public let animal: DouShouQiModel.Animal
public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal)
public func hash(into hasher: inout Swift.Hasher)
public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public enum InvalidBoardError : Swift.Error, Swift.Equatable {
case unknownError
case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int)
case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)
case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece)
case pieceWithNoOwner(piece: DouShouQiModel.Piece)
case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)
public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool
}
public enum Owner {
case noOne, player1, player2
public var simpleDescription: Swift.String {
get
}
public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
public let columnOrigin: Swift.Int
public let rowDestination: Swift.Int
public let columnDestination: Swift.Int
public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int)
public var description: Swift.String {
get
}
public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool
}
public enum Animal : Swift.Int {
case rat, cat, dog, wolf, leopard, tiger, lion, elephant
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}
extension DouShouQiModel.BoardFailingReason : Swift.Equatable {}
extension DouShouQiModel.BoardFailingReason : Swift.Hashable {}
extension DouShouQiModel.CellType : Swift.Equatable {}
extension DouShouQiModel.CellType : Swift.Hashable {}
extension DouShouQiModel.Owner : Swift.Equatable {}
extension DouShouQiModel.Owner : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.Equatable {}
extension DouShouQiModel.Animal : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.RawRepresentable {}

@ -0,0 +1,266 @@
// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
// swift-module-flags: -target x86_64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel
// swift-module-flags-ignorable: -enable-bare-slash-regex
@_exported import DouShouQiModel
import Foundation
import Swift
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
public enum Result : Swift.Equatable {
case notFinished
case even
case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)
public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool
}
public enum WinningReason {
case denReached, noMorePieces, tooManyOccurences, noMovesLeft
public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
public enum BoardFailingReason {
case unknown, outOfBounds, cellNotEmpty, cellEmpty
public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public struct Cell : Swift.CustomStringConvertible, Swift.Equatable {
public var description: Swift.String {
get
}
public let cellType: DouShouQiModel.CellType
public let initialOwner: DouShouQiModel.Owner
public var piece: DouShouQiModel.Piece?
public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil)
public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool
}
public struct VerySimpleRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public protocol Rules {
static func createBoard() -> DouShouQiModel.Board
static func checkBoard(_ board: DouShouQiModel.Board) throws
func getNextPlayer() -> DouShouQiModel.Owner
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool
func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
var occurences: [DouShouQiModel.Board : Swift.Int] { get }
var historic: [DouShouQiModel.Move] { get }
}
public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public enum CellType : Swift.CaseIterable {
case unknown, jungle, water, trap, den
public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public typealias AllCases = [DouShouQiModel.CellType]
public static var allCases: [DouShouQiModel.CellType] {
get
}
public var hashValue: Swift.Int {
get
}
}
public struct Board : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public let nbRows: Swift.Int
public let nbColumns: Swift.Int
public var grid: [[DouShouQiModel.Cell]] {
get
}
public init?(withGrid grid: [[DouShouQiModel.Cell]])
public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int
public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)
public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public struct Piece : Swift.CustomStringConvertible, Swift.Hashable {
public var description: Swift.String {
get
}
public let owner: DouShouQiModel.Owner
public let animal: DouShouQiModel.Animal
public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal)
public func hash(into hasher: inout Swift.Hasher)
public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public enum InvalidBoardError : Swift.Error, Swift.Equatable {
case unknownError
case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int)
case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)
case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece)
case pieceWithNoOwner(piece: DouShouQiModel.Piece)
case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)
public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool
}
public enum Owner {
case noOne, player1, player2
public var simpleDescription: Swift.String {
get
}
public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
public let columnOrigin: Swift.Int
public let rowDestination: Swift.Int
public let columnDestination: Swift.Int
public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int)
public var description: Swift.String {
get
}
public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool
}
public enum Animal : Swift.Int {
case rat, cat, dog, wolf, leopard, tiger, lion, elephant
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}
extension DouShouQiModel.BoardFailingReason : Swift.Equatable {}
extension DouShouQiModel.BoardFailingReason : Swift.Hashable {}
extension DouShouQiModel.CellType : Swift.Equatable {}
extension DouShouQiModel.CellType : Swift.Hashable {}
extension DouShouQiModel.Owner : Swift.Equatable {}
extension DouShouQiModel.Owner : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.Equatable {}
extension DouShouQiModel.Animal : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.RawRepresentable {}

@ -0,0 +1,266 @@
// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
// swift-module-flags: -target x86_64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel
// swift-module-flags-ignorable: -enable-bare-slash-regex
@_exported import DouShouQiModel
import Foundation
import Swift
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
public enum Result : Swift.Equatable {
case notFinished
case even
case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)
public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool
}
public enum WinningReason {
case denReached, noMorePieces, tooManyOccurences, noMovesLeft
public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public enum BoardResult : Swift.Equatable {
case unknown
case ok(piece: DouShouQiModel.Piece?)
case failed(reason: DouShouQiModel.BoardFailingReason)
public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool
}
public enum BoardFailingReason {
case unknown, outOfBounds, cellNotEmpty, cellEmpty
public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player {
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(_ move: DouShouQiModel.Move?) async throws
#endif
@objc deinit
}
public struct ClassicRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public struct Cell : Swift.CustomStringConvertible, Swift.Equatable {
public var description: Swift.String {
get
}
public let cellType: DouShouQiModel.CellType
public let initialOwner: DouShouQiModel.Owner
public var piece: DouShouQiModel.Piece?
public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil)
public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool
}
public struct VerySimpleRules : DouShouQiModel.Rules {
public static func createBoard() -> DouShouQiModel.Board
public static func checkBoard(_ board: DouShouQiModel.Board) throws
public init()
public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move])
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool
public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
public func getNextPlayer() -> DouShouQiModel.Owner
public var occurences: [DouShouQiModel.Board : Swift.Int] {
get
}
public var historic: [DouShouQiModel.Move] {
get
}
}
public protocol Rules {
static func createBoard() -> DouShouQiModel.Board
static func checkBoard(_ board: DouShouQiModel.Board) throws
func getNextPlayer() -> DouShouQiModel.Owner
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move]
func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move]
func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool
func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool
func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result)
mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws
var occurences: [DouShouQiModel.Board : Swift.Int] { get }
var historic: [DouShouQiModel.Move] { get }
}
public class Player {
final public let name: Swift.String
final public let id: DouShouQiModel.Owner
public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
#if compiler(>=5.3) && $AsyncAwait
public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws
#endif
@objc deinit
}
public enum GameError : Swift.Error {
case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard
}
@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer {
#if compiler(>=5.3) && $AsyncAwait
override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws
#endif
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public enum CellType : Swift.CaseIterable {
case unknown, jungle, water, trap, den
public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public typealias AllCases = [DouShouQiModel.CellType]
public static var allCases: [DouShouQiModel.CellType] {
get
}
public var hashValue: Swift.Int {
get
}
}
public struct Board : Swift.Hashable {
public func hash(into hasher: inout Swift.Hasher)
public let nbRows: Swift.Int
public let nbColumns: Swift.Int
public var grid: [[DouShouQiModel.Cell]] {
get
}
public init?(withGrid grid: [[DouShouQiModel.Cell]])
public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int
public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)
public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult
public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public struct Piece : Swift.CustomStringConvertible, Swift.Hashable {
public var description: Swift.String {
get
}
public let owner: DouShouQiModel.Owner
public let animal: DouShouQiModel.Animal
public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal)
public func hash(into hasher: inout Swift.Hasher)
public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool
public var hashValue: Swift.Int {
get
}
}
public enum InvalidBoardError : Swift.Error, Swift.Equatable {
case unknownError
case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int)
case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)
case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece)
case pieceWithNoOwner(piece: DouShouQiModel.Piece)
case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)
public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool
}
public enum Owner {
case noOne, player1, player2
public var simpleDescription: Swift.String {
get
}
public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player {
override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner)
@objc deinit
}
public struct Move : Swift.CustomStringConvertible, Swift.Equatable {
public let owner: DouShouQiModel.Owner
public let rowOrigin: Swift.Int
public let columnOrigin: Swift.Int
public let rowDestination: Swift.Int
public let columnDestination: Swift.Int
public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int)
public var description: Swift.String {
get
}
public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool
}
public enum Animal : Swift.Int {
case rat, cat, dog, wolf, leopard, tiger, lion, elephant
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
public class Game {
public var board: DouShouQiModel.Board {
get
}
public var rules: any DouShouQiModel.Rules {
get
}
final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player]
public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws
public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void)
#endif
#if compiler(>=5.3) && $AsyncAwait
public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void)
#endif
public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void)
public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void)
public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void)
public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void)
public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void)
#if compiler(>=5.3) && $AsyncAwait
public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws
#endif
public var isOver: Swift.Bool {
get
}
#if compiler(>=5.3) && $AsyncAwait
public func start() async throws
#endif
@objc deinit
}
extension DouShouQiModel.WinningReason : Swift.Equatable {}
extension DouShouQiModel.WinningReason : Swift.Hashable {}
extension DouShouQiModel.BoardFailingReason : Swift.Equatable {}
extension DouShouQiModel.BoardFailingReason : Swift.Hashable {}
extension DouShouQiModel.CellType : Swift.Equatable {}
extension DouShouQiModel.CellType : Swift.Hashable {}
extension DouShouQiModel.Owner : Swift.Equatable {}
extension DouShouQiModel.Owner : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.Equatable {}
extension DouShouQiModel.Animal : Swift.Hashable {}
extension DouShouQiModel.Animal : Swift.RawRepresentable {}

@ -0,0 +1,11 @@
framework module DouShouQiModel {
umbrella header "DouShouQiModel.h"
export *
module * { export * }
}
module DouShouQiModel.Swift {
header "DouShouQiModel-Swift.h"
requires objc
}

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>23E224</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>DouShouQiModel</string>
<key>CFBundleIdentifier</key>
<string>fr.uca.iut.DouShouQiModel</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>DouShouQiModel</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string></string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>14.2</string>
<key>DTSDKBuild</key>
<string>23C53</string>
<key>DTSDKName</key>
<string>macosx14.2</string>
<key>DTXcode</key>
<string>1520</string>
<key>DTXcodeBuild</key>
<string>15C500b</string>
<key>LSMinimumSystemVersion</key>
<string>13.0</string>
</dict>
</plist>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.fr.uca.iut.DouShouQiModel</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

@ -0,0 +1,505 @@
---
triple: 'arm64-apple-darwin'
binary-path: '/Users/marcchevaldonne/Library/Developer/Xcode/DerivedData/DouShouQiModel-bzzvovsrfmbhuydeirorjmljgtyf/Build/Intermediates.noindex/ArchiveIntermediates/DouShouQiModel/InstallationBuildProductsLocation/Library/Frameworks/DouShouQiModel.framework/Versions/A/DouShouQiModel'
relocations:
- { offsetInCU: 0x34, offset: 0x84A45, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionString, symObjAddr: 0x0, symBinAddr: 0x14E10, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x84A7A, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionNumber, symObjAddr: 0x38, symBinAddr: 0x14E48, symSize: 0x0 }
- { offsetInCU: 0x27, offset: 0x84AB7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x4CD8, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x84ADB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x4CD8, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x84AFE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x4CF0, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x84B1E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x4CF0, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x84B2F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x148, symBinAddr: 0x4E20, symSize: 0x68 }
- { offsetInCU: 0xDD, offset: 0x84B6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x4CDC, symSize: 0x14 }
- { offsetInCU: 0x110, offset: 0x84BA0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x1C, symBinAddr: 0x4CF4, symSize: 0x28 }
- { offsetInCU: 0x1A6, offset: 0x84C36, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO9hashValueSivg', symObjAddr: 0x44, symBinAddr: 0x4D1C, symSize: 0x44 }
- { offsetInCU: 0x2A0, offset: 0x84D30, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x4D60, symSize: 0x14 }
- { offsetInCU: 0x2C0, offset: 0x84D50, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x4D60, symSize: 0x14 }
- { offsetInCU: 0x300, offset: 0x84D90, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH9hashValueSivgTW', symObjAddr: 0x9C, symBinAddr: 0x4D74, symSize: 0x44 }
- { offsetInCU: 0x3E3, offset: 0x84E73, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x4DB8, symSize: 0x28 }
- { offsetInCU: 0x46C, offset: 0x84EFC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASQWb', symObjAddr: 0x1B0, symBinAddr: 0x4E88, symSize: 0x4 }
- { offsetInCU: 0x480, offset: 0x84F10, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOACSQAAWl', symObjAddr: 0x1B4, symBinAddr: 0x4E8C, symSize: 0x44 }
- { offsetInCU: 0x494, offset: 0x84F24, size: 0x8, addend: 0x0, symName: ___swift_memcpy2_1, symObjAddr: 0x1F8, symBinAddr: 0x4ED0, symSize: 0xC }
- { offsetInCU: 0x4A8, offset: 0x84F38, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x204, symBinAddr: 0x4EDC, symSize: 0x4 }
- { offsetInCU: 0x4BC, offset: 0x84F4C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwet', symObjAddr: 0x208, symBinAddr: 0x4EE0, symSize: 0xAC }
- { offsetInCU: 0x4D0, offset: 0x84F60, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwst', symObjAddr: 0x2B4, symBinAddr: 0x4F8C, symSize: 0xC4 }
- { offsetInCU: 0x4E4, offset: 0x84F74, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwug', symObjAddr: 0x378, symBinAddr: 0x5050, symSize: 0x14 }
- { offsetInCU: 0x4F8, offset: 0x84F88, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwup', symObjAddr: 0x38C, symBinAddr: 0x5064, symSize: 0x4 }
- { offsetInCU: 0x50C, offset: 0x84F9C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwui', symObjAddr: 0x390, symBinAddr: 0x5068, symSize: 0x24 }
- { offsetInCU: 0x520, offset: 0x84FB0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOMa', symObjAddr: 0x3B4, symBinAddr: 0x508C, symSize: 0x10 }
- { offsetInCU: 0x534, offset: 0x84FC4, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x3C4, symBinAddr: 0x509C, symSize: 0xC }
- { offsetInCU: 0x548, offset: 0x84FD8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwet', symObjAddr: 0x3D0, symBinAddr: 0x50A8, symSize: 0x90 }
- { offsetInCU: 0x55C, offset: 0x84FEC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwst', symObjAddr: 0x460, symBinAddr: 0x5138, symSize: 0xBC }
- { offsetInCU: 0x570, offset: 0x85000, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwug', symObjAddr: 0x51C, symBinAddr: 0x51F4, symSize: 0x8 }
- { offsetInCU: 0x584, offset: 0x85014, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwup', symObjAddr: 0x524, symBinAddr: 0x51FC, symSize: 0x4 }
- { offsetInCU: 0x598, offset: 0x85028, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwui', symObjAddr: 0x528, symBinAddr: 0x5200, symSize: 0x8 }
- { offsetInCU: 0x5AC, offset: 0x8503C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOMa', symObjAddr: 0x530, symBinAddr: 0x5208, symSize: 0x10 }
- { offsetInCU: 0x628, offset: 0x850B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x108, symBinAddr: 0x4DE0, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x851FC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x5218, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x85220, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x5218, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x85243, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x5230, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x85263, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x18, symBinAddr: 0x5230, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x85274, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x148, symBinAddr: 0x5360, symSize: 0x7C }
- { offsetInCU: 0xF5, offset: 0x852CA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x521C, symSize: 0x14 }
- { offsetInCU: 0x128, offset: 0x852FD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x1C, symBinAddr: 0x5234, symSize: 0x28 }
- { offsetInCU: 0x1BE, offset: 0x85393, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg', symObjAddr: 0x44, symBinAddr: 0x525C, symSize: 0x44 }
- { offsetInCU: 0x2B8, offset: 0x8548D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x52A0, symSize: 0x14 }
- { offsetInCU: 0x2D8, offset: 0x854AD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88, symBinAddr: 0x52A0, symSize: 0x14 }
- { offsetInCU: 0x318, offset: 0x854ED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH9hashValueSivgTW', symObjAddr: 0x9C, symBinAddr: 0x52B4, symSize: 0x44 }
- { offsetInCU: 0x3FB, offset: 0x855D0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x52F8, symSize: 0x28 }
- { offsetInCU: 0x484, offset: 0x85659, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASQWb', symObjAddr: 0x1C4, symBinAddr: 0x53DC, symSize: 0x4 }
- { offsetInCU: 0x498, offset: 0x8566D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOACSQAAWl', symObjAddr: 0x1C8, symBinAddr: 0x53E0, symSize: 0x44 }
- { offsetInCU: 0x4AC, offset: 0x85681, size: 0x8, addend: 0x0, symName: ___swift_memcpy3_1, symObjAddr: 0x20C, symBinAddr: 0x5424, symSize: 0x14 }
- { offsetInCU: 0x4C0, offset: 0x85695, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwet', symObjAddr: 0x224, symBinAddr: 0x5438, symSize: 0x74 }
- { offsetInCU: 0x4D4, offset: 0x856A9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwst', symObjAddr: 0x298, symBinAddr: 0x54AC, symSize: 0x8C }
- { offsetInCU: 0x4E8, offset: 0x856BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwug', symObjAddr: 0x324, symBinAddr: 0x5538, symSize: 0x18 }
- { offsetInCU: 0x4FC, offset: 0x856D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwup', symObjAddr: 0x33C, symBinAddr: 0x5550, symSize: 0x4 }
- { offsetInCU: 0x510, offset: 0x856E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwui', symObjAddr: 0x340, symBinAddr: 0x5554, symSize: 0x18 }
- { offsetInCU: 0x524, offset: 0x856F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOMa', symObjAddr: 0x358, symBinAddr: 0x556C, symSize: 0x10 }
- { offsetInCU: 0x538, offset: 0x8570D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwet', symObjAddr: 0x374, symBinAddr: 0x557C, symSize: 0x90 }
- { offsetInCU: 0x54C, offset: 0x85721, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwst', symObjAddr: 0x404, symBinAddr: 0x560C, symSize: 0xBC }
- { offsetInCU: 0x560, offset: 0x85735, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwug', symObjAddr: 0x4C0, symBinAddr: 0x56C8, symSize: 0x8 }
- { offsetInCU: 0x574, offset: 0x85749, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwup', symObjAddr: 0x4C8, symBinAddr: 0x56D0, symSize: 0x4 }
- { offsetInCU: 0x588, offset: 0x8575D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwui', symObjAddr: 0x4CC, symBinAddr: 0x56D4, symSize: 0x8 }
- { offsetInCU: 0x59C, offset: 0x85771, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOMa', symObjAddr: 0x4D4, symBinAddr: 0x56DC, symSize: 0x10 }
- { offsetInCU: 0x5FC, offset: 0x857D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x108, symBinAddr: 0x5320, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x85901, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x56EC, symSize: 0xD0 }
- { offsetInCU: 0x99, offset: 0x85973, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x56EC, symSize: 0xD0 }
- { offsetInCU: 0xEE, offset: 0x859C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc', symObjAddr: 0xD0, symBinAddr: 0x57BC, symSize: 0xB0 }
- { offsetInCU: 0x189, offset: 0x85A63, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x190, symBinAddr: 0x587C, symSize: 0xA0 }
- { offsetInCU: 0x1DE, offset: 0x85AB8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x230, symBinAddr: 0x591C, symSize: 0x70 }
- { offsetInCU: 0x22D, offset: 0x85B07, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x2A0, symBinAddr: 0x598C, symSize: 0xC }
- { offsetInCU: 0x2A9, offset: 0x85B83, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF', symObjAddr: 0x2AC, symBinAddr: 0x5998, symSize: 0x38 }
- { offsetInCU: 0x310, offset: 0x85BEA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF', symObjAddr: 0x2E4, symBinAddr: 0x59D0, symSize: 0x2C }
- { offsetInCU: 0x384, offset: 0x85C5E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY0_', symObjAddr: 0x310, symBinAddr: 0x59FC, symSize: 0x108 }
- { offsetInCU: 0x507, offset: 0x85DE1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTQ1_', symObjAddr: 0x418, symBinAddr: 0x5B04, symSize: 0x70 }
- { offsetInCU: 0x5BF, offset: 0x85E99, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY2_', symObjAddr: 0x488, symBinAddr: 0x5B74, symSize: 0x100 }
- { offsetInCU: 0x6AE, offset: 0x85F88, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY3_', symObjAddr: 0x588, symBinAddr: 0x5C74, symSize: 0x40 }
- { offsetInCU: 0x70C, offset: 0x85FE6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfd', symObjAddr: 0x5D0, symBinAddr: 0x5CBC, symSize: 0x2C }
- { offsetInCU: 0x75D, offset: 0x86037, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfD', symObjAddr: 0x5FC, symBinAddr: 0x5CE8, symSize: 0x34 }
- { offsetInCU: 0x87E, offset: 0x86158, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCAA4MoveVSgIeggr_SgWOe', symObjAddr: 0x180, symBinAddr: 0x586C, symSize: 0x10 }
- { offsetInCU: 0x92D, offset: 0x86207, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfE', symObjAddr: 0x5C8, symBinAddr: 0x5CB4, symSize: 0x8 }
- { offsetInCU: 0x95A, offset: 0x86234, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCMa', symObjAddr: 0x630, symBinAddr: 0x5D1C, symSize: 0x20 }
- { offsetInCU: 0x4F, offset: 0x863DC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0x29998, symBinAddr: 0x1DB40, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x863F6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LLShyAA5PieceVGvpZ', symObjAddr: 0x6D30, symBinAddr: 0x1C720, symSize: 0x0 }
- { offsetInCU: 0xD7, offset: 0x86464, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x6D38, symBinAddr: 0x1C728, symSize: 0x0 }
- { offsetInCU: 0xF1, offset: 0x8647E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardV_S2itKcGvpZ', symObjAddr: 0x6D40, symBinAddr: 0x1C730, symSize: 0x0 }
- { offsetInCU: 0x10B, offset: 0x86498, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x6D48, symBinAddr: 0x1C738, symSize: 0x0 }
- { offsetInCU: 0x125, offset: 0x864B2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellTypeSDyAA0iJ0OSaySi3row_Si3coltGGvpZ', symObjAddr: 0x299A0, symBinAddr: 0x1DB48, symSize: 0x0 }
- { offsetInCU: 0x284, offset: 0x86611, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x5E08, symSize: 0x2DC }
- { offsetInCU: 0xA99, offset: 0x86E26, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ', symObjAddr: 0x2DC, symBinAddr: 0x60E4, symSize: 0x78 }
- { offsetInCU: 0xAD7, offset: 0x86E64, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ', symObjAddr: 0x354, symBinAddr: 0x615C, symSize: 0x14 }
- { offsetInCU: 0xB01, offset: 0x86E8E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU_', symObjAddr: 0x3AC, symBinAddr: 0x61B4, symSize: 0x30 }
- { offsetInCU: 0xB41, offset: 0x86ECE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU0_', symObjAddr: 0x3DC, symBinAddr: 0x61E4, symSize: 0x78 }
- { offsetInCU: 0xB93, offset: 0x86F20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVACycfC', symObjAddr: 0x6A8, symBinAddr: 0x64B0, symSize: 0x30 }
- { offsetInCU: 0xBD8, offset: 0x86F65, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x6D8, symBinAddr: 0x64E0, symSize: 0x54 }
- { offsetInCU: 0xC3D, offset: 0x86FCA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV19findAuthorizedMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL5boardSayAA4MoveVGAA5BoardV_tF', symObjAddr: 0x72C, symBinAddr: 0x6534, symSize: 0x458 }
- { offsetInCU: 0x15D4, offset: 0x87961, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12findRatMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0xB84, symBinAddr: 0x698C, symSize: 0x62C }
- { offsetInCU: 0x1FE8, offset: 0x88375, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV17findElephantMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x11B0, symBinAddr: 0x6FB8, symSize: 0x5F8 }
- { offsetInCU: 0x295A, offset: 0x88CE7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16findDefaultMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x17A8, symBinAddr: 0x75B0, symSize: 0x6C4 }
- { offsetInCU: 0x340F, offset: 0x8979C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV21findTigerAndLionMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1E6C, symBinAddr: 0x7C74, symSize: 0x44C }
- { offsetInCU: 0x3A6C, offset: 0x89DF9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20findDirectNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x22B8, symBinAddr: 0x80C0, symSize: 0x300 }
- { offsetInCU: 0x3FE8, offset: 0x8A375, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV26findTigerAndLionNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x25B8, symBinAddr: 0x83C0, symSize: 0x56C }
- { offsetInCU: 0x491C, offset: 0x8ACA9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2B24, symBinAddr: 0x892C, symSize: 0x12C }
- { offsetInCU: 0x4AEC, offset: 0x8AE79, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x2C50, symBinAddr: 0x8A58, symSize: 0x140 }
- { offsetInCU: 0x4D56, offset: 0x8B0E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF', symObjAddr: 0x2D90, symBinAddr: 0x8B98, symSize: 0xA0 }
- { offsetInCU: 0x4E40, offset: 0x8B1CD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF', symObjAddr: 0x2E30, symBinAddr: 0x8C38, symSize: 0x104 }
- { offsetInCU: 0x50CF, offset: 0x8B45C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x2F34, symBinAddr: 0x8D3C, symSize: 0x3C }
- { offsetInCU: 0x51E0, offset: 0x8B56D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF', symObjAddr: 0x2F70, symBinAddr: 0x8D78, symSize: 0x188 }
- { offsetInCU: 0x537E, offset: 0x8B70B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF', symObjAddr: 0x30F8, symBinAddr: 0x8F00, symSize: 0x424 }
- { offsetInCU: 0x5879, offset: 0x8BC06, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0x351C, symBinAddr: 0x9324, symSize: 0x8 }
- { offsetInCU: 0x588D, offset: 0x8BC1A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg', symObjAddr: 0x3524, symBinAddr: 0x932C, symSize: 0x8 }
- { offsetInCU: 0x58BF, offset: 0x8BC4C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11createBoardAA0H0VyFZTW', symObjAddr: 0x352C, symBinAddr: 0x9334, symSize: 0x78 }
- { offsetInCU: 0x590C, offset: 0x8BC99, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10checkBoardyyAA0H0VKFZTW', symObjAddr: 0x35A4, symBinAddr: 0x93AC, symSize: 0x14 }
- { offsetInCU: 0x5944, offset: 0x8BCD1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0x35B8, symBinAddr: 0x93C0, symSize: 0x4 }
- { offsetInCU: 0x5960, offset: 0x8BCED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0x35BC, symBinAddr: 0x93C4, symSize: 0x14 }
- { offsetInCU: 0x597C, offset: 0x8BD09, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0x35D0, symBinAddr: 0x93D8, symSize: 0x14 }
- { offsetInCU: 0x5998, offset: 0x8BD25, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itFTW', symObjAddr: 0x35E4, symBinAddr: 0x93EC, symSize: 0x4 }
- { offsetInCU: 0x59B4, offset: 0x8BD41, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtFTW', symObjAddr: 0x35E8, symBinAddr: 0x93F0, symSize: 0x4 }
- { offsetInCU: 0x59D0, offset: 0x8BD5D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itFTW', symObjAddr: 0x35EC, symBinAddr: 0x93F4, symSize: 0x4 }
- { offsetInCU: 0x59EC, offset: 0x8BD79, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VALtKFTW', symObjAddr: 0x35F0, symBinAddr: 0x93F8, symSize: 0x14 }
- { offsetInCU: 0x5A21, offset: 0x8BDAE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3604, symBinAddr: 0x940C, symSize: 0x8 }
- { offsetInCU: 0x5A41, offset: 0x8BDCE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3604, symBinAddr: 0x940C, symSize: 0x8 }
- { offsetInCU: 0x5A66, offset: 0x8BDF3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x360C, symBinAddr: 0x9414, symSize: 0x8 }
- { offsetInCU: 0x5A86, offset: 0x8BE13, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x360C, symBinAddr: 0x9414, symSize: 0x8 }
- { offsetInCU: 0x5A99, offset: 0x8BE26, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZTf4nd_n', symObjAddr: 0x5710, symBinAddr: 0xB518, symSize: 0x28C }
- { offsetInCU: 0x5E0F, offset: 0x8C19C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20initPlacesByCellType33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardVFZTf4nd_n', symObjAddr: 0x599C, symBinAddr: 0xB7A4, symSize: 0x3A8 }
- { offsetInCU: 0x629F, offset: 0x8C62C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV23checkCellsByTypeIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x5D44, symBinAddr: 0xBB4C, symSize: 0x15C }
- { offsetInCU: 0x6492, offset: 0x8C81F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV18checkPiecesIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x5EA0, symBinAddr: 0xBCA8, symSize: 0x178 }
- { offsetInCU: 0x6572, offset: 0x8C8FF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15checkWaterCells33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6018, symBinAddr: 0xBE20, symSize: 0xDC }
- { offsetInCU: 0x6689, offset: 0x8CA16, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x368, symBinAddr: 0x6170, symSize: 0x14 }
- { offsetInCU: 0x66A3, offset: 0x8CA30, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x37C, symBinAddr: 0x6184, symSize: 0x30 }
- { offsetInCU: 0x66D9, offset: 0x8CA66, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x454, symBinAddr: 0x625C, symSize: 0x30 }
- { offsetInCU: 0x66F3, offset: 0x8CA80, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x510, symBinAddr: 0x6318, symSize: 0x14 }
- { offsetInCU: 0x670D, offset: 0x8CA9A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellType_WZ', symObjAddr: 0x524, symBinAddr: 0x632C, symSize: 0x24 }
- { offsetInCU: 0x6C29, offset: 0x8CFB6, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8setValue_6forKeyyq_n_xtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3614, symBinAddr: 0x941C, symSize: 0xB0 }
- { offsetInCU: 0x6C9E, offset: 0x8D02B, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x36C4, symBinAddr: 0x94CC, symSize: 0x70 }
- { offsetInCU: 0x6CCB, offset: 0x8D058, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3734, symBinAddr: 0x953C, symSize: 0x3C }
- { offsetInCU: 0x6D0E, offset: 0x8D09B, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3770, symBinAddr: 0x9578, symSize: 0x64 }
- { offsetInCU: 0x6D86, offset: 0x8D113, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x37D4, symBinAddr: 0x95DC, symSize: 0xE0 }
- { offsetInCU: 0x6EBE, offset: 0x8D24B, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x38B4, symBinAddr: 0x96BC, symSize: 0x20 }
- { offsetInCU: 0x6EE1, offset: 0x8D26E, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5.resume.0', symObjAddr: 0x38D4, symBinAddr: 0x96DC, symSize: 0x10 }
- { offsetInCU: 0x6F24, offset: 0x8D2B1, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x38E4, symBinAddr: 0x96EC, symSize: 0xC8 }
- { offsetInCU: 0x6F8C, offset: 0x8D319, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x39AC, symBinAddr: 0x97B4, symSize: 0xE0 }
- { offsetInCU: 0x6FE2, offset: 0x8D36F, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3A8C, symBinAddr: 0x9894, symSize: 0x78 }
- { offsetInCU: 0x704F, offset: 0x8D3DC, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3B6C, symBinAddr: 0x9974, symSize: 0x1C0 }
- { offsetInCU: 0x7179, offset: 0x8D506, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3D2C, symBinAddr: 0x9B34, symSize: 0x54 }
- { offsetInCU: 0x724A, offset: 0x8D5D7, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3D80, symBinAddr: 0x9B88, symSize: 0x260 }
- { offsetInCU: 0x740A, offset: 0x8D797, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4080, symBinAddr: 0x9E88, symSize: 0x1B0 }
- { offsetInCU: 0x748B, offset: 0x8D818, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4230, symBinAddr: 0xA038, symSize: 0x1C8 }
- { offsetInCU: 0x7525, offset: 0x8D8B2, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x43F8, symBinAddr: 0xA200, symSize: 0x358 }
- { offsetInCU: 0x76A4, offset: 0x8DA31, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4750, symBinAddr: 0xA558, symSize: 0x344 }
- { offsetInCU: 0x77B7, offset: 0x8DB44, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4A94, symBinAddr: 0xA89C, symSize: 0x154 }
- { offsetInCU: 0x79C2, offset: 0x8DD4F, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4BE8, symBinAddr: 0xA9F0, symSize: 0x180 }
- { offsetInCU: 0x7BD8, offset: 0x8DF65, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x4D68, symBinAddr: 0xAB70, symSize: 0x190 }
- { offsetInCU: 0x7C3C, offset: 0x8DFC9, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x4EF8, symBinAddr: 0xAD00, symSize: 0x298 }
- { offsetInCU: 0x7E42, offset: 0x8E1CF, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5190, symBinAddr: 0xAF98, symSize: 0x33C }
- { offsetInCU: 0x8072, offset: 0x8E3FF, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x54CC, symBinAddr: 0xB2D4, symSize: 0x1C }
- { offsetInCU: 0x808A, offset: 0x8E417, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x54E8, symBinAddr: 0xB2F0, symSize: 0x1C }
- { offsetInCU: 0x80D9, offset: 0x8E466, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x5504, symBinAddr: 0xB30C, symSize: 0x110 }
- { offsetInCU: 0x8231, offset: 0x8E5BE, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x5614, symBinAddr: 0xB41C, symSize: 0xFC }
- { offsetInCU: 0x84A2, offset: 0x8E82F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOACs0F0AAWl', symObjAddr: 0x62EC, symBinAddr: 0xC0F4, symSize: 0x44 }
- { offsetInCU: 0x84B6, offset: 0x8E843, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOACs0G0AAWl', symObjAddr: 0x6330, symBinAddr: 0xC138, symSize: 0x44 }
- { offsetInCU: 0x84CA, offset: 0x8E857, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwCP', symObjAddr: 0x6374, symBinAddr: 0xC17C, symSize: 0x34 }
- { offsetInCU: 0x84DE, offset: 0x8E86B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwxx', symObjAddr: 0x63A8, symBinAddr: 0xC1B0, symSize: 0x28 }
- { offsetInCU: 0x84F2, offset: 0x8E87F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwcp', symObjAddr: 0x63D0, symBinAddr: 0xC1D8, symSize: 0x34 }
- { offsetInCU: 0x8506, offset: 0x8E893, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwca', symObjAddr: 0x6404, symBinAddr: 0xC20C, symSize: 0x5C }
- { offsetInCU: 0x851A, offset: 0x8E8A7, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x6460, symBinAddr: 0xC268, symSize: 0xC }
- { offsetInCU: 0x852E, offset: 0x8E8BB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwta', symObjAddr: 0x646C, symBinAddr: 0xC274, symSize: 0x44 }
- { offsetInCU: 0x8542, offset: 0x8E8CF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwet', symObjAddr: 0x64B0, symBinAddr: 0xC2B8, symSize: 0x48 }
- { offsetInCU: 0x8556, offset: 0x8E8E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwst', symObjAddr: 0x64F8, symBinAddr: 0xC300, symSize: 0x3C }
- { offsetInCU: 0x856A, offset: 0x8E8F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVMa', symObjAddr: 0x6534, symBinAddr: 0xC33C, symSize: 0x10 }
- { offsetInCU: 0x857E, offset: 0x8E90B, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x6544, symBinAddr: 0xC34C, symSize: 0x40 }
- { offsetInCU: 0x8642, offset: 0x8E9CF, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14DouShouQiModel4MoveVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x6684, symBinAddr: 0xC48C, symSize: 0x178 }
- { offsetInCU: 0x8713, offset: 0x8EAA0, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14DouShouQiModel4MoveV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x67FC, symBinAddr: 0xC604, symSize: 0xC0 }
- { offsetInCU: 0x8927, offset: 0x8ECB4, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x548, symBinAddr: 0x6350, symSize: 0x4C }
- { offsetInCU: 0x8943, offset: 0x8ECD0, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x594, symBinAddr: 0x639C, symSize: 0x30 }
- { offsetInCU: 0x89EF, offset: 0x8ED7C, size: 0x8, addend: 0x0, symName: '_$sSh8containsySbxF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x5C4, symBinAddr: 0x63CC, symSize: 0xE4 }
- { offsetInCU: 0x8F81, offset: 0x8F30E, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5Tf4gd_n', symObjAddr: 0x60F4, symBinAddr: 0xBEFC, symSize: 0x100 }
- { offsetInCU: 0x90B3, offset: 0x8F440, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5BoardV_SiTg5Tf4gd_n', symObjAddr: 0x61F4, symBinAddr: 0xBFFC, symSize: 0xF8 }
- { offsetInCU: 0x9203, offset: 0x8F590, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5OwnerO_AC6PlayerCTg5Tf4gd_n', symObjAddr: 0x6584, symBinAddr: 0xC38C, symSize: 0x100 }
- { offsetInCU: 0x27, offset: 0x8F8E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xCAE0, symSize: 0x1C }
- { offsetInCU: 0x4B, offset: 0x8F909, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xCAE0, symSize: 0x1C }
- { offsetInCU: 0x9A, offset: 0x8F958, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV11descriptionSSvg', symObjAddr: 0x1C, symBinAddr: 0xCAFC, symSize: 0xF0 }
- { offsetInCU: 0x1DF, offset: 0x8FA9D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg', symObjAddr: 0x10C, symBinAddr: 0xCBEC, symSize: 0xC }
- { offsetInCU: 0x1FD, offset: 0x8FABB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg', symObjAddr: 0x118, symBinAddr: 0xCBF8, symSize: 0xC }
- { offsetInCU: 0x21B, offset: 0x8FAD9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg', symObjAddr: 0x124, symBinAddr: 0xCC04, symSize: 0xC }
- { offsetInCU: 0x239, offset: 0x8FAF7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs', symObjAddr: 0x130, symBinAddr: 0xCC10, symSize: 0xC }
- { offsetInCU: 0x277, offset: 0x8FB35, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM', symObjAddr: 0x13C, symBinAddr: 0xCC1C, symSize: 0x10 }
- { offsetInCU: 0x2A5, offset: 0x8FB63, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM.resume.0', symObjAddr: 0x14C, symBinAddr: 0xCC2C, symSize: 0x4 }
- { offsetInCU: 0x2D0, offset: 0x8FB8E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ', symObjAddr: 0x150, symBinAddr: 0xCC30, symSize: 0x4 }
- { offsetInCU: 0x2E4, offset: 0x8FBA2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x154, symBinAddr: 0xCC34, symSize: 0x4 }
- { offsetInCU: 0x30F, offset: 0x8FBCD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x158, symBinAddr: 0xCC38, symSize: 0x4 }
- { offsetInCU: 0x32F, offset: 0x8FBED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x158, symBinAddr: 0xCC38, symSize: 0x4 }
- { offsetInCU: 0x340, offset: 0x8FBFE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x15C, symBinAddr: 0xCC3C, symSize: 0x58 }
- { offsetInCU: 0x3B4, offset: 0x8FC72, size: 0x8, addend: 0x0, symName: ___swift_memcpy4_1, symObjAddr: 0x1B4, symBinAddr: 0xCC94, symSize: 0xC }
- { offsetInCU: 0x3C8, offset: 0x8FC86, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwet', symObjAddr: 0x1C4, symBinAddr: 0xCCA0, symSize: 0x44 }
- { offsetInCU: 0x3DC, offset: 0x8FC9A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwst', symObjAddr: 0x208, symBinAddr: 0xCCE4, symSize: 0x40 }
- { offsetInCU: 0x3F0, offset: 0x8FCAE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVMa', symObjAddr: 0x248, symBinAddr: 0xCD24, symSize: 0x10 }
- { offsetInCU: 0x2B, offset: 0x8FDBC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xCD34, symSize: 0x1A4 }
- { offsetInCU: 0x4F, offset: 0x8FDE0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0xB330, symBinAddr: 0x1DB50, symSize: 0x0 }
- { offsetInCU: 0x1A2, offset: 0x8FF33, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xCD34, symSize: 0x1A4 }
- { offsetInCU: 0x582, offset: 0x90313, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ', symObjAddr: 0x1A4, symBinAddr: 0xCED8, symSize: 0x78 }
- { offsetInCU: 0x5C0, offset: 0x90351, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ', symObjAddr: 0x21C, symBinAddr: 0xCF50, symSize: 0x14 }
- { offsetInCU: 0x5DB, offset: 0x9036C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVACycfC', symObjAddr: 0x230, symBinAddr: 0xCF64, symSize: 0x30 }
- { offsetInCU: 0x61F, offset: 0x903B0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x260, symBinAddr: 0xCF94, symSize: 0x54 }
- { offsetInCU: 0x683, offset: 0x90414, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2B4, symBinAddr: 0xCFE8, symSize: 0x17C }
- { offsetInCU: 0x99E, offset: 0x9072F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x430, symBinAddr: 0xD164, symSize: 0x29C }
- { offsetInCU: 0xCE8, offset: 0x90A79, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF', symObjAddr: 0x6CC, symBinAddr: 0xD400, symSize: 0xA0 }
- { offsetInCU: 0xDF9, offset: 0x90B8A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF', symObjAddr: 0x76C, symBinAddr: 0xD4A0, symSize: 0x10C }
- { offsetInCU: 0x1033, offset: 0x90DC4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x878, symBinAddr: 0xD5AC, symSize: 0x3C }
- { offsetInCU: 0x1143, offset: 0x90ED4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF', symObjAddr: 0x8B4, symBinAddr: 0xD5E8, symSize: 0x11C }
- { offsetInCU: 0x12BB, offset: 0x9104C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF', symObjAddr: 0x9D0, symBinAddr: 0xD704, symSize: 0x1E4 }
- { offsetInCU: 0x1477, offset: 0x91208, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0xBB4, symBinAddr: 0xD8E8, symSize: 0x8 }
- { offsetInCU: 0x148B, offset: 0x9121C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg', symObjAddr: 0xBBC, symBinAddr: 0xD8F0, symSize: 0x8 }
- { offsetInCU: 0x14BD, offset: 0x9124E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11createBoardAA0I0VyFZTW', symObjAddr: 0xBC4, symBinAddr: 0xD8F8, symSize: 0x78 }
- { offsetInCU: 0x150A, offset: 0x9129B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10checkBoardyyAA0I0VKFZTW', symObjAddr: 0xC3C, symBinAddr: 0xD970, symSize: 0x14 }
- { offsetInCU: 0x1542, offset: 0x912D3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0xC50, symBinAddr: 0xD984, symSize: 0x4 }
- { offsetInCU: 0x155E, offset: 0x912EF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0xC54, symBinAddr: 0xD988, symSize: 0x14 }
- { offsetInCU: 0x157A, offset: 0x9130B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0xC68, symBinAddr: 0xD99C, symSize: 0x14 }
- { offsetInCU: 0x1596, offset: 0x91327, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itFTW', symObjAddr: 0xC7C, symBinAddr: 0xD9B0, symSize: 0x4 }
- { offsetInCU: 0x15B2, offset: 0x91343, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtFTW', symObjAddr: 0xC80, symBinAddr: 0xD9B4, symSize: 0x4 }
- { offsetInCU: 0x15CE, offset: 0x9135F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itFTW', symObjAddr: 0xC84, symBinAddr: 0xD9B8, symSize: 0x18 }
- { offsetInCU: 0x15EA, offset: 0x9137B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VALtKFTW', symObjAddr: 0xC9C, symBinAddr: 0xD9D0, symSize: 0x14 }
- { offsetInCU: 0x161E, offset: 0x913AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCB0, symBinAddr: 0xD9E4, symSize: 0x8 }
- { offsetInCU: 0x163E, offset: 0x913CF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCB0, symBinAddr: 0xD9E4, symSize: 0x8 }
- { offsetInCU: 0x1661, offset: 0x913F2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCB8, symBinAddr: 0xD9EC, symSize: 0x8 }
- { offsetInCU: 0x1681, offset: 0x91412, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCB8, symBinAddr: 0xD9EC, symSize: 0x8 }
- { offsetInCU: 0x1693, offset: 0x91424, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV16checkCellsByType33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xCC0, symBinAddr: 0xD9F4, symSize: 0x144 }
- { offsetInCU: 0x1895, offset: 0x91626, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11checkPieces33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xE04, symBinAddr: 0xDB38, symSize: 0x220 }
- { offsetInCU: 0x1BFD, offset: 0x9198E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZTf4nd_n', symObjAddr: 0x1024, symBinAddr: 0xDD58, symSize: 0xB8 }
- { offsetInCU: 0x1E82, offset: 0x91C13, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwCP', symObjAddr: 0x11A4, symBinAddr: 0xDE10, symSize: 0x34 }
- { offsetInCU: 0x1E96, offset: 0x91C27, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwxx', symObjAddr: 0x11D8, symBinAddr: 0xDE44, symSize: 0x28 }
- { offsetInCU: 0x1EAA, offset: 0x91C3B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwcp', symObjAddr: 0x1200, symBinAddr: 0xDE6C, symSize: 0x34 }
- { offsetInCU: 0x1EBE, offset: 0x91C4F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwca', symObjAddr: 0x1234, symBinAddr: 0xDEA0, symSize: 0x5C }
- { offsetInCU: 0x1ED2, offset: 0x91C63, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwta', symObjAddr: 0x129C, symBinAddr: 0xDEFC, symSize: 0x44 }
- { offsetInCU: 0x1EE6, offset: 0x91C77, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwet', symObjAddr: 0x12E0, symBinAddr: 0xDF40, symSize: 0x48 }
- { offsetInCU: 0x1EFA, offset: 0x91C8B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwst', symObjAddr: 0x1328, symBinAddr: 0xDF88, symSize: 0x3C }
- { offsetInCU: 0x1F0E, offset: 0x91C9F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVMa', symObjAddr: 0x1364, symBinAddr: 0xDFC4, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x92041, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xE04C, symSize: 0x68 }
- { offsetInCU: 0x7A, offset: 0x92070, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfd', symObjAddr: 0x88, symBinAddr: 0xE0D4, symSize: 0x24 }
- { offsetInCU: 0x97, offset: 0x9208D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF', symObjAddr: 0xAC, symBinAddr: 0xE0F8, symSize: 0xE4 }
- { offsetInCU: 0x1C2, offset: 0x921B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF', symObjAddr: 0x190, symBinAddr: 0xE1DC, symSize: 0x28 }
- { offsetInCU: 0x252, offset: 0x92248, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY0_', symObjAddr: 0x1B8, symBinAddr: 0xE204, symSize: 0x10C }
- { offsetInCU: 0x3DB, offset: 0x923D1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTQ1_', symObjAddr: 0x2C4, symBinAddr: 0xE310, symSize: 0x70 }
- { offsetInCU: 0x49A, offset: 0x92490, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY2_', symObjAddr: 0x334, symBinAddr: 0xE380, symSize: 0xFC }
- { offsetInCU: 0x58F, offset: 0x92585, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY3_', symObjAddr: 0x430, symBinAddr: 0xE47C, symSize: 0x40 }
- { offsetInCU: 0x601, offset: 0x925F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC4nameSSvg', symObjAddr: 0x470, symBinAddr: 0xE4BC, symSize: 0x2C }
- { offsetInCU: 0x630, offset: 0x92626, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC2idAA5OwnerOvg', symObjAddr: 0x49C, symBinAddr: 0xE4E8, symSize: 0xC }
- { offsetInCU: 0x693, offset: 0x92689, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x4A8, symBinAddr: 0xE4F4, symSize: 0x98 }
- { offsetInCU: 0x6C8, offset: 0x926BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x540, symBinAddr: 0xE58C, symSize: 0xC }
- { offsetInCU: 0x738, offset: 0x9272E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfD', symObjAddr: 0x6F4, symBinAddr: 0xE740, symSize: 0x2C }
- { offsetInCU: 0x77C, offset: 0x92772, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCMa', symObjAddr: 0x68, symBinAddr: 0xE0B4, symSize: 0x20 }
- { offsetInCU: 0x883, offset: 0x92879, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TR', symObjAddr: 0x54C, symBinAddr: 0xE598, symSize: 0x6C }
- { offsetInCU: 0x8B6, offset: 0x928AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTQ0_', symObjAddr: 0x5B8, symBinAddr: 0xE604, symSize: 0x48 }
- { offsetInCU: 0x904, offset: 0x928FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x624, symBinAddr: 0xE670, symSize: 0x88 }
- { offsetInCU: 0x934, offset: 0x9292A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTATQ0_', symObjAddr: 0x6AC, symBinAddr: 0xE6F8, symSize: 0x48 }
- { offsetInCU: 0x9FE, offset: 0x929F4, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSi3row_Si3colt_Tg5', symObjAddr: 0x82C, symBinAddr: 0xE878, symSize: 0xFC }
- { offsetInCU: 0xBA1, offset: 0x92B97, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x968, symBinAddr: 0xE974, symSize: 0x110 }
- { offsetInCU: 0xD44, offset: 0x92D3A, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0xA78, symBinAddr: 0xEA84, symSize: 0xFC }
- { offsetInCU: 0xEF2, offset: 0x92EE8, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0xB74, symBinAddr: 0xEB80, symSize: 0x128 }
- { offsetInCU: 0x27, offset: 0x93220, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xEE28, symSize: 0x4 }
- { offsetInCU: 0x3F, offset: 0x93238, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwCP', symObjAddr: 0x10, symBinAddr: 0xEE38, symSize: 0x48 }
- { offsetInCU: 0x53, offset: 0x9324C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwxx', symObjAddr: 0x58, symBinAddr: 0xEE80, symSize: 0x18 }
- { offsetInCU: 0x67, offset: 0x93260, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwcp', symObjAddr: 0x70, symBinAddr: 0xEE98, symSize: 0x48 }
- { offsetInCU: 0x7B, offset: 0x93274, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwca', symObjAddr: 0xB8, symBinAddr: 0xEEE0, symSize: 0xA0 }
- { offsetInCU: 0x8F, offset: 0x93288, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwta', symObjAddr: 0x164, symBinAddr: 0xEF80, symSize: 0x60 }
- { offsetInCU: 0xA3, offset: 0x9329C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwet', symObjAddr: 0x1C4, symBinAddr: 0xEFE0, symSize: 0x58 }
- { offsetInCU: 0xB7, offset: 0x932B0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwst', symObjAddr: 0x21C, symBinAddr: 0xF038, symSize: 0x54 }
- { offsetInCU: 0xCB, offset: 0x932C4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwug', symObjAddr: 0x270, symBinAddr: 0xF08C, symSize: 0x18 }
- { offsetInCU: 0xDF, offset: 0x932D8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwup', symObjAddr: 0x288, symBinAddr: 0xF0A4, symSize: 0x4 }
- { offsetInCU: 0xF3, offset: 0x932EC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwui', symObjAddr: 0x28C, symBinAddr: 0xF0A8, symSize: 0x20 }
- { offsetInCU: 0x107, offset: 0x93300, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOMa', symObjAddr: 0x2AC, symBinAddr: 0xF0C8, symSize: 0x10 }
- { offsetInCU: 0x12C, offset: 0x93325, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xEE28, symSize: 0x4 }
- { offsetInCU: 0x148, offset: 0x93341, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP5_codeSivgTW', symObjAddr: 0x4, symBinAddr: 0xEE2C, symSize: 0x4 }
- { offsetInCU: 0x164, offset: 0x9335D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x8, symBinAddr: 0xEE30, symSize: 0x4 }
- { offsetInCU: 0x180, offset: 0x93379, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0xC, symBinAddr: 0xEE34, symSize: 0x4 }
- { offsetInCU: 0x27, offset: 0x9340E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xF0D8, symSize: 0x28 }
- { offsetInCU: 0x52, offset: 0x93439, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xF0D8, symSize: 0x28 }
- { offsetInCU: 0xC5, offset: 0x934AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY0_', symObjAddr: 0x28, symBinAddr: 0xF100, symSize: 0x1B4 }
- { offsetInCU: 0x3A6, offset: 0x9378D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTQ1_', symObjAddr: 0x1DC, symBinAddr: 0xF2B4, symSize: 0x70 }
- { offsetInCU: 0x4A7, offset: 0x9388E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY2_', symObjAddr: 0x24C, symBinAddr: 0xF324, symSize: 0x104 }
- { offsetInCU: 0x5DD, offset: 0x939C4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY3_', symObjAddr: 0x350, symBinAddr: 0xF428, symSize: 0x4C }
- { offsetInCU: 0x6C4, offset: 0x93AAB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x3C0, symBinAddr: 0xF498, symSize: 0x9C }
- { offsetInCU: 0x71B, offset: 0x93B02, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x45C, symBinAddr: 0xF534, symSize: 0x6C }
- { offsetInCU: 0x76C, offset: 0x93B53, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfd', symObjAddr: 0x4C8, symBinAddr: 0xF5A0, symSize: 0x24 }
- { offsetInCU: 0x7CB, offset: 0x93BB2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfD', symObjAddr: 0x4EC, symBinAddr: 0xF5C4, symSize: 0x2C }
- { offsetInCU: 0x9ED, offset: 0x93DD4, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x39C, symBinAddr: 0xF474, symSize: 0x24 }
- { offsetInCU: 0xA98, offset: 0x93E7F, size: 0x8, addend: 0x0, symName: '_$sSGsE4next10upperBoundqd__qd___ts17FixedWidthIntegerRd__SURd__lFs27SystemRandomNumberGeneratorV_SuTg5', symObjAddr: 0x518, symBinAddr: 0xF5F0, symSize: 0x88 }
- { offsetInCU: 0xB39, offset: 0x93F20, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCMa', symObjAddr: 0x5A0, symBinAddr: 0xF678, symSize: 0x20 }
- { offsetInCU: 0x27, offset: 0x940DC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xF698, symSize: 0x48 }
- { offsetInCU: 0x6C, offset: 0x94121, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xF698, symSize: 0x48 }
- { offsetInCU: 0xDB, offset: 0x94190, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ', symObjAddr: 0x88, symBinAddr: 0xF6E0, symSize: 0x14 }
- { offsetInCU: 0x10E, offset: 0x941C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF', symObjAddr: 0x9C, symBinAddr: 0xF6F4, symSize: 0x28 }
- { offsetInCU: 0x1A4, offset: 0x94259, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO9hashValueSivg', symObjAddr: 0xC4, symBinAddr: 0xF71C, symSize: 0x44 }
- { offsetInCU: 0x29E, offset: 0x94353, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x108, symBinAddr: 0xF760, symSize: 0x14 }
- { offsetInCU: 0x2BE, offset: 0x94373, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x108, symBinAddr: 0xF760, symSize: 0x14 }
- { offsetInCU: 0x2FE, offset: 0x943B3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH9hashValueSivgTW', symObjAddr: 0x11C, symBinAddr: 0xF774, symSize: 0x44 }
- { offsetInCU: 0x3E1, offset: 0x94496, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x160, symBinAddr: 0xF7B8, symSize: 0x28 }
- { offsetInCU: 0x46D, offset: 0x94522, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAAsADP8allCases03AllJ0QzvgZTW', symObjAddr: 0x2A4, symBinAddr: 0xF8FC, symSize: 0x58 }
- { offsetInCU: 0x509, offset: 0x945BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASQWb', symObjAddr: 0x1C8, symBinAddr: 0xF820, symSize: 0x4 }
- { offsetInCU: 0x51D, offset: 0x945D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOACSQAAWl', symObjAddr: 0x1CC, symBinAddr: 0xF824, symSize: 0x44 }
- { offsetInCU: 0x531, offset: 0x945E6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x210, symBinAddr: 0xF868, symSize: 0x4 }
- { offsetInCU: 0x545, offset: 0x945FA, size: 0x8, addend: 0x0, symName: '_$sSay14DouShouQiModel8CellTypeOGSayxGSlsWl', symObjAddr: 0x214, symBinAddr: 0xF86C, symSize: 0x4C }
- { offsetInCU: 0x559, offset: 0x9460E, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x260, symBinAddr: 0xF8B8, symSize: 0x44 }
- { offsetInCU: 0x56D, offset: 0x94622, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwet', symObjAddr: 0x30C, symBinAddr: 0xF954, symSize: 0x90 }
- { offsetInCU: 0x581, offset: 0x94636, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwst', symObjAddr: 0x39C, symBinAddr: 0xF9E4, symSize: 0xBC }
- { offsetInCU: 0x595, offset: 0x9464A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwug', symObjAddr: 0x458, symBinAddr: 0xFAA0, symSize: 0x8 }
- { offsetInCU: 0x5A9, offset: 0x9465E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwup', symObjAddr: 0x460, symBinAddr: 0xFAA8, symSize: 0x4 }
- { offsetInCU: 0x5BD, offset: 0x94672, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwui', symObjAddr: 0x464, symBinAddr: 0xFAAC, symSize: 0x8 }
- { offsetInCU: 0x5D1, offset: 0x94686, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOMa', symObjAddr: 0x46C, symBinAddr: 0xFAB4, symSize: 0x10 }
- { offsetInCU: 0x640, offset: 0x946F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x188, symBinAddr: 0xF7E0, symSize: 0x40 }
- { offsetInCU: 0x2B, offset: 0x94839, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xFAC4, symSize: 0x68 }
- { offsetInCU: 0xA6, offset: 0x948B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xFAC4, symSize: 0x68 }
- { offsetInCU: 0x2B0, offset: 0x94ABE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF', symObjAddr: 0x68, symBinAddr: 0xFB2C, symSize: 0x1C0 }
- { offsetInCU: 0x583, offset: 0x94D91, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF', symObjAddr: 0x228, symBinAddr: 0xFCEC, symSize: 0xD0 }
- { offsetInCU: 0x7F1, offset: 0x94FFF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6nbRowsSivg', symObjAddr: 0x2F8, symBinAddr: 0xFDBC, symSize: 0x8 }
- { offsetInCU: 0x80F, offset: 0x9501D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9nbColumnsSivg', symObjAddr: 0x300, symBinAddr: 0xFDC4, symSize: 0x8 }
- { offsetInCU: 0x82D, offset: 0x9503B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg', symObjAddr: 0x308, symBinAddr: 0xFDCC, symSize: 0x8 }
- { offsetInCU: 0x84B, offset: 0x95059, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF', symObjAddr: 0x310, symBinAddr: 0xFDD4, symSize: 0xD0 }
- { offsetInCU: 0xA02, offset: 0x95210, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF', symObjAddr: 0x3E0, symBinAddr: 0xFEA4, symSize: 0x150 }
- { offsetInCU: 0xC18, offset: 0x95426, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF', symObjAddr: 0x530, symBinAddr: 0xFFF4, symSize: 0x14C }
- { offsetInCU: 0xE35, offset: 0x95643, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ', symObjAddr: 0x67C, symBinAddr: 0x10140, symSize: 0x28 }
- { offsetInCU: 0xE77, offset: 0x95685, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9hashValueSivg', symObjAddr: 0x6A4, symBinAddr: 0x10168, symSize: 0x50 }
- { offsetInCU: 0xF03, offset: 0x95711, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH9hashValueSivgTW', symObjAddr: 0x6F4, symBinAddr: 0x101B8, symSize: 0x50 }
- { offsetInCU: 0xF92, offset: 0x957A0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x744, symBinAddr: 0x10208, symSize: 0x4 }
- { offsetInCU: 0xFC0, offset: 0x957CE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x794, symBinAddr: 0x10258, symSize: 0x28 }
- { offsetInCU: 0x125D, offset: 0x95A6B, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x7BC, symBinAddr: 0x10280, symSize: 0x14 }
- { offsetInCU: 0x1295, offset: 0x95AA3, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x7D0, symBinAddr: 0x10294, symSize: 0x14 }
- { offsetInCU: 0x12CD, offset: 0x95ADB, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0x7E4, symBinAddr: 0x102A8, symSize: 0x14 }
- { offsetInCU: 0x1305, offset: 0x95B13, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASQWb', symObjAddr: 0x9B0, symBinAddr: 0x10474, symSize: 0x4 }
- { offsetInCU: 0x1319, offset: 0x95B27, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVACSQAAWl', symObjAddr: 0x9B4, symBinAddr: 0x10478, symSize: 0x44 }
- { offsetInCU: 0x132D, offset: 0x95B3B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwCP', symObjAddr: 0x9F8, symBinAddr: 0x104BC, symSize: 0x34 }
- { offsetInCU: 0x1341, offset: 0x95B4F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwxx', symObjAddr: 0xA2C, symBinAddr: 0x104F0, symSize: 0x8 }
- { offsetInCU: 0x1355, offset: 0x95B63, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwcp', symObjAddr: 0xA34, symBinAddr: 0x104F8, symSize: 0x34 }
- { offsetInCU: 0x1369, offset: 0x95B77, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwca', symObjAddr: 0xA68, symBinAddr: 0x1052C, symSize: 0x48 }
- { offsetInCU: 0x137D, offset: 0x95B8B, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0xAB0, symBinAddr: 0x10574, symSize: 0x14 }
- { offsetInCU: 0x1391, offset: 0x95B9F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwta', symObjAddr: 0xAC4, symBinAddr: 0x10588, symSize: 0x38 }
- { offsetInCU: 0x13A5, offset: 0x95BB3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwet', symObjAddr: 0xAFC, symBinAddr: 0x105C0, symSize: 0x48 }
- { offsetInCU: 0x13B9, offset: 0x95BC7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwst', symObjAddr: 0xB44, symBinAddr: 0x10608, symSize: 0x40 }
- { offsetInCU: 0x13CD, offset: 0x95BDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVMa', symObjAddr: 0xB84, symBinAddr: 0x10648, symSize: 0x10 }
- { offsetInCU: 0x153A, offset: 0x95D48, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x748, symBinAddr: 0x1020C, symSize: 0x4C }
- { offsetInCU: 0x1578, offset: 0x95D86, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0x102BC, symSize: 0x98 }
- { offsetInCU: 0x1598, offset: 0x95DA6, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0x102BC, symSize: 0x98 }
- { offsetInCU: 0x15AC, offset: 0x95DBA, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0x102BC, symSize: 0x98 }
- { offsetInCU: 0x15C0, offset: 0x95DCE, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x7F8, symBinAddr: 0x102BC, symSize: 0x98 }
- { offsetInCU: 0x164C, offset: 0x95E5A, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSay14DouShouQiModel4CellVG_Tg5Tf4nnd_n', symObjAddr: 0x890, symBinAddr: 0x10354, symSize: 0x120 }
- { offsetInCU: 0x27, offset: 0x960AA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0x10658, symSize: 0x14 }
- { offsetInCU: 0x46, offset: 0x960C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0x10658, symSize: 0x14 }
- { offsetInCU: 0x85, offset: 0x96108, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV11descriptionSSvg', symObjAddr: 0x14, symBinAddr: 0x1066C, symSize: 0xB4 }
- { offsetInCU: 0x176, offset: 0x961F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg', symObjAddr: 0xC8, symBinAddr: 0x10720, symSize: 0xC }
- { offsetInCU: 0x194, offset: 0x96217, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV6animalAA6AnimalOvg', symObjAddr: 0xD4, symBinAddr: 0x1072C, symSize: 0xC }
- { offsetInCU: 0x1B2, offset: 0x96235, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF', symObjAddr: 0xE0, symBinAddr: 0x10738, symSize: 0x3C }
- { offsetInCU: 0x2E8, offset: 0x9636B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ', symObjAddr: 0x11C, symBinAddr: 0x10774, symSize: 0x20 }
- { offsetInCU: 0x355, offset: 0x963D8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9hashValueSivg', symObjAddr: 0x13C, symBinAddr: 0x10794, symSize: 0x5C }
- { offsetInCU: 0x4EB, offset: 0x9656E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x198, symBinAddr: 0x107F0, symSize: 0x4 }
- { offsetInCU: 0x516, offset: 0x96599, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH9hashValueSivgTW', symObjAddr: 0x19C, symBinAddr: 0x107F4, symSize: 0x5C }
- { offsetInCU: 0x6C9, offset: 0x9674C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1F8, symBinAddr: 0x10850, symSize: 0x3C }
- { offsetInCU: 0x82D, offset: 0x968B0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x28C, symBinAddr: 0x108E4, symSize: 0x20 }
- { offsetInCU: 0x84D, offset: 0x968D0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x28C, symBinAddr: 0x108E4, symSize: 0x20 }
- { offsetInCU: 0x949, offset: 0x969CC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASQWb', symObjAddr: 0x2AC, symBinAddr: 0x10904, symSize: 0x4 }
- { offsetInCU: 0x95D, offset: 0x969E0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVACSQAAWl', symObjAddr: 0x2B0, symBinAddr: 0x10908, symSize: 0x44 }
- { offsetInCU: 0x971, offset: 0x969F4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwet', symObjAddr: 0x304, symBinAddr: 0x1094C, symSize: 0x94 }
- { offsetInCU: 0x985, offset: 0x96A08, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwst', symObjAddr: 0x398, symBinAddr: 0x109E0, symSize: 0xBC }
- { offsetInCU: 0x999, offset: 0x96A1C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVMa', symObjAddr: 0x454, symBinAddr: 0x10A9C, symSize: 0x10 }
- { offsetInCU: 0xA45, offset: 0x96AC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x234, symBinAddr: 0x1088C, symSize: 0x58 }
- { offsetInCU: 0x27, offset: 0x96CC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10AAC, symSize: 0x4 }
- { offsetInCU: 0x4B, offset: 0x96CEC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10AAC, symSize: 0x4 }
- { offsetInCU: 0x6E, offset: 0x96D0F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x14, symBinAddr: 0x10AC0, symSize: 0x4 }
- { offsetInCU: 0x8E, offset: 0x96D2F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x14, symBinAddr: 0x10AC0, symSize: 0x4 }
- { offsetInCU: 0x9F, offset: 0x96D40, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x18, symBinAddr: 0x10AC4, symSize: 0x118 }
- { offsetInCU: 0x1AE, offset: 0x96E4F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwCP', symObjAddr: 0x130, symBinAddr: 0x10BDC, symSize: 0x30 }
- { offsetInCU: 0x1C2, offset: 0x96E63, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x164, symBinAddr: 0x10C0C, symSize: 0x14 }
- { offsetInCU: 0x1D6, offset: 0x96E77, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwet', symObjAddr: 0x178, symBinAddr: 0x10C20, symSize: 0x48 }
- { offsetInCU: 0x1EA, offset: 0x96E8B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwst', symObjAddr: 0x1C0, symBinAddr: 0x10C68, symSize: 0x48 }
- { offsetInCU: 0x1FE, offset: 0x96E9F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwug', symObjAddr: 0x208, symBinAddr: 0x10CB0, symSize: 0x18 }
- { offsetInCU: 0x212, offset: 0x96EB3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwup', symObjAddr: 0x220, symBinAddr: 0x10CC8, symSize: 0x4 }
- { offsetInCU: 0x226, offset: 0x96EC7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwui', symObjAddr: 0x224, symBinAddr: 0x10CCC, symSize: 0x1C }
- { offsetInCU: 0x23A, offset: 0x96EDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOMa', symObjAddr: 0x240, symBinAddr: 0x10CE8, symSize: 0x10 }
- { offsetInCU: 0x25F, offset: 0x96F00, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP7_domainSSvgTW', symObjAddr: 0x4, symBinAddr: 0x10AB0, symSize: 0x4 }
- { offsetInCU: 0x27B, offset: 0x96F1C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP5_codeSivgTW', symObjAddr: 0x8, symBinAddr: 0x10AB4, symSize: 0x4 }
- { offsetInCU: 0x297, offset: 0x96F38, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0xC, symBinAddr: 0x10AB8, symSize: 0x4 }
- { offsetInCU: 0x2B3, offset: 0x96F54, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x10, symBinAddr: 0x10ABC, symSize: 0x4 }
- { offsetInCU: 0x27, offset: 0x96FFF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10CF8, symSize: 0x14 }
- { offsetInCU: 0x4B, offset: 0x97023, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10CF8, symSize: 0x14 }
- { offsetInCU: 0x7E, offset: 0x97056, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg', symObjAddr: 0x14, symBinAddr: 0x10D0C, symSize: 0x18 }
- { offsetInCU: 0xA9, offset: 0x97081, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF', symObjAddr: 0x2C, symBinAddr: 0x10D24, symSize: 0x28 }
- { offsetInCU: 0x13F, offset: 0x97117, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO9hashValueSivg', symObjAddr: 0x54, symBinAddr: 0x10D4C, symSize: 0x44 }
- { offsetInCU: 0x239, offset: 0x97211, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x98, symBinAddr: 0x10D90, symSize: 0x14 }
- { offsetInCU: 0x259, offset: 0x97231, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x98, symBinAddr: 0x10D90, symSize: 0x14 }
- { offsetInCU: 0x299, offset: 0x97271, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH9hashValueSivgTW', symObjAddr: 0xAC, symBinAddr: 0x10DA4, symSize: 0x44 }
- { offsetInCU: 0x37C, offset: 0x97354, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xF0, symBinAddr: 0x10DE8, symSize: 0x28 }
- { offsetInCU: 0x405, offset: 0x973DD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASQWb', symObjAddr: 0x158, symBinAddr: 0x10E50, symSize: 0x4 }
- { offsetInCU: 0x419, offset: 0x973F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOACSQAAWl', symObjAddr: 0x15C, symBinAddr: 0x10E54, symSize: 0x44 }
- { offsetInCU: 0x42D, offset: 0x97405, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwet', symObjAddr: 0x1B0, symBinAddr: 0x10E98, symSize: 0x90 }
- { offsetInCU: 0x441, offset: 0x97419, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwst', symObjAddr: 0x240, symBinAddr: 0x10F28, symSize: 0xBC }
- { offsetInCU: 0x455, offset: 0x9742D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwug', symObjAddr: 0x2FC, symBinAddr: 0x10FE4, symSize: 0x8 }
- { offsetInCU: 0x469, offset: 0x97441, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwup', symObjAddr: 0x304, symBinAddr: 0x10FEC, symSize: 0x4 }
- { offsetInCU: 0x47D, offset: 0x97455, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwui', symObjAddr: 0x308, symBinAddr: 0x10FF0, symSize: 0x8 }
- { offsetInCU: 0x491, offset: 0x97469, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOMa', symObjAddr: 0x310, symBinAddr: 0x10FF8, symSize: 0x10 }
- { offsetInCU: 0x4EA, offset: 0x974C2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x118, symBinAddr: 0x10E10, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x975ED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x11008, symSize: 0x6C }
- { offsetInCU: 0xAC, offset: 0x97672, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x11008, symSize: 0x6C }
- { offsetInCU: 0xF0, offset: 0x976B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfd', symObjAddr: 0x6C, symBinAddr: 0x11074, symSize: 0x24 }
- { offsetInCU: 0x155, offset: 0x9771B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x90, symBinAddr: 0x11098, symSize: 0x9C }
- { offsetInCU: 0x1BD, offset: 0x97783, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfD', symObjAddr: 0x12C, symBinAddr: 0x11134, symSize: 0x2C }
- { offsetInCU: 0x217, offset: 0x977DD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCMa', symObjAddr: 0x158, symBinAddr: 0x11160, symSize: 0x20 }
- { offsetInCU: 0x27, offset: 0x978A4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x11180, symSize: 0x4 }
- { offsetInCU: 0x46, offset: 0x978C3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x11180, symSize: 0x4 }
- { offsetInCU: 0x5A, offset: 0x978D7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfC', symObjAddr: 0x4, symBinAddr: 0x11184, symSize: 0x14 }
- { offsetInCU: 0xC1, offset: 0x9793E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg', symObjAddr: 0x18, symBinAddr: 0x11198, symSize: 0xC }
- { offsetInCU: 0xDF, offset: 0x9795C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV9rowOriginSivg', symObjAddr: 0x24, symBinAddr: 0x111A4, symSize: 0x8 }
- { offsetInCU: 0xFD, offset: 0x9797A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV12columnOriginSivg', symObjAddr: 0x2C, symBinAddr: 0x111AC, symSize: 0x8 }
- { offsetInCU: 0x11B, offset: 0x97998, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV14rowDestinationSivg', symObjAddr: 0x34, symBinAddr: 0x111B4, symSize: 0x8 }
- { offsetInCU: 0x139, offset: 0x979B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV17columnDestinationSivg', symObjAddr: 0x3C, symBinAddr: 0x111BC, symSize: 0x8 }
- { offsetInCU: 0x157, offset: 0x979D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV11descriptionSSvg', symObjAddr: 0x44, symBinAddr: 0x111C4, symSize: 0x198 }
- { offsetInCU: 0x287, offset: 0x97B04, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1DC, symBinAddr: 0x1135C, symSize: 0x4 }
- { offsetInCU: 0x2B2, offset: 0x97B2F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1E0, symBinAddr: 0x11360, symSize: 0x4 }
- { offsetInCU: 0x2D2, offset: 0x97B4F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1E0, symBinAddr: 0x11360, symSize: 0x4 }
- { offsetInCU: 0x2E3, offset: 0x97B60, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1E4, symBinAddr: 0x11364, symSize: 0x48 }
- { offsetInCU: 0x316, offset: 0x97B93, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwCP', symObjAddr: 0x22C, symBinAddr: 0x113AC, symSize: 0x30 }
- { offsetInCU: 0x32A, offset: 0x97BA7, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x260, symBinAddr: 0x113DC, symSize: 0x14 }
- { offsetInCU: 0x33E, offset: 0x97BBB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwet', symObjAddr: 0x274, symBinAddr: 0x113F0, symSize: 0x44 }
- { offsetInCU: 0x352, offset: 0x97BCF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwst', symObjAddr: 0x2B8, symBinAddr: 0x11434, symSize: 0x4C }
- { offsetInCU: 0x366, offset: 0x97BE3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVMa', symObjAddr: 0x304, symBinAddr: 0x11480, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x97CD6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x11490, symSize: 0xC }
- { offsetInCU: 0x4B, offset: 0x97CFA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x11490, symSize: 0xC }
- { offsetInCU: 0x66, offset: 0x97D15, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfC', symObjAddr: 0xC, symBinAddr: 0x1149C, symSize: 0x18 }
- { offsetInCU: 0xB8, offset: 0x97D67, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0x130, symBinAddr: 0x115C0, symSize: 0x8 }
- { offsetInCU: 0xD4, offset: 0x97D83, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x138, symBinAddr: 0x115C8, symSize: 0x10 }
- { offsetInCU: 0xEC, offset: 0x97D9B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x138, symBinAddr: 0x115C8, symSize: 0x10 }
- { offsetInCU: 0x109, offset: 0x97DB8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASQWb', symObjAddr: 0x38, symBinAddr: 0x114C8, symSize: 0x4 }
- { offsetInCU: 0x11D, offset: 0x97DCC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOACSQAAWl', symObjAddr: 0x3C, symBinAddr: 0x114CC, symSize: 0x44 }
- { offsetInCU: 0x147, offset: 0x97DF6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwet', symObjAddr: 0x158, symBinAddr: 0x115D8, symSize: 0x90 }
- { offsetInCU: 0x15B, offset: 0x97E0A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwst', symObjAddr: 0x1E8, symBinAddr: 0x11668, symSize: 0xBC }
- { offsetInCU: 0x16F, offset: 0x97E1E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwug', symObjAddr: 0x2A4, symBinAddr: 0x11724, symSize: 0x8 }
- { offsetInCU: 0x183, offset: 0x97E32, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwup', symObjAddr: 0x2AC, symBinAddr: 0x1172C, symSize: 0x4 }
- { offsetInCU: 0x197, offset: 0x97E46, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwui', symObjAddr: 0x2B0, symBinAddr: 0x11730, symSize: 0x8 }
- { offsetInCU: 0x1AB, offset: 0x97E5A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOMa', symObjAddr: 0x2B8, symBinAddr: 0x11738, symSize: 0x10 }
- { offsetInCU: 0x1E6, offset: 0x97E95, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x24, symBinAddr: 0x114B4, symSize: 0x14 }
- { offsetInCU: 0x277, offset: 0x97F26, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH9hashValueSivgTW', symObjAddr: 0x80, symBinAddr: 0x11510, symSize: 0x44 }
- { offsetInCU: 0x34F, offset: 0x97FFE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xC4, symBinAddr: 0x11554, symSize: 0x2C }
- { offsetInCU: 0x3CB, offset: 0x9807A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xF0, symBinAddr: 0x11580, symSize: 0x40 }
- { offsetInCU: 0x97, offset: 0x9821A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvg', symObjAddr: 0xBC, symBinAddr: 0x11804, symSize: 0x4C }
- { offsetInCU: 0xE0, offset: 0x98263, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvg', symObjAddr: 0x16C, symBinAddr: 0x118B4, symSize: 0x48 }
- { offsetInCU: 0xFF, offset: 0x98282, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg', symObjAddr: 0x1F8, symBinAddr: 0x11940, symSize: 0x8 }
- { offsetInCU: 0x12C, offset: 0x982AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfC', symObjAddr: 0x200, symBinAddr: 0x11948, symSize: 0x64 }
- { offsetInCU: 0x151, offset: 0x982D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc', symObjAddr: 0x264, symBinAddr: 0x119AC, symSize: 0x464 }
- { offsetInCU: 0x553, offset: 0x986D6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_', symObjAddr: 0x7B0, symBinAddr: 0x11E50, symSize: 0x84 }
- { offsetInCU: 0x602, offset: 0x98785, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TQ0_', symObjAddr: 0x834, symBinAddr: 0x11ED4, symSize: 0x68 }
- { offsetInCU: 0x69B, offset: 0x9881E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TY2_', symObjAddr: 0x89C, symBinAddr: 0x11F3C, symSize: 0x1C }
- { offsetInCU: 0x6E0, offset: 0x98863, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_', symObjAddr: 0x8B8, symBinAddr: 0x11F58, symSize: 0x84 }
- { offsetInCU: 0x78F, offset: 0x98912, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TQ0_', symObjAddr: 0x93C, symBinAddr: 0x11FDC, symSize: 0x68 }
- { offsetInCU: 0x828, offset: 0x989AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY1_', symObjAddr: 0x9A4, symBinAddr: 0x12044, symSize: 0xC }
- { offsetInCU: 0x882, offset: 0x98A05, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY2_', symObjAddr: 0x9B0, symBinAddr: 0x12050, symSize: 0x1C }
- { offsetInCU: 0x8C7, offset: 0x98A4A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfC', symObjAddr: 0x9CC, symBinAddr: 0x1206C, symSize: 0x6C }
- { offsetInCU: 0x8EC, offset: 0x98A6F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc', symObjAddr: 0xA38, symBinAddr: 0x120D8, symSize: 0x2C4 }
- { offsetInCU: 0x9E9, offset: 0x98B6C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF', symObjAddr: 0xCFC, symBinAddr: 0x1239C, symSize: 0xD4 }
- { offsetInCU: 0xB14, offset: 0x98C97, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF', symObjAddr: 0xDD0, symBinAddr: 0x12470, symSize: 0xD4 }
- { offsetInCU: 0xC3F, offset: 0x98DC2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF', symObjAddr: 0xF58, symBinAddr: 0x125F8, symSize: 0xD4 }
- { offsetInCU: 0xD6A, offset: 0x98EED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF', symObjAddr: 0x108C, symBinAddr: 0x1272C, symSize: 0xD4 }
- { offsetInCU: 0xE95, offset: 0x99018, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF', symObjAddr: 0x1160, symBinAddr: 0x12800, symSize: 0xD4 }
- { offsetInCU: 0xFC0, offset: 0x99143, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF', symObjAddr: 0x1234, symBinAddr: 0x128D4, symSize: 0xD4 }
- { offsetInCU: 0x10EB, offset: 0x9926E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF', symObjAddr: 0x1308, symBinAddr: 0x129A8, symSize: 0xD4 }
- { offsetInCU: 0x1216, offset: 0x99399, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF', symObjAddr: 0x13DC, symBinAddr: 0x12A7C, symSize: 0xD4 }
- { offsetInCU: 0x135F, offset: 0x994E2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC18notifyPieceRemoved33_4E9958627B7DCD90B6D32369387417C3LLyySi_SiAA0G0VtF', symObjAddr: 0x14B0, symBinAddr: 0x12B50, symSize: 0xC8 }
- { offsetInCU: 0x150C, offset: 0x9968F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF', symObjAddr: 0x1578, symBinAddr: 0x12C18, symSize: 0x28 }
- { offsetInCU: 0x1914, offset: 0x99A97, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY0_', symObjAddr: 0x15A0, symBinAddr: 0x12C40, symSize: 0x9E8 }
- { offsetInCU: 0x267D, offset: 0x9A800, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ1_', symObjAddr: 0x1F88, symBinAddr: 0x13628, symSize: 0x60 }
- { offsetInCU: 0x27B0, offset: 0x9A933, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY2_', symObjAddr: 0x1FE8, symBinAddr: 0x13688, symSize: 0x220 }
- { offsetInCU: 0x2AB9, offset: 0x9AC3C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ3_', symObjAddr: 0x2208, symBinAddr: 0x138A8, symSize: 0x70 }
- { offsetInCU: 0x2BB2, offset: 0x9AD35, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY4_', symObjAddr: 0x2278, symBinAddr: 0x13918, symSize: 0x10C }
- { offsetInCU: 0x2CE1, offset: 0x9AE64, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY5_', symObjAddr: 0x2384, symBinAddr: 0x13A24, symSize: 0x5C }
- { offsetInCU: 0x2D8F, offset: 0x9AF12, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC6isOverSbvg', symObjAddr: 0x23E0, symBinAddr: 0x13A80, symSize: 0x30 }
- { offsetInCU: 0x2DAC, offset: 0x9AF2F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKF', symObjAddr: 0x2410, symBinAddr: 0x13AB0, symSize: 0x18 }
- { offsetInCU: 0x2E63, offset: 0x9AFE6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY0_', symObjAddr: 0x2428, symBinAddr: 0x13AC8, symSize: 0x348 }
- { offsetInCU: 0x3351, offset: 0x9B4D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ1_', symObjAddr: 0x2770, symBinAddr: 0x13E10, symSize: 0x60 }
- { offsetInCU: 0x33ED, offset: 0x9B570, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY2_', symObjAddr: 0x27D0, symBinAddr: 0x13E70, symSize: 0x210 }
- { offsetInCU: 0x3666, offset: 0x9B7E9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ3_', symObjAddr: 0x29E0, symBinAddr: 0x14080, symSize: 0x70 }
- { offsetInCU: 0x370F, offset: 0x9B892, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY4_', symObjAddr: 0x2A50, symBinAddr: 0x140F0, symSize: 0x104 }
- { offsetInCU: 0x37EF, offset: 0x9B972, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY5_', symObjAddr: 0x2B54, symBinAddr: 0x141F4, symSize: 0x5C }
- { offsetInCU: 0x383E, offset: 0x9B9C1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfd', symObjAddr: 0x2BB0, symBinAddr: 0x14250, symSize: 0x6C }
- { offsetInCU: 0x386B, offset: 0x9B9EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfD', symObjAddr: 0x2C1C, symBinAddr: 0x142BC, symSize: 0x1C }
- { offsetInCU: 0x3899, offset: 0x9BA1C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTK', symObjAddr: 0x0, symBinAddr: 0x11748, symSize: 0x50 }
- { offsetInCU: 0x38CF, offset: 0x9BA52, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTk', symObjAddr: 0x50, symBinAddr: 0x11798, symSize: 0x6C }
- { offsetInCU: 0x390F, offset: 0x9BA92, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvpACTk', symObjAddr: 0x108, symBinAddr: 0x11850, symSize: 0x64 }
- { offsetInCU: 0x3951, offset: 0x9BAD4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5Rules_pWOc', symObjAddr: 0x1B4, symBinAddr: 0x118FC, symSize: 0x44 }
- { offsetInCU: 0x3A57, offset: 0x9BBDA, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x730, symBinAddr: 0x11E10, symSize: 0x20 }
- { offsetInCU: 0x3A6B, offset: 0x9BBEE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCMa', symObjAddr: 0x750, symBinAddr: 0x11E30, symSize: 0x20 }
- { offsetInCU: 0x3B93, offset: 0x9BD16, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TR', symObjAddr: 0xEA4, symBinAddr: 0x12544, symSize: 0x6C }
- { offsetInCU: 0x3BC6, offset: 0x9BD49, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTQ0_', symObjAddr: 0xF10, symBinAddr: 0x125B0, symSize: 0x48 }
- { offsetInCU: 0x3C82, offset: 0x9BE05, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TR', symObjAddr: 0x102C, symBinAddr: 0x126CC, symSize: 0x60 }
- { offsetInCU: 0x40E5, offset: 0x9C268, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TA', symObjAddr: 0x2C38, symBinAddr: 0x142D8, symSize: 0x60 }
- { offsetInCU: 0x4115, offset: 0x9C298, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x2CBC, symBinAddr: 0x1435C, symSize: 0x88 }
- { offsetInCU: 0x4145, offset: 0x9C2C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TA', symObjAddr: 0x2D44, symBinAddr: 0x143E4, symSize: 0x60 }
- { offsetInCU: 0x4175, offset: 0x9C2F8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA.7', symObjAddr: 0x2DA4, symBinAddr: 0x14444, symSize: 0x88 }
- { offsetInCU: 0x41A9, offset: 0x9C32C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVIegn_ACytIegnr_TRTA', symObjAddr: 0x2E2C, symBinAddr: 0x144CC, symSize: 0x20 }
- { offsetInCU: 0x41D9, offset: 0x9C35C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTA', symObjAddr: 0x2E4C, symBinAddr: 0x144EC, symSize: 0x88 }
- { offsetInCU: 0x4209, offset: 0x9C38C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTA', symObjAddr: 0x2ED4, symBinAddr: 0x14574, symSize: 0x80 }
- { offsetInCU: 0x4239, offset: 0x9C3BC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTATQ0_', symObjAddr: 0x2F54, symBinAddr: 0x145F4, symSize: 0x48 }
- { offsetInCU: 0x4295, offset: 0x9C418, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6ResultOAA6PlayerCSgIegnng_AceHytIegnnnr_TRTA', symObjAddr: 0x2F9C, symBinAddr: 0x1463C, symSize: 0x24 }
- { offsetInCU: 0x42C9, offset: 0x9C44C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCIegnng_AceGytIegnnnr_TRTA', symObjAddr: 0x2FC0, symBinAddr: 0x14660, symSize: 0x24 }
- { offsetInCU: 0x42FD, offset: 0x9C480, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCSbIegnngy_AceGSbytIegnnnnr_TRTA', symObjAddr: 0x2FE4, symBinAddr: 0x14684, symSize: 0x28 }
- { offsetInCU: 0x4331, offset: 0x9C4B4, size: 0x8, addend: 0x0, symName: '_$sS2i14DouShouQiModel5PieceVIegyyn_S2iACytIegnnnr_TRTA', symObjAddr: 0x300C, symBinAddr: 0x146AC, symSize: 0x28 }
- { offsetInCU: 0x435A, offset: 0x9C4DD, size: 0x8, addend: 0x0, symName: ___swift_mutable_project_boxed_opaque_existential_1, symObjAddr: 0x3034, symBinAddr: 0x146D4, symSize: 0x28 }
- { offsetInCU: 0x436E, offset: 0x9C4F1, size: 0x8, addend: 0x0, symName: ___swift_assign_boxed_opaque_existential_1, symObjAddr: 0x3308, symBinAddr: 0x149A8, symSize: 0x168 }
...

@ -0,0 +1,487 @@
---
triple: 'x86_64-apple-darwin'
binary-path: '/Users/marcchevaldonne/Library/Developer/Xcode/DerivedData/DouShouQiModel-bzzvovsrfmbhuydeirorjmljgtyf/Build/Intermediates.noindex/ArchiveIntermediates/DouShouQiModel/InstallationBuildProductsLocation/Library/Frameworks/DouShouQiModel.framework/Versions/A/DouShouQiModel'
relocations:
- { offsetInCU: 0x34, offset: 0x87BD7, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionString, symObjAddr: 0x0, symBinAddr: 0x14EC0, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x87C0C, size: 0x8, addend: 0x0, symName: _DouShouQiModelVersionNumber, symObjAddr: 0x38, symBinAddr: 0x14EF8, symSize: 0x0 }
- { offsetInCU: 0x27, offset: 0x87C49, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x3A30, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x87C6D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x3A30, symSize: 0x10 }
- { offsetInCU: 0x6E, offset: 0x87C90, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x20, symBinAddr: 0x3A50, symSize: 0x10 }
- { offsetInCU: 0x9F, offset: 0x87CC1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x140, symBinAddr: 0x3B70, symSize: 0x40 }
- { offsetInCU: 0xE5, offset: 0x87D07, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x10, symBinAddr: 0x3A40, symSize: 0x10 }
- { offsetInCU: 0x114, offset: 0x87D36, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x30, symBinAddr: 0x3A60, symSize: 0x20 }
- { offsetInCU: 0x1AA, offset: 0x87DCC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonO9hashValueSivg', symObjAddr: 0x50, symBinAddr: 0x3A80, symSize: 0x40 }
- { offsetInCU: 0x2A5, offset: 0x87EC7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x90, symBinAddr: 0x3AC0, symSize: 0x10 }
- { offsetInCU: 0x2FB, offset: 0x87F1D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH9hashValueSivgTW', symObjAddr: 0xA0, symBinAddr: 0x3AD0, symSize: 0x40 }
- { offsetInCU: 0x3DF, offset: 0x88001, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x3B10, symSize: 0x20 }
- { offsetInCU: 0x468, offset: 0x8808A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASQWb', symObjAddr: 0x180, symBinAddr: 0x3BB0, symSize: 0x10 }
- { offsetInCU: 0x47C, offset: 0x8809E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOACSQAAWl', symObjAddr: 0x190, symBinAddr: 0x3BC0, symSize: 0x30 }
- { offsetInCU: 0x490, offset: 0x880B2, size: 0x8, addend: 0x0, symName: ___swift_memcpy2_1, symObjAddr: 0x1C0, symBinAddr: 0x3BF0, symSize: 0x10 }
- { offsetInCU: 0x4A4, offset: 0x880C6, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x1D0, symBinAddr: 0x3C00, symSize: 0x10 }
- { offsetInCU: 0x4B8, offset: 0x880DA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwet', symObjAddr: 0x1E0, symBinAddr: 0x3C10, symSize: 0xB0 }
- { offsetInCU: 0x4CC, offset: 0x880EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwst', symObjAddr: 0x290, symBinAddr: 0x3CC0, symSize: 0xE0 }
- { offsetInCU: 0x4E0, offset: 0x88102, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwug', symObjAddr: 0x370, symBinAddr: 0x3DA0, symSize: 0x20 }
- { offsetInCU: 0x4F4, offset: 0x88116, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwup', symObjAddr: 0x390, symBinAddr: 0x3DC0, symSize: 0x10 }
- { offsetInCU: 0x508, offset: 0x8812A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOwui', symObjAddr: 0x3A0, symBinAddr: 0x3DD0, symSize: 0x30 }
- { offsetInCU: 0x51C, offset: 0x8813E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6ResultOMa', symObjAddr: 0x3D0, symBinAddr: 0x3E00, symSize: 0x10 }
- { offsetInCU: 0x530, offset: 0x88152, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x3E0, symBinAddr: 0x3E10, symSize: 0x10 }
- { offsetInCU: 0x544, offset: 0x88166, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwet', symObjAddr: 0x3F0, symBinAddr: 0x3E20, symSize: 0x80 }
- { offsetInCU: 0x558, offset: 0x8817A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwst', symObjAddr: 0x470, symBinAddr: 0x3EA0, symSize: 0xD0 }
- { offsetInCU: 0x56C, offset: 0x8818E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwug', symObjAddr: 0x540, symBinAddr: 0x3F70, symSize: 0x10 }
- { offsetInCU: 0x580, offset: 0x881A2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwup', symObjAddr: 0x550, symBinAddr: 0x3F80, symSize: 0x10 }
- { offsetInCU: 0x594, offset: 0x881B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOwui', symObjAddr: 0x560, symBinAddr: 0x3F90, symSize: 0x10 }
- { offsetInCU: 0x5A8, offset: 0x881CA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOMa', symObjAddr: 0x570, symBinAddr: 0x3FA0, symSize: 0xA }
- { offsetInCU: 0x624, offset: 0x88246, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel13WinningReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x100, symBinAddr: 0x3B30, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x8838B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x3FB0, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x883AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x3FB0, symSize: 0x10 }
- { offsetInCU: 0x6E, offset: 0x883D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x20, symBinAddr: 0x3FD0, symSize: 0x10 }
- { offsetInCU: 0x9F, offset: 0x88403, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x140, symBinAddr: 0x40F0, symSize: 0x60 }
- { offsetInCU: 0x113, offset: 0x88477, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ', symObjAddr: 0x10, symBinAddr: 0x3FC0, symSize: 0x10 }
- { offsetInCU: 0x142, offset: 0x884A6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF', symObjAddr: 0x30, symBinAddr: 0x3FE0, symSize: 0x20 }
- { offsetInCU: 0x1D8, offset: 0x8853C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg', symObjAddr: 0x50, symBinAddr: 0x4000, symSize: 0x40 }
- { offsetInCU: 0x2D3, offset: 0x88637, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x90, symBinAddr: 0x4040, symSize: 0x10 }
- { offsetInCU: 0x329, offset: 0x8868D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH9hashValueSivgTW', symObjAddr: 0xA0, symBinAddr: 0x4050, symSize: 0x40 }
- { offsetInCU: 0x40D, offset: 0x88771, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x4090, symSize: 0x20 }
- { offsetInCU: 0x496, offset: 0x887FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASQWb', symObjAddr: 0x1A0, symBinAddr: 0x4150, symSize: 0x10 }
- { offsetInCU: 0x4AA, offset: 0x8880E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOACSQAAWl', symObjAddr: 0x1B0, symBinAddr: 0x4160, symSize: 0x30 }
- { offsetInCU: 0x4BE, offset: 0x88822, size: 0x8, addend: 0x0, symName: ___swift_memcpy3_1, symObjAddr: 0x1E0, symBinAddr: 0x4190, symSize: 0x20 }
- { offsetInCU: 0x4D2, offset: 0x88836, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwet', symObjAddr: 0x210, symBinAddr: 0x41B0, symSize: 0x70 }
- { offsetInCU: 0x4E6, offset: 0x8884A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwst', symObjAddr: 0x280, symBinAddr: 0x4220, symSize: 0x80 }
- { offsetInCU: 0x4FA, offset: 0x8885E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwug', symObjAddr: 0x300, symBinAddr: 0x42A0, symSize: 0x20 }
- { offsetInCU: 0x50E, offset: 0x88872, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwup', symObjAddr: 0x320, symBinAddr: 0x42C0, symSize: 0x10 }
- { offsetInCU: 0x522, offset: 0x88886, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOwui', symObjAddr: 0x330, symBinAddr: 0x42D0, symSize: 0x20 }
- { offsetInCU: 0x536, offset: 0x8889A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11BoardResultOMa', symObjAddr: 0x350, symBinAddr: 0x42F0, symSize: 0x10 }
- { offsetInCU: 0x54A, offset: 0x888AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwet', symObjAddr: 0x370, symBinAddr: 0x4300, symSize: 0x80 }
- { offsetInCU: 0x55E, offset: 0x888C2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwst', symObjAddr: 0x3F0, symBinAddr: 0x4380, symSize: 0xD0 }
- { offsetInCU: 0x572, offset: 0x888D6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwug', symObjAddr: 0x4C0, symBinAddr: 0x4450, symSize: 0x10 }
- { offsetInCU: 0x586, offset: 0x888EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwup', symObjAddr: 0x4D0, symBinAddr: 0x4460, symSize: 0x10 }
- { offsetInCU: 0x59A, offset: 0x888FE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOwui', symObjAddr: 0x4E0, symBinAddr: 0x4470, symSize: 0x10 }
- { offsetInCU: 0x5AE, offset: 0x88912, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOMa', symObjAddr: 0x4F0, symBinAddr: 0x4480, symSize: 0xA }
- { offsetInCU: 0x60E, offset: 0x88972, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel18BoardFailingReasonOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x100, symBinAddr: 0x40B0, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x88AA3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x4490, symSize: 0xD0 }
- { offsetInCU: 0x99, offset: 0x88B15, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfC', symObjAddr: 0x0, symBinAddr: 0x4490, symSize: 0xD0 }
- { offsetInCU: 0x124, offset: 0x88BA0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc', symObjAddr: 0xD0, symBinAddr: 0x4560, symSize: 0xA0 }
- { offsetInCU: 0x1EB, offset: 0x88C67, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x190, symBinAddr: 0x4620, symSize: 0xA0 }
- { offsetInCU: 0x276, offset: 0x88CF2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x230, symBinAddr: 0x46C0, symSize: 0x70 }
- { offsetInCU: 0x2F3, offset: 0x88D6F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x2A0, symBinAddr: 0x4730, symSize: 0x30 }
- { offsetInCU: 0x36F, offset: 0x88DEB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF', symObjAddr: 0x2D0, symBinAddr: 0x4760, symSize: 0x30 }
- { offsetInCU: 0x3D4, offset: 0x88E50, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF', symObjAddr: 0x300, symBinAddr: 0x4790, symSize: 0x50 }
- { offsetInCU: 0x461, offset: 0x88EDD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY0_', symObjAddr: 0x350, symBinAddr: 0x47E0, symSize: 0x110 }
- { offsetInCU: 0x5B9, offset: 0x89035, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTQ1_', symObjAddr: 0x460, symBinAddr: 0x48F0, symSize: 0x80 }
- { offsetInCU: 0x669, offset: 0x890E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY2_', symObjAddr: 0x4E0, symBinAddr: 0x4970, symSize: 0x120 }
- { offsetInCU: 0x744, offset: 0x891C0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKFTY3_', symObjAddr: 0x600, symBinAddr: 0x4A90, symSize: 0x50 }
- { offsetInCU: 0x7A2, offset: 0x8921E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfd', symObjAddr: 0x670, symBinAddr: 0x4B00, symSize: 0x30 }
- { offsetInCU: 0x7F3, offset: 0x8926F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfD', symObjAddr: 0x6A0, symBinAddr: 0x4B30, symSize: 0x40 }
- { offsetInCU: 0x92F, offset: 0x893AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCAA4MoveVSgIeggr_SgWOe', symObjAddr: 0x170, symBinAddr: 0x4600, symSize: 0x20 }
- { offsetInCU: 0x9E9, offset: 0x89465, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCfE', symObjAddr: 0x650, symBinAddr: 0x4AE0, symSize: 0x20 }
- { offsetInCU: 0xA16, offset: 0x89492, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel11HumanPlayerCMa', symObjAddr: 0x6E0, symBinAddr: 0x4B70, symSize: 0x20 }
- { offsetInCU: 0x4F, offset: 0x89641, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0x2C420, symBinAddr: 0x1DB40, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x8965B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LLShyAA5PieceVGvpZ', symObjAddr: 0x71D0, symBinAddr: 0x1C720, symSize: 0x0 }
- { offsetInCU: 0xD7, offset: 0x896C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x71D8, symBinAddr: 0x1C728, symSize: 0x0 }
- { offsetInCU: 0xF1, offset: 0x896E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardV_S2itKcGvpZ', symObjAddr: 0x71E0, symBinAddr: 0x1C730, symSize: 0x0 }
- { offsetInCU: 0x10B, offset: 0x896FD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZ', symObjAddr: 0x71E8, symBinAddr: 0x1C738, symSize: 0x0 }
- { offsetInCU: 0x125, offset: 0x89717, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellTypeSDyAA0iJ0OSaySi3row_Si3coltGGvpZ', symObjAddr: 0x2C428, symBinAddr: 0x1DB48, symSize: 0x0 }
- { offsetInCU: 0x2A8, offset: 0x8989A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0x4CA0, symSize: 0x2C0 }
- { offsetInCU: 0xAC6, offset: 0x8A0B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ', symObjAddr: 0x2C0, symBinAddr: 0x4F60, symSize: 0x70 }
- { offsetInCU: 0xB04, offset: 0x8A0F6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ', symObjAddr: 0x330, symBinAddr: 0x4FD0, symSize: 0x10 }
- { offsetInCU: 0xB2E, offset: 0x8A120, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU_', symObjAddr: 0x390, symBinAddr: 0x5030, symSize: 0x30 }
- { offsetInCU: 0xB6E, offset: 0x8A160, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LLSayyAA5BoardVcGvpZfiyAGcfU0_', symObjAddr: 0x3C0, symBinAddr: 0x5060, symSize: 0x60 }
- { offsetInCU: 0xBC0, offset: 0x8A1B2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVACycfC', symObjAddr: 0x650, symBinAddr: 0x52F0, symSize: 0x30 }
- { offsetInCU: 0xC05, offset: 0x8A1F7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x680, symBinAddr: 0x5320, symSize: 0x50 }
- { offsetInCU: 0xC6A, offset: 0x8A25C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV19findAuthorizedMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL5boardSayAA4MoveVGAA5BoardV_tF', symObjAddr: 0x6D0, symBinAddr: 0x5370, symSize: 0x460 }
- { offsetInCU: 0x15D1, offset: 0x8ABC3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12findRatMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0xB30, symBinAddr: 0x57D0, symSize: 0x740 }
- { offsetInCU: 0x2140, offset: 0x8B732, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV17findElephantMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1270, symBinAddr: 0x5F10, symSize: 0x6D0 }
- { offsetInCU: 0x2BB3, offset: 0x8C1A5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16findDefaultMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x1940, symBinAddr: 0x65E0, symSize: 0x740 }
- { offsetInCU: 0x3725, offset: 0x8CD17, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV21findTigerAndLionMoves33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x2080, symBinAddr: 0x6D20, symSize: 0x4C0 }
- { offsetInCU: 0x3DE7, offset: 0x8D3D9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20findDirectNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x2540, symBinAddr: 0x71E0, symSize: 0x390 }
- { offsetInCU: 0x4327, offset: 0x8D919, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV26findTigerAndLionNeighbours33_DFC7A53241A8EF79AF2B79A48A65C265LL2of5board3row6columnSayAA4MoveVGAA5OwnerO_AA5BoardVS2itF', symObjAddr: 0x28D0, symBinAddr: 0x7570, symSize: 0x5D0 }
- { offsetInCU: 0x4C67, offset: 0x8E259, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x2EA0, symBinAddr: 0x7B40, symSize: 0x140 }
- { offsetInCU: 0x4E34, offset: 0x8E426, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x2FE0, symBinAddr: 0x7C80, symSize: 0x150 }
- { offsetInCU: 0x505D, offset: 0x8E64F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF', symObjAddr: 0x3130, symBinAddr: 0x7DD0, symSize: 0x80 }
- { offsetInCU: 0x512F, offset: 0x8E721, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF', symObjAddr: 0x31B0, symBinAddr: 0x7E50, symSize: 0xF0 }
- { offsetInCU: 0x539B, offset: 0x8E98D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x32A0, symBinAddr: 0x7F40, symSize: 0x30 }
- { offsetInCU: 0x5482, offset: 0x8EA74, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF', symObjAddr: 0x32D0, symBinAddr: 0x7F70, symSize: 0x1B0 }
- { offsetInCU: 0x5622, offset: 0x8EC14, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF', symObjAddr: 0x3480, symBinAddr: 0x8120, symSize: 0x4F0 }
- { offsetInCU: 0x5B31, offset: 0x8F123, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0x3970, symBinAddr: 0x8610, symSize: 0x10 }
- { offsetInCU: 0x5B45, offset: 0x8F137, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg', symObjAddr: 0x3980, symBinAddr: 0x8620, symSize: 0x10 }
- { offsetInCU: 0x5B77, offset: 0x8F169, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11createBoardAA0H0VyFZTW', symObjAddr: 0x3990, symBinAddr: 0x8630, symSize: 0x70 }
- { offsetInCU: 0x5BC4, offset: 0x8F1B6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10checkBoardyyAA0H0VKFZTW', symObjAddr: 0x3A00, symBinAddr: 0x86A0, symSize: 0x10 }
- { offsetInCU: 0x5BFC, offset: 0x8F1EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0x3A10, symBinAddr: 0x86B0, symSize: 0x10 }
- { offsetInCU: 0x5C18, offset: 0x8F20A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0x3A20, symBinAddr: 0x86C0, symSize: 0x10 }
- { offsetInCU: 0x5C34, offset: 0x8F226, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0x3A30, symBinAddr: 0x86D0, symSize: 0x10 }
- { offsetInCU: 0x5C50, offset: 0x8F242, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itFTW', symObjAddr: 0x3A40, symBinAddr: 0x86E0, symSize: 0x10 }
- { offsetInCU: 0x5C6C, offset: 0x8F25E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtFTW', symObjAddr: 0x3A50, symBinAddr: 0x86F0, symSize: 0x10 }
- { offsetInCU: 0x5C88, offset: 0x8F27A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itFTW', symObjAddr: 0x3A60, symBinAddr: 0x8700, symSize: 0x10 }
- { offsetInCU: 0x5CA4, offset: 0x8F296, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VALtKFTW', symObjAddr: 0x3A70, symBinAddr: 0x8710, symSize: 0x10 }
- { offsetInCU: 0x5CD9, offset: 0x8F2CB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0x3A80, symBinAddr: 0x8720, symSize: 0x10 }
- { offsetInCU: 0x5D1E, offset: 0x8F310, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVAA0F0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0x3A90, symBinAddr: 0x8730, symSize: 0x10 }
- { offsetInCU: 0x5D51, offset: 0x8F343, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZTf4nd_n', symObjAddr: 0x5C40, symBinAddr: 0xA8E0, symSize: 0x2E0 }
- { offsetInCU: 0x60E8, offset: 0x8F6DA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV20initPlacesByCellType33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardVFZTf4nd_n', symObjAddr: 0x5F20, symBinAddr: 0xABC0, symSize: 0x3D0 }
- { offsetInCU: 0x65E9, offset: 0x8FBDB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV23checkCellsByTypeIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x62F0, symBinAddr: 0xAF90, symSize: 0x150 }
- { offsetInCU: 0x6791, offset: 0x8FD83, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV18checkPiecesIterate33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6440, symBinAddr: 0xB0E0, symSize: 0x150 }
- { offsetInCU: 0x6859, offset: 0x8FE4B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15checkWaterCells33_DFC7A53241A8EF79AF2B79A48A65C265LLyyAA5BoardV_S2itKFZTf4nnnd_n', symObjAddr: 0x6590, symBinAddr: 0xB230, symSize: 0xB0 }
- { offsetInCU: 0x695B, offset: 0x8FF4D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV6pieces33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x340, symBinAddr: 0x4FE0, symSize: 0x20 }
- { offsetInCU: 0x6975, offset: 0x8FF67, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV14startingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x360, symBinAddr: 0x5000, symSize: 0x30 }
- { offsetInCU: 0x69AB, offset: 0x8FF9D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV15iteratingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x420, symBinAddr: 0x50C0, symSize: 0x30 }
- { offsetInCU: 0x69C5, offset: 0x8FFB7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV12endingChecks33_DFC7A53241A8EF79AF2B79A48A65C265LL_WZ', symObjAddr: 0x4E0, symBinAddr: 0x5180, symSize: 0x20 }
- { offsetInCU: 0x69DF, offset: 0x8FFD1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesV16placesByCellType_WZ', symObjAddr: 0x500, symBinAddr: 0x51A0, symSize: 0x20 }
- { offsetInCU: 0x6F06, offset: 0x904F8, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8setValue_6forKeyyq_n_xtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3AA0, symBinAddr: 0x8740, symSize: 0xB0 }
- { offsetInCU: 0x6F7B, offset: 0x9056D, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3B50, symBinAddr: 0x87F0, symSize: 0x60 }
- { offsetInCU: 0x6FA8, offset: 0x9059A, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantVyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3BB0, symBinAddr: 0x8850, symSize: 0x30 }
- { offsetInCU: 0x6FEB, offset: 0x905DD, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3BE0, symBinAddr: 0x8880, symSize: 0x50 }
- { offsetInCU: 0x7063, offset: 0x90655, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV_8isUniqueq_Sgx_SbtciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x3C30, symBinAddr: 0x88D0, symSize: 0xD0 }
- { offsetInCU: 0x719B, offset: 0x9078D, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3D00, symBinAddr: 0x89A0, symSize: 0x30 }
- { offsetInCU: 0x71BE, offset: 0x907B0, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV8asNatives01_C10DictionaryVyxq_GvM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5.resume.0', symObjAddr: 0x3D30, symBinAddr: 0x89D0, symSize: 0x20 }
- { offsetInCU: 0x71F9, offset: 0x907EB, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x3D50, symBinAddr: 0x89F0, symSize: 0xB0 }
- { offsetInCU: 0x7261, offset: 0x90853, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV12mutatingFind_8isUniques10_HashTableV6BucketV6bucket_Sb5foundtx_SbtF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x3E00, symBinAddr: 0x8AA0, symSize: 0xC0 }
- { offsetInCU: 0x72B7, offset: 0x908A9, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x3EC0, symBinAddr: 0x8B60, symSize: 0x80 }
- { offsetInCU: 0x7324, offset: 0x90916, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x3FA0, symBinAddr: 0x8C40, symSize: 0x1E0 }
- { offsetInCU: 0x7447, offset: 0x90A39, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF14DouShouQiModel5BoardV_SiTB5', symObjAddr: 0x4180, symBinAddr: 0x8E20, symSize: 0x50 }
- { offsetInCU: 0x7518, offset: 0x90B0A, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF14DouShouQiModel5BoardV_TB5', symObjAddr: 0x41D0, symBinAddr: 0x8E70, symSize: 0x210 }
- { offsetInCU: 0x76D8, offset: 0x90CCA, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4470, symBinAddr: 0x9110, symSize: 0x200 }
- { offsetInCU: 0x7751, offset: 0x90D43, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4670, symBinAddr: 0x9310, symSize: 0x210 }
- { offsetInCU: 0x77EB, offset: 0x90DDD, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5', symObjAddr: 0x4880, symBinAddr: 0x9520, symSize: 0x380 }
- { offsetInCU: 0x7988, offset: 0x90F7A, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF14DouShouQiModel5BoardV_SiTg5', symObjAddr: 0x4C00, symBinAddr: 0x98A0, symSize: 0x330 }
- { offsetInCU: 0x7AAF, offset: 0x910A1, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x4F30, symBinAddr: 0x9BD0, symSize: 0x140 }
- { offsetInCU: 0x7CC8, offset: 0x912BA, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x5070, symBinAddr: 0x9D10, symSize: 0x160 }
- { offsetInCU: 0x7EF4, offset: 0x914E6, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x51D0, symBinAddr: 0x9E70, symSize: 0x1C0 }
- { offsetInCU: 0x7F58, offset: 0x9154A, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5390, symBinAddr: 0xA030, symSize: 0x2F0 }
- { offsetInCU: 0x8173, offset: 0x91765, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tF14DouShouQiModel5PieceV_Tg5', symObjAddr: 0x5680, symBinAddr: 0xA320, symSize: 0x350 }
- { offsetInCU: 0x83B8, offset: 0x919AA, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x59D0, symBinAddr: 0xA670, symSize: 0x20 }
- { offsetInCU: 0x83D0, offset: 0x919C2, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x59F0, symBinAddr: 0xA690, symSize: 0x20 }
- { offsetInCU: 0x842A, offset: 0x91A1C, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x5A10, symBinAddr: 0xA6B0, symSize: 0x120 }
- { offsetInCU: 0x8582, offset: 0x91B74, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x5B30, symBinAddr: 0xA7D0, symSize: 0x110 }
- { offsetInCU: 0x87DD, offset: 0x91DCF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOACs0F0AAWl', symObjAddr: 0x6830, symBinAddr: 0xB4D0, symSize: 0x30 }
- { offsetInCU: 0x87F1, offset: 0x91DE3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOACs0G0AAWl', symObjAddr: 0x6860, symBinAddr: 0xB500, symSize: 0x30 }
- { offsetInCU: 0x8805, offset: 0x91DF7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwCP', symObjAddr: 0x6890, symBinAddr: 0xB530, symSize: 0x30 }
- { offsetInCU: 0x8819, offset: 0x91E0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwxx', symObjAddr: 0x68C0, symBinAddr: 0xB560, symSize: 0x20 }
- { offsetInCU: 0x882D, offset: 0x91E1F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwcp', symObjAddr: 0x68E0, symBinAddr: 0xB580, symSize: 0x30 }
- { offsetInCU: 0x8841, offset: 0x91E33, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwca', symObjAddr: 0x6910, symBinAddr: 0xB5B0, symSize: 0x50 }
- { offsetInCU: 0x8855, offset: 0x91E47, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x6960, symBinAddr: 0xB600, symSize: 0x10 }
- { offsetInCU: 0x8869, offset: 0x91E5B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwta', symObjAddr: 0x6970, symBinAddr: 0xB610, symSize: 0x30 }
- { offsetInCU: 0x887D, offset: 0x91E6F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwet', symObjAddr: 0x69A0, symBinAddr: 0xB640, symSize: 0x40 }
- { offsetInCU: 0x8891, offset: 0x91E83, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVwst', symObjAddr: 0x69E0, symBinAddr: 0xB680, symSize: 0x40 }
- { offsetInCU: 0x88A5, offset: 0x91E97, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12ClassicRulesVMa', symObjAddr: 0x6A20, symBinAddr: 0xB6C0, symSize: 0x10 }
- { offsetInCU: 0x88B9, offset: 0x91EAB, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x6A30, symBinAddr: 0xB6D0, symSize: 0x40 }
- { offsetInCU: 0x897D, offset: 0x91F6F, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14DouShouQiModel4MoveVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x6B70, symBinAddr: 0xB810, symSize: 0x150 }
- { offsetInCU: 0x8A4E, offset: 0x92040, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14DouShouQiModel4MoveV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x6CC0, symBinAddr: 0xB960, symSize: 0xA0 }
- { offsetInCU: 0x8C62, offset: 0x92254, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5', symObjAddr: 0x520, symBinAddr: 0x51C0, symSize: 0x40 }
- { offsetInCU: 0x8C7E, offset: 0x92270, size: 0x8, addend: 0x0, symName: '_$sSDyq_SgxciM14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTB5.resume.0', symObjAddr: 0x560, symBinAddr: 0x5200, symSize: 0x20 }
- { offsetInCU: 0x8D2A, offset: 0x9231C, size: 0x8, addend: 0x0, symName: '_$sSh8containsySbxF14DouShouQiModel5PieceV_TB5', symObjAddr: 0x580, symBinAddr: 0x5220, symSize: 0xD0 }
- { offsetInCU: 0x92B5, offset: 0x928A7, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel8CellTypeO_SaySi3row_Si3coltGTg5Tf4gd_n', symObjAddr: 0x6640, symBinAddr: 0xB2E0, symSize: 0x100 }
- { offsetInCU: 0x93E7, offset: 0x929D9, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5BoardV_SiTg5Tf4gd_n', symObjAddr: 0x6740, symBinAddr: 0xB3E0, symSize: 0xF0 }
- { offsetInCU: 0x9537, offset: 0x92B29, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC14DouShouQiModel5OwnerO_AC6PlayerCTg5Tf4gd_n', symObjAddr: 0x6A70, symBinAddr: 0xB710, symSize: 0x100 }
- { offsetInCU: 0x27, offset: 0x92E77, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xBE00, symSize: 0x20 }
- { offsetInCU: 0x4B, offset: 0x92E9B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfC', symObjAddr: 0x0, symBinAddr: 0xBE00, symSize: 0x20 }
- { offsetInCU: 0x9A, offset: 0x92EEA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV11descriptionSSvg', symObjAddr: 0x20, symBinAddr: 0xBE20, symSize: 0x100 }
- { offsetInCU: 0x1DF, offset: 0x9302F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg', symObjAddr: 0x120, symBinAddr: 0xBF20, symSize: 0x10 }
- { offsetInCU: 0x1FD, offset: 0x9304D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg', symObjAddr: 0x130, symBinAddr: 0xBF30, symSize: 0x10 }
- { offsetInCU: 0x21B, offset: 0x9306B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg', symObjAddr: 0x140, symBinAddr: 0xBF40, symSize: 0x10 }
- { offsetInCU: 0x239, offset: 0x93089, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs', symObjAddr: 0x150, symBinAddr: 0xBF50, symSize: 0x10 }
- { offsetInCU: 0x277, offset: 0x930C7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM', symObjAddr: 0x160, symBinAddr: 0xBF60, symSize: 0x20 }
- { offsetInCU: 0x2A5, offset: 0x930F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM.resume.0', symObjAddr: 0x180, symBinAddr: 0xBF80, symSize: 0x10 }
- { offsetInCU: 0x2D0, offset: 0x93120, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ', symObjAddr: 0x190, symBinAddr: 0xBF90, symSize: 0x10 }
- { offsetInCU: 0x2E4, offset: 0x93134, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1A0, symBinAddr: 0xBFA0, symSize: 0x10 }
- { offsetInCU: 0x30F, offset: 0x9315F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1B0, symBinAddr: 0xBFB0, symSize: 0x10 }
- { offsetInCU: 0x340, offset: 0x93190, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1C0, symBinAddr: 0xBFC0, symSize: 0x50 }
- { offsetInCU: 0x3B4, offset: 0x93204, size: 0x8, addend: 0x0, symName: ___swift_memcpy4_1, symObjAddr: 0x210, symBinAddr: 0xC010, symSize: 0x10 }
- { offsetInCU: 0x3C8, offset: 0x93218, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwet', symObjAddr: 0x230, symBinAddr: 0xC020, symSize: 0x40 }
- { offsetInCU: 0x3DC, offset: 0x9322C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVwst', symObjAddr: 0x270, symBinAddr: 0xC060, symSize: 0x40 }
- { offsetInCU: 0x3F0, offset: 0x93240, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4CellVMa', symObjAddr: 0x2B0, symBinAddr: 0xC0A0, symSize: 0xA }
- { offsetInCU: 0x2B, offset: 0x9334E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xC0B0, symSize: 0x170 }
- { offsetInCU: 0x4F, offset: 0x93372, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGridSaySayAA4CellVGGvpZ', symObjAddr: 0xBD28, symBinAddr: 0x1DB50, symSize: 0x0 }
- { offsetInCU: 0x195, offset: 0x934B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11initialGrid_WZ', symObjAddr: 0x0, symBinAddr: 0xC0B0, symSize: 0x170 }
- { offsetInCU: 0x575, offset: 0x93898, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ', symObjAddr: 0x170, symBinAddr: 0xC220, symSize: 0x70 }
- { offsetInCU: 0x5B3, offset: 0x938D6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ', symObjAddr: 0x1E0, symBinAddr: 0xC290, symSize: 0x10 }
- { offsetInCU: 0x5CE, offset: 0x938F1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVACycfC', symObjAddr: 0x1F0, symBinAddr: 0xC2A0, symSize: 0x30 }
- { offsetInCU: 0x612, offset: 0x93935, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfC', symObjAddr: 0x220, symBinAddr: 0xC2D0, symSize: 0x50 }
- { offsetInCU: 0x676, offset: 0x93999, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF', symObjAddr: 0x270, symBinAddr: 0xC320, symSize: 0x1B0 }
- { offsetInCU: 0x9B0, offset: 0x93CD3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF', symObjAddr: 0x420, symBinAddr: 0xC4D0, symSize: 0x2A0 }
- { offsetInCU: 0xDB1, offset: 0x940D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF', symObjAddr: 0x6C0, symBinAddr: 0xC770, symSize: 0x80 }
- { offsetInCU: 0xEAA, offset: 0x941CD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF', symObjAddr: 0x740, symBinAddr: 0xC7F0, symSize: 0xF0 }
- { offsetInCU: 0x1085, offset: 0x943A8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF', symObjAddr: 0x830, symBinAddr: 0xC8E0, symSize: 0x30 }
- { offsetInCU: 0x116B, offset: 0x9448E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF', symObjAddr: 0x860, symBinAddr: 0xC910, symSize: 0x130 }
- { offsetInCU: 0x12C3, offset: 0x945E6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF', symObjAddr: 0x990, symBinAddr: 0xCA40, symSize: 0x240 }
- { offsetInCU: 0x146A, offset: 0x9478D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg', symObjAddr: 0xBD0, symBinAddr: 0xCC80, symSize: 0x10 }
- { offsetInCU: 0x147E, offset: 0x947A1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg', symObjAddr: 0xBE0, symBinAddr: 0xCC90, symSize: 0x10 }
- { offsetInCU: 0x14B0, offset: 0x947D3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11createBoardAA0I0VyFZTW', symObjAddr: 0xBF0, symBinAddr: 0xCCA0, symSize: 0x70 }
- { offsetInCU: 0x14FD, offset: 0x94820, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10checkBoardyyAA0I0VKFZTW', symObjAddr: 0xC60, symBinAddr: 0xCD10, symSize: 0x10 }
- { offsetInCU: 0x1535, offset: 0x94858, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP13getNextPlayerAA5OwnerOyFTW', symObjAddr: 0xC70, symBinAddr: 0xCD20, symSize: 0x10 }
- { offsetInCU: 0x1551, offset: 0x94874, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtFTW', symObjAddr: 0xC80, symBinAddr: 0xCD30, symSize: 0x10 }
- { offsetInCU: 0x156D, offset: 0x94890, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itFTW', symObjAddr: 0xC90, symBinAddr: 0xCD40, symSize: 0x10 }
- { offsetInCU: 0x1589, offset: 0x948AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itFTW', symObjAddr: 0xCA0, symBinAddr: 0xCD50, symSize: 0x10 }
- { offsetInCU: 0x15A5, offset: 0x948C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtFTW', symObjAddr: 0xCB0, symBinAddr: 0xCD60, symSize: 0x10 }
- { offsetInCU: 0x15C1, offset: 0x948E4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itFTW', symObjAddr: 0xCC0, symBinAddr: 0xCD70, symSize: 0x10 }
- { offsetInCU: 0x15DD, offset: 0x94900, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VALtKFTW', symObjAddr: 0xCD0, symBinAddr: 0xCD80, symSize: 0x10 }
- { offsetInCU: 0x1611, offset: 0x94934, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP10occurencesSDyAA5BoardVSiGvgTW', symObjAddr: 0xCE0, symBinAddr: 0xCD90, symSize: 0x10 }
- { offsetInCU: 0x1654, offset: 0x94977, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVAA0G0A2aDP8historicSayAA4MoveVGvgTW', symObjAddr: 0xCF0, symBinAddr: 0xCDA0, symSize: 0x10 }
- { offsetInCU: 0x1686, offset: 0x949A9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV16checkCellsByType33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xD00, symBinAddr: 0xCDB0, symSize: 0x130 }
- { offsetInCU: 0x18E4, offset: 0x94C07, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV11checkPieces33_2B29F97F1EE5509065CD9853A78D42F5LLyyAA5BoardVKFZTf4nd_n', symObjAddr: 0xE30, symBinAddr: 0xCEE0, symSize: 0x230 }
- { offsetInCU: 0x1CEA, offset: 0x9500D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZTf4nd_n', symObjAddr: 0x1060, symBinAddr: 0xD110, symSize: 0xC0 }
- { offsetInCU: 0x1F87, offset: 0x952AA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwCP', symObjAddr: 0x11C0, symBinAddr: 0xD1D0, symSize: 0x30 }
- { offsetInCU: 0x1F9B, offset: 0x952BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwxx', symObjAddr: 0x11F0, symBinAddr: 0xD200, symSize: 0x20 }
- { offsetInCU: 0x1FAF, offset: 0x952D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwcp', symObjAddr: 0x1210, symBinAddr: 0xD220, symSize: 0x30 }
- { offsetInCU: 0x1FC3, offset: 0x952E6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwca', symObjAddr: 0x1240, symBinAddr: 0xD250, symSize: 0x50 }
- { offsetInCU: 0x1FD7, offset: 0x952FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwta', symObjAddr: 0x12A0, symBinAddr: 0xD2A0, symSize: 0x30 }
- { offsetInCU: 0x1FEB, offset: 0x9530E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwet', symObjAddr: 0x12D0, symBinAddr: 0xD2D0, symSize: 0x40 }
- { offsetInCU: 0x1FFF, offset: 0x95322, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVwst', symObjAddr: 0x1310, symBinAddr: 0xD310, symSize: 0x40 }
- { offsetInCU: 0x2013, offset: 0x95336, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel15VerySimpleRulesVMa', symObjAddr: 0x1350, symBinAddr: 0xD350, symSize: 0xA }
- { offsetInCU: 0x72, offset: 0x95704, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0xD410, symSize: 0x60 }
- { offsetInCU: 0xC3, offset: 0x95755, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfd', symObjAddr: 0x80, symBinAddr: 0xD490, symSize: 0x20 }
- { offsetInCU: 0xE0, offset: 0x95772, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF', symObjAddr: 0xA0, symBinAddr: 0xD4B0, symSize: 0xE0 }
- { offsetInCU: 0x1F4, offset: 0x95886, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF', symObjAddr: 0x180, symBinAddr: 0xD590, symSize: 0x50 }
- { offsetInCU: 0x27B, offset: 0x9590D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY0_', symObjAddr: 0x1D0, symBinAddr: 0xD5E0, symSize: 0x110 }
- { offsetInCU: 0x3D9, offset: 0x95A6B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTQ1_', symObjAddr: 0x2E0, symBinAddr: 0xD6F0, symSize: 0x80 }
- { offsetInCU: 0x490, offset: 0x95B22, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY2_', symObjAddr: 0x360, symBinAddr: 0xD770, symSize: 0x120 }
- { offsetInCU: 0x571, offset: 0x95C03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKFTY3_', symObjAddr: 0x480, symBinAddr: 0xD890, symSize: 0x50 }
- { offsetInCU: 0x5E3, offset: 0x95C75, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC4nameSSvg', symObjAddr: 0x4D0, symBinAddr: 0xD8E0, symSize: 0x30 }
- { offsetInCU: 0x610, offset: 0x95CA2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC2idAA5OwnerOvg', symObjAddr: 0x500, symBinAddr: 0xD910, symSize: 0x10 }
- { offsetInCU: 0x673, offset: 0x95D05, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x510, symBinAddr: 0xD920, symSize: 0x90 }
- { offsetInCU: 0x6D0, offset: 0x95D62, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x5A0, symBinAddr: 0xD9B0, symSize: 0x30 }
- { offsetInCU: 0x740, offset: 0x95DD2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCfD', symObjAddr: 0x790, symBinAddr: 0xDBA0, symSize: 0x30 }
- { offsetInCU: 0x784, offset: 0x95E16, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6PlayerCMa', symObjAddr: 0x60, symBinAddr: 0xD470, symSize: 0x20 }
- { offsetInCU: 0x88B, offset: 0x95F1D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TR', symObjAddr: 0x5D0, symBinAddr: 0xD9E0, symSize: 0x70 }
- { offsetInCU: 0x8C5, offset: 0x95F57, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTQ0_', symObjAddr: 0x640, symBinAddr: 0xDA50, symSize: 0x50 }
- { offsetInCU: 0x91F, offset: 0x95FB1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x6B0, symBinAddr: 0xDAC0, symSize: 0x90 }
- { offsetInCU: 0x94F, offset: 0x95FE1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTATQ0_', symObjAddr: 0x740, symBinAddr: 0xDB50, symSize: 0x50 }
- { offsetInCU: 0xA11, offset: 0x960A3, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSi3row_Si3colt_Tg5', symObjAddr: 0x910, symBinAddr: 0xDD20, symSize: 0x110 }
- { offsetInCU: 0xB9C, offset: 0x9622E, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0xA60, symBinAddr: 0xDE30, symSize: 0x120 }
- { offsetInCU: 0xD3F, offset: 0x963D1, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14DouShouQiModel4CellV_Tg5', symObjAddr: 0xB80, symBinAddr: 0xDF50, symSize: 0x110 }
- { offsetInCU: 0xEED, offset: 0x9657F, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0xC90, symBinAddr: 0xE060, symSize: 0x130 }
- { offsetInCU: 0x27, offset: 0x968B8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xE3E0, symSize: 0x10 }
- { offsetInCU: 0x3F, offset: 0x968D0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwCP', symObjAddr: 0x40, symBinAddr: 0xE420, symSize: 0x60 }
- { offsetInCU: 0x53, offset: 0x968E4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwxx', symObjAddr: 0xA0, symBinAddr: 0xE480, symSize: 0x40 }
- { offsetInCU: 0x67, offset: 0x968F8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwcp', symObjAddr: 0xE0, symBinAddr: 0xE4C0, symSize: 0x60 }
- { offsetInCU: 0x7B, offset: 0x9690C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwca', symObjAddr: 0x140, symBinAddr: 0xE520, symSize: 0xB0 }
- { offsetInCU: 0x8F, offset: 0x96920, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwta', symObjAddr: 0x200, symBinAddr: 0xE5D0, symSize: 0x70 }
- { offsetInCU: 0xA3, offset: 0x96934, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwet', symObjAddr: 0x270, symBinAddr: 0xE640, symSize: 0x50 }
- { offsetInCU: 0xB7, offset: 0x96948, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwst', symObjAddr: 0x2C0, symBinAddr: 0xE690, symSize: 0x50 }
- { offsetInCU: 0xCB, offset: 0x9695C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwug', symObjAddr: 0x310, symBinAddr: 0xE6E0, symSize: 0x30 }
- { offsetInCU: 0xDF, offset: 0x96970, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwup', symObjAddr: 0x340, symBinAddr: 0xE710, symSize: 0x10 }
- { offsetInCU: 0xF3, offset: 0x96984, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOwui', symObjAddr: 0x350, symBinAddr: 0xE720, symSize: 0x30 }
- { offsetInCU: 0x107, offset: 0x96998, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOMa', symObjAddr: 0x380, symBinAddr: 0xE750, symSize: 0xA }
- { offsetInCU: 0x12C, offset: 0x969BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP7_domainSSvgTW', symObjAddr: 0x0, symBinAddr: 0xE3E0, symSize: 0x10 }
- { offsetInCU: 0x148, offset: 0x969D9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP5_codeSivgTW', symObjAddr: 0x10, symBinAddr: 0xE3F0, symSize: 0x10 }
- { offsetInCU: 0x164, offset: 0x969F5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x20, symBinAddr: 0xE400, symSize: 0x10 }
- { offsetInCU: 0x180, offset: 0x96A11, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel9GameErrorOs0F0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x30, symBinAddr: 0xE410, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x96AA6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xE760, symSize: 0x40 }
- { offsetInCU: 0x52, offset: 0x96AD1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF', symObjAddr: 0x0, symBinAddr: 0xE760, symSize: 0x40 }
- { offsetInCU: 0xBB, offset: 0x96B3A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY0_', symObjAddr: 0x40, symBinAddr: 0xE7A0, symSize: 0x200 }
- { offsetInCU: 0x394, offset: 0x96E13, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTQ1_', symObjAddr: 0x240, symBinAddr: 0xE9A0, symSize: 0x80 }
- { offsetInCU: 0x48D, offset: 0x96F0C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY2_', symObjAddr: 0x2C0, symBinAddr: 0xEA20, symSize: 0x140 }
- { offsetInCU: 0x5AF, offset: 0x9702E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKFTY3_', symObjAddr: 0x400, symBinAddr: 0xEB60, symSize: 0x60 }
- { offsetInCU: 0x696, offset: 0x97115, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x490, symBinAddr: 0xEBF0, symSize: 0x90 }
- { offsetInCU: 0x72D, offset: 0x971AC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x520, symBinAddr: 0xEC80, symSize: 0x70 }
- { offsetInCU: 0x7B6, offset: 0x97235, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfd', symObjAddr: 0x590, symBinAddr: 0xECF0, symSize: 0x20 }
- { offsetInCU: 0x815, offset: 0x97294, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCfD', symObjAddr: 0x5B0, symBinAddr: 0xED10, symSize: 0x30 }
- { offsetInCU: 0xA42, offset: 0x974C1, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x460, symBinAddr: 0xEBC0, symSize: 0x30 }
- { offsetInCU: 0xB2A, offset: 0x975A9, size: 0x8, addend: 0x0, symName: '_$sSGsE4next10upperBoundqd__qd___ts17FixedWidthIntegerRd__SURd__lFs27SystemRandomNumberGeneratorV_SuTg5', symObjAddr: 0x5E0, symBinAddr: 0xED40, symSize: 0xB0 }
- { offsetInCU: 0xBF7, offset: 0x97676, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel12RandomPlayerCMa', symObjAddr: 0x690, symBinAddr: 0xEDF0, symSize: 0x14 }
- { offsetInCU: 0x27, offset: 0x97832, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xEE10, symSize: 0x40 }
- { offsetInCU: 0x6C, offset: 0x97877, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ', symObjAddr: 0x0, symBinAddr: 0xEE10, symSize: 0x40 }
- { offsetInCU: 0xDB, offset: 0x978E6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ', symObjAddr: 0x80, symBinAddr: 0xEE50, symSize: 0x10 }
- { offsetInCU: 0x10A, offset: 0x97915, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF', symObjAddr: 0x90, symBinAddr: 0xEE60, symSize: 0x20 }
- { offsetInCU: 0x1A0, offset: 0x979AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeO9hashValueSivg', symObjAddr: 0xB0, symBinAddr: 0xEE80, symSize: 0x40 }
- { offsetInCU: 0x29B, offset: 0x97AA6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xF0, symBinAddr: 0xEEC0, symSize: 0x10 }
- { offsetInCU: 0x2F1, offset: 0x97AFC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH9hashValueSivgTW', symObjAddr: 0x100, symBinAddr: 0xEED0, symSize: 0x40 }
- { offsetInCU: 0x3D5, offset: 0x97BE0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x140, symBinAddr: 0xEF10, symSize: 0x20 }
- { offsetInCU: 0x461, offset: 0x97C6C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAAsADP8allCases03AllJ0QzvgZTW', symObjAddr: 0x270, symBinAddr: 0xF040, symSize: 0x50 }
- { offsetInCU: 0x4FD, offset: 0x97D08, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASQWb', symObjAddr: 0x1A0, symBinAddr: 0xEF70, symSize: 0x10 }
- { offsetInCU: 0x511, offset: 0x97D1C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOACSQAAWl', symObjAddr: 0x1B0, symBinAddr: 0xEF80, symSize: 0x30 }
- { offsetInCU: 0x525, offset: 0x97D30, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x1E0, symBinAddr: 0xEFB0, symSize: 0x10 }
- { offsetInCU: 0x539, offset: 0x97D44, size: 0x8, addend: 0x0, symName: '_$sSay14DouShouQiModel8CellTypeOGSayxGSlsWl', symObjAddr: 0x1F0, symBinAddr: 0xEFC0, symSize: 0x40 }
- { offsetInCU: 0x54D, offset: 0x97D58, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x230, symBinAddr: 0xF000, symSize: 0x40 }
- { offsetInCU: 0x561, offset: 0x97D6C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwet', symObjAddr: 0x2E0, symBinAddr: 0xF090, symSize: 0x80 }
- { offsetInCU: 0x575, offset: 0x97D80, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwst', symObjAddr: 0x360, symBinAddr: 0xF110, symSize: 0xD0 }
- { offsetInCU: 0x589, offset: 0x97D94, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwug', symObjAddr: 0x430, symBinAddr: 0xF1E0, symSize: 0x10 }
- { offsetInCU: 0x59D, offset: 0x97DA8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwup', symObjAddr: 0x440, symBinAddr: 0xF1F0, symSize: 0x10 }
- { offsetInCU: 0x5B1, offset: 0x97DBC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOwui', symObjAddr: 0x450, symBinAddr: 0xF200, symSize: 0x10 }
- { offsetInCU: 0x5C5, offset: 0x97DD0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOMa', symObjAddr: 0x460, symBinAddr: 0xF210, symSize: 0xA }
- { offsetInCU: 0x634, offset: 0x97E3F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8CellTypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x160, symBinAddr: 0xEF30, symSize: 0x40 }
- { offsetInCU: 0x2B, offset: 0x97F84, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xF220, symSize: 0x60 }
- { offsetInCU: 0xA6, offset: 0x97FFF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfC', symObjAddr: 0x0, symBinAddr: 0xF220, symSize: 0x60 }
- { offsetInCU: 0x285, offset: 0x981DE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF', symObjAddr: 0x60, symBinAddr: 0xF280, symSize: 0x1B0 }
- { offsetInCU: 0x529, offset: 0x98482, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF', symObjAddr: 0x210, symBinAddr: 0xF430, symSize: 0xB0 }
- { offsetInCU: 0x764, offset: 0x986BD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6nbRowsSivg', symObjAddr: 0x2C0, symBinAddr: 0xF4E0, symSize: 0x10 }
- { offsetInCU: 0x782, offset: 0x986DB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9nbColumnsSivg', symObjAddr: 0x2D0, symBinAddr: 0xF4F0, symSize: 0x10 }
- { offsetInCU: 0x7A0, offset: 0x986F9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg', symObjAddr: 0x2E0, symBinAddr: 0xF500, symSize: 0x10 }
- { offsetInCU: 0x7BE, offset: 0x98717, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF', symObjAddr: 0x2F0, symBinAddr: 0xF510, symSize: 0xA0 }
- { offsetInCU: 0x9F2, offset: 0x9894B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF', symObjAddr: 0x390, symBinAddr: 0xF5B0, symSize: 0x110 }
- { offsetInCU: 0xBA1, offset: 0x98AFA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF', symObjAddr: 0x4A0, symBinAddr: 0xF6C0, symSize: 0xF0 }
- { offsetInCU: 0xD6F, offset: 0x98CC8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ', symObjAddr: 0x590, symBinAddr: 0xF7B0, symSize: 0x30 }
- { offsetInCU: 0xDB1, offset: 0x98D0A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardV9hashValueSivg', symObjAddr: 0x5C0, symBinAddr: 0xF7E0, symSize: 0x50 }
- { offsetInCU: 0xE3D, offset: 0x98D96, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH9hashValueSivgTW', symObjAddr: 0x610, symBinAddr: 0xF830, symSize: 0x50 }
- { offsetInCU: 0xECC, offset: 0x98E25, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x660, symBinAddr: 0xF880, symSize: 0x10 }
- { offsetInCU: 0xEFA, offset: 0x98E53, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6C0, symBinAddr: 0xF8E0, symSize: 0x30 }
- { offsetInCU: 0x1189, offset: 0x990E2, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4MoveV_Tg5', symObjAddr: 0x6F0, symBinAddr: 0xF910, symSize: 0x20 }
- { offsetInCU: 0x11C1, offset: 0x9911A, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF14DouShouQiModel4CellV_Tg5', symObjAddr: 0x710, symBinAddr: 0xF930, symSize: 0x20 }
- { offsetInCU: 0x11F9, offset: 0x99152, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSay14DouShouQiModel4CellVG_Tg5', symObjAddr: 0x730, symBinAddr: 0xF950, symSize: 0x20 }
- { offsetInCU: 0x1231, offset: 0x9918A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASQWb', symObjAddr: 0x8E0, symBinAddr: 0xFB00, symSize: 0x10 }
- { offsetInCU: 0x1245, offset: 0x9919E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVACSQAAWl', symObjAddr: 0x8F0, symBinAddr: 0xFB10, symSize: 0x30 }
- { offsetInCU: 0x1259, offset: 0x991B2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwCP', symObjAddr: 0x920, symBinAddr: 0xFB40, symSize: 0x30 }
- { offsetInCU: 0x126D, offset: 0x991C6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwxx', symObjAddr: 0x950, symBinAddr: 0xFB70, symSize: 0x10 }
- { offsetInCU: 0x1281, offset: 0x991DA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwcp', symObjAddr: 0x960, symBinAddr: 0xFB80, symSize: 0x30 }
- { offsetInCU: 0x1295, offset: 0x991EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwca', symObjAddr: 0x990, symBinAddr: 0xFBB0, symSize: 0x40 }
- { offsetInCU: 0x12A9, offset: 0x99202, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0x9D0, symBinAddr: 0xFBF0, symSize: 0x20 }
- { offsetInCU: 0x12BD, offset: 0x99216, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwta', symObjAddr: 0x9F0, symBinAddr: 0xFC10, symSize: 0x30 }
- { offsetInCU: 0x12D1, offset: 0x9922A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwet', symObjAddr: 0xA20, symBinAddr: 0xFC40, symSize: 0x50 }
- { offsetInCU: 0x12E5, offset: 0x9923E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVwst', symObjAddr: 0xA70, symBinAddr: 0xFC90, symSize: 0x40 }
- { offsetInCU: 0x12F9, offset: 0x99252, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVMa', symObjAddr: 0xAB0, symBinAddr: 0xFCD0, symSize: 0xA }
- { offsetInCU: 0x1458, offset: 0x993B1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x670, symBinAddr: 0xF890, symSize: 0x50 }
- { offsetInCU: 0x1496, offset: 0x993EF, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ14DouShouQiModel4CellV_Tg5Tf4nnd_n', symObjAddr: 0x750, symBinAddr: 0xF970, symSize: 0x80 }
- { offsetInCU: 0x156A, offset: 0x994C3, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSay14DouShouQiModel4CellVG_Tg5Tf4nnd_n', symObjAddr: 0x7D0, symBinAddr: 0xF9F0, symSize: 0x110 }
- { offsetInCU: 0x27, offset: 0x99713, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xFCE0, symSize: 0x20 }
- { offsetInCU: 0x46, offset: 0x99732, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0OtcfC', symObjAddr: 0x0, symBinAddr: 0xFCE0, symSize: 0x20 }
- { offsetInCU: 0x85, offset: 0x99771, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV11descriptionSSvg', symObjAddr: 0x20, symBinAddr: 0xFD00, symSize: 0xC0 }
- { offsetInCU: 0x176, offset: 0x99862, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg', symObjAddr: 0xE0, symBinAddr: 0xFDC0, symSize: 0x10 }
- { offsetInCU: 0x194, offset: 0x99880, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV6animalAA6AnimalOvg', symObjAddr: 0xF0, symBinAddr: 0xFDD0, symSize: 0x10 }
- { offsetInCU: 0x1B2, offset: 0x9989E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF', symObjAddr: 0x100, symBinAddr: 0xFDE0, symSize: 0x40 }
- { offsetInCU: 0x2E8, offset: 0x999D4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ', symObjAddr: 0x140, symBinAddr: 0xFE20, symSize: 0x20 }
- { offsetInCU: 0x330, offset: 0x99A1C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceV9hashValueSivg', symObjAddr: 0x160, symBinAddr: 0xFE40, symSize: 0x50 }
- { offsetInCU: 0x4C7, offset: 0x99BB3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1B0, symBinAddr: 0xFE90, symSize: 0x10 }
- { offsetInCU: 0x4F2, offset: 0x99BDE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH9hashValueSivgTW', symObjAddr: 0x1C0, symBinAddr: 0xFEA0, symSize: 0x50 }
- { offsetInCU: 0x6A6, offset: 0x99D92, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x210, symBinAddr: 0xFEF0, symSize: 0x40 }
- { offsetInCU: 0x80B, offset: 0x99EF7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2A0, symBinAddr: 0xFF80, symSize: 0x20 }
- { offsetInCU: 0x8DD, offset: 0x99FC9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASQWb', symObjAddr: 0x2C0, symBinAddr: 0xFFA0, symSize: 0x10 }
- { offsetInCU: 0x8F1, offset: 0x99FDD, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVACSQAAWl', symObjAddr: 0x2D0, symBinAddr: 0xFFB0, symSize: 0x30 }
- { offsetInCU: 0x905, offset: 0x99FF1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwet', symObjAddr: 0x320, symBinAddr: 0xFFE0, symSize: 0x90 }
- { offsetInCU: 0x919, offset: 0x9A005, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVwst', symObjAddr: 0x3B0, symBinAddr: 0x10070, symSize: 0xE0 }
- { offsetInCU: 0x92D, offset: 0x9A019, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVMa', symObjAddr: 0x490, symBinAddr: 0x10150, symSize: 0xA }
- { offsetInCU: 0x9D2, offset: 0x9A0BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5PieceVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x250, symBinAddr: 0xFF30, symSize: 0x50 }
- { offsetInCU: 0x27, offset: 0x9A2C6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10160, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x9A2EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10160, symSize: 0x10 }
- { offsetInCU: 0x6E, offset: 0x9A30D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x50, symBinAddr: 0x101B0, symSize: 0x10 }
- { offsetInCU: 0x9F, offset: 0x9A33E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x60, symBinAddr: 0x101C0, symSize: 0x110 }
- { offsetInCU: 0x15B, offset: 0x9A3FA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwCP', symObjAddr: 0x170, symBinAddr: 0x102D0, symSize: 0x30 }
- { offsetInCU: 0x16F, offset: 0x9A40E, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x1B0, symBinAddr: 0x10300, symSize: 0x20 }
- { offsetInCU: 0x183, offset: 0x9A422, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwet', symObjAddr: 0x1D0, symBinAddr: 0x10320, symSize: 0x50 }
- { offsetInCU: 0x197, offset: 0x9A436, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwst', symObjAddr: 0x220, symBinAddr: 0x10370, symSize: 0x50 }
- { offsetInCU: 0x1AB, offset: 0x9A44A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwug', symObjAddr: 0x270, symBinAddr: 0x103C0, symSize: 0x20 }
- { offsetInCU: 0x1BF, offset: 0x9A45E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwup', symObjAddr: 0x290, symBinAddr: 0x103E0, symSize: 0x10 }
- { offsetInCU: 0x1D3, offset: 0x9A472, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOwui', symObjAddr: 0x2A0, symBinAddr: 0x103F0, symSize: 0x20 }
- { offsetInCU: 0x1E7, offset: 0x9A486, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOMa', symObjAddr: 0x2C0, symBinAddr: 0x10410, symSize: 0xA }
- { offsetInCU: 0x20C, offset: 0x9A4AB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP7_domainSSvgTW', symObjAddr: 0x10, symBinAddr: 0x10170, symSize: 0x10 }
- { offsetInCU: 0x228, offset: 0x9A4C7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP5_codeSivgTW', symObjAddr: 0x20, symBinAddr: 0x10180, symSize: 0x10 }
- { offsetInCU: 0x244, offset: 0x9A4E3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x30, symBinAddr: 0x10190, symSize: 0x10 }
- { offsetInCU: 0x260, offset: 0x9A4FF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel17InvalidBoardErrorOs0G0AAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x40, symBinAddr: 0x101A0, symSize: 0x10 }
- { offsetInCU: 0x27, offset: 0x9A5A5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10420, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x9A5C9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x10420, symSize: 0x10 }
- { offsetInCU: 0x7A, offset: 0x9A5F8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg', symObjAddr: 0x10, symBinAddr: 0x10430, symSize: 0x20 }
- { offsetInCU: 0xA5, offset: 0x9A623, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF', symObjAddr: 0x30, symBinAddr: 0x10450, symSize: 0x20 }
- { offsetInCU: 0x13B, offset: 0x9A6B9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerO9hashValueSivg', symObjAddr: 0x50, symBinAddr: 0x10470, symSize: 0x40 }
- { offsetInCU: 0x236, offset: 0x9A7B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x90, symBinAddr: 0x104B0, symSize: 0x10 }
- { offsetInCU: 0x28C, offset: 0x9A80A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH9hashValueSivgTW', symObjAddr: 0xA0, symBinAddr: 0x104C0, symSize: 0x40 }
- { offsetInCU: 0x370, offset: 0x9A8EE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xE0, symBinAddr: 0x10500, symSize: 0x20 }
- { offsetInCU: 0x3F9, offset: 0x9A977, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASQWb', symObjAddr: 0x140, symBinAddr: 0x10560, symSize: 0x10 }
- { offsetInCU: 0x40D, offset: 0x9A98B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOACSQAAWl', symObjAddr: 0x150, symBinAddr: 0x10570, symSize: 0x30 }
- { offsetInCU: 0x421, offset: 0x9A99F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwet', symObjAddr: 0x1A0, symBinAddr: 0x105A0, symSize: 0x80 }
- { offsetInCU: 0x435, offset: 0x9A9B3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwst', symObjAddr: 0x220, symBinAddr: 0x10620, symSize: 0xD0 }
- { offsetInCU: 0x449, offset: 0x9A9C7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwug', symObjAddr: 0x2F0, symBinAddr: 0x106F0, symSize: 0x10 }
- { offsetInCU: 0x45D, offset: 0x9A9DB, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwup', symObjAddr: 0x300, symBinAddr: 0x10700, symSize: 0x10 }
- { offsetInCU: 0x471, offset: 0x9A9EF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOwui', symObjAddr: 0x310, symBinAddr: 0x10710, symSize: 0x10 }
- { offsetInCU: 0x485, offset: 0x9AA03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOMa', symObjAddr: 0x320, symBinAddr: 0x10720, symSize: 0xA }
- { offsetInCU: 0x4DE, offset: 0x9AA5C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5OwnerOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x100, symBinAddr: 0x10520, symSize: 0x40 }
- { offsetInCU: 0x27, offset: 0x9AB88, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x10730, symSize: 0x70 }
- { offsetInCU: 0xD3, offset: 0x9AC34, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc', symObjAddr: 0x0, symBinAddr: 0x10730, symSize: 0x70 }
- { offsetInCU: 0x145, offset: 0x9ACA6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfd', symObjAddr: 0x70, symBinAddr: 0x107A0, symSize: 0x20 }
- { offsetInCU: 0x1AA, offset: 0x9AD0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfC', symObjAddr: 0x90, symBinAddr: 0x107C0, symSize: 0x90 }
- { offsetInCU: 0x248, offset: 0x9ADA9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCfD', symObjAddr: 0x120, symBinAddr: 0x10850, symSize: 0x30 }
- { offsetInCU: 0x2A2, offset: 0x9AE03, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel8IAPlayerCMa', symObjAddr: 0x150, symBinAddr: 0x10880, symSize: 0x14 }
- { offsetInCU: 0x27, offset: 0x9AED1, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x108A0, symSize: 0x10 }
- { offsetInCU: 0x46, offset: 0x9AEF0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x108A0, symSize: 0x10 }
- { offsetInCU: 0x5A, offset: 0x9AF04, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfC', symObjAddr: 0x10, symBinAddr: 0x108B0, symSize: 0x20 }
- { offsetInCU: 0xC1, offset: 0x9AF6B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg', symObjAddr: 0x30, symBinAddr: 0x108D0, symSize: 0x10 }
- { offsetInCU: 0xDF, offset: 0x9AF89, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV9rowOriginSivg', symObjAddr: 0x40, symBinAddr: 0x108E0, symSize: 0x10 }
- { offsetInCU: 0xFD, offset: 0x9AFA7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV12columnOriginSivg', symObjAddr: 0x50, symBinAddr: 0x108F0, symSize: 0x10 }
- { offsetInCU: 0x11B, offset: 0x9AFC5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV14rowDestinationSivg', symObjAddr: 0x60, symBinAddr: 0x10900, symSize: 0x10 }
- { offsetInCU: 0x139, offset: 0x9AFE3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV17columnDestinationSivg', symObjAddr: 0x70, symBinAddr: 0x10910, symSize: 0x10 }
- { offsetInCU: 0x157, offset: 0x9B001, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV11descriptionSSvg', symObjAddr: 0x80, symBinAddr: 0x10920, symSize: 0x1E0 }
- { offsetInCU: 0x287, offset: 0x9B131, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x260, symBinAddr: 0x10B00, symSize: 0x10 }
- { offsetInCU: 0x2B2, offset: 0x9B15C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x270, symBinAddr: 0x10B10, symSize: 0x10 }
- { offsetInCU: 0x2E3, offset: 0x9B18D, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x280, symBinAddr: 0x10B20, symSize: 0x40 }
- { offsetInCU: 0x365, offset: 0x9B20F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwCP', symObjAddr: 0x2C0, symBinAddr: 0x10B60, symSize: 0x30 }
- { offsetInCU: 0x379, offset: 0x9B223, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x300, symBinAddr: 0x10B90, symSize: 0x20 }
- { offsetInCU: 0x38D, offset: 0x9B237, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwet', symObjAddr: 0x320, symBinAddr: 0x10BB0, symSize: 0x40 }
- { offsetInCU: 0x3A1, offset: 0x9B24B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVwst', symObjAddr: 0x360, symBinAddr: 0x10BF0, symSize: 0x50 }
- { offsetInCU: 0x3B5, offset: 0x9B25F, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVMa', symObjAddr: 0x3B0, symBinAddr: 0x10C40, symSize: 0xA }
- { offsetInCU: 0x27, offset: 0x9B352, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x10C50, symSize: 0x10 }
- { offsetInCU: 0x4B, offset: 0x9B376, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueSivg', symObjAddr: 0x0, symBinAddr: 0x10C50, symSize: 0x10 }
- { offsetInCU: 0x66, offset: 0x9B391, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfC', symObjAddr: 0x10, symBinAddr: 0x10C60, symSize: 0x20 }
- { offsetInCU: 0xBA, offset: 0x9B3E5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0x130, symBinAddr: 0x10D80, symSize: 0x10 }
- { offsetInCU: 0xD6, offset: 0x9B401, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0x140, symBinAddr: 0x10D90, symSize: 0x20 }
- { offsetInCU: 0x10B, offset: 0x9B436, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASQWb', symObjAddr: 0x40, symBinAddr: 0x10C90, symSize: 0x10 }
- { offsetInCU: 0x11F, offset: 0x9B44A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOACSQAAWl', symObjAddr: 0x50, symBinAddr: 0x10CA0, symSize: 0x30 }
- { offsetInCU: 0x149, offset: 0x9B474, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwet', symObjAddr: 0x180, symBinAddr: 0x10DB0, symSize: 0x80 }
- { offsetInCU: 0x15D, offset: 0x9B488, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwst', symObjAddr: 0x200, symBinAddr: 0x10E30, symSize: 0xD0 }
- { offsetInCU: 0x171, offset: 0x9B49C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwug', symObjAddr: 0x2D0, symBinAddr: 0x10F00, symSize: 0x10 }
- { offsetInCU: 0x185, offset: 0x9B4B0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwup', symObjAddr: 0x2E0, symBinAddr: 0x10F10, symSize: 0x10 }
- { offsetInCU: 0x199, offset: 0x9B4C4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOwui', symObjAddr: 0x2F0, symBinAddr: 0x10F20, symSize: 0x10 }
- { offsetInCU: 0x1AD, offset: 0x9B4D8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOMa', symObjAddr: 0x300, symBinAddr: 0x10F30, symSize: 0xA }
- { offsetInCU: 0x1E8, offset: 0x9B513, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x30, symBinAddr: 0x10C80, symSize: 0x10 }
- { offsetInCU: 0x279, offset: 0x9B5A4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH9hashValueSivgTW', symObjAddr: 0x80, symBinAddr: 0x10CD0, symSize: 0x40 }
- { offsetInCU: 0x351, offset: 0x9B67C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xC0, symBinAddr: 0x10D10, symSize: 0x30 }
- { offsetInCU: 0x3CD, offset: 0x9B6F8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel6AnimalOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xF0, symBinAddr: 0x10D40, symSize: 0x40 }
- { offsetInCU: 0x97, offset: 0x9B898, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvg', symObjAddr: 0xA0, symBinAddr: 0x10FE0, symSize: 0x40 }
- { offsetInCU: 0xDE, offset: 0x9B8DF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvg', symObjAddr: 0x140, symBinAddr: 0x11080, symSize: 0x40 }
- { offsetInCU: 0xFB, offset: 0x9B8FC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg', symObjAddr: 0x1B0, symBinAddr: 0x110F0, symSize: 0x10 }
- { offsetInCU: 0x128, offset: 0x9B929, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfC', symObjAddr: 0x1C0, symBinAddr: 0x11100, symSize: 0x60 }
- { offsetInCU: 0x14D, offset: 0x9B94E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc', symObjAddr: 0x220, symBinAddr: 0x11160, symSize: 0x4F0 }
- { offsetInCU: 0x563, offset: 0x9BD64, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_', symObjAddr: 0x800, symBinAddr: 0x116A0, symSize: 0xB0 }
- { offsetInCU: 0x612, offset: 0x9BE13, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TQ0_', symObjAddr: 0x8B0, symBinAddr: 0x11750, symSize: 0x70 }
- { offsetInCU: 0x6A3, offset: 0x9BEA4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TY2_', symObjAddr: 0x920, symBinAddr: 0x117C0, symSize: 0x50 }
- { offsetInCU: 0x6E8, offset: 0x9BEE9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_', symObjAddr: 0x970, symBinAddr: 0x11810, symSize: 0xB0 }
- { offsetInCU: 0x797, offset: 0x9BF98, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TQ0_', symObjAddr: 0xA20, symBinAddr: 0x118C0, symSize: 0x70 }
- { offsetInCU: 0x828, offset: 0x9C029, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY1_', symObjAddr: 0xA90, symBinAddr: 0x11930, symSize: 0x30 }
- { offsetInCU: 0x882, offset: 0x9C083, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TY2_', symObjAddr: 0xAC0, symBinAddr: 0x11960, symSize: 0x50 }
- { offsetInCU: 0x8C7, offset: 0x9C0C8, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfC', symObjAddr: 0xB10, symBinAddr: 0x119B0, symSize: 0x60 }
- { offsetInCU: 0x8EC, offset: 0x9C0ED, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc', symObjAddr: 0xB70, symBinAddr: 0x11A10, symSize: 0x320 }
- { offsetInCU: 0xA27, offset: 0x9C228, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF', symObjAddr: 0xE90, symBinAddr: 0x11D30, symSize: 0xD0 }
- { offsetInCU: 0xB3B, offset: 0x9C33C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF', symObjAddr: 0xF60, symBinAddr: 0x11E00, symSize: 0xD0 }
- { offsetInCU: 0xC4F, offset: 0x9C450, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF', symObjAddr: 0x10F0, symBinAddr: 0x11F90, symSize: 0xD0 }
- { offsetInCU: 0xD63, offset: 0x9C564, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF', symObjAddr: 0x1220, symBinAddr: 0x120C0, symSize: 0xD0 }
- { offsetInCU: 0xE77, offset: 0x9C678, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF', symObjAddr: 0x12F0, symBinAddr: 0x12190, symSize: 0xD0 }
- { offsetInCU: 0xF8B, offset: 0x9C78C, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF', symObjAddr: 0x13C0, symBinAddr: 0x12260, symSize: 0xE0 }
- { offsetInCU: 0x109F, offset: 0x9C8A0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF', symObjAddr: 0x14A0, symBinAddr: 0x12340, symSize: 0xE0 }
- { offsetInCU: 0x11B3, offset: 0x9C9B4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF', symObjAddr: 0x1580, symBinAddr: 0x12420, symSize: 0xE0 }
- { offsetInCU: 0x12E5, offset: 0x9CAE6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC18notifyPieceRemoved33_4E9958627B7DCD90B6D32369387417C3LLyySi_SiAA0G0VtF', symObjAddr: 0x1660, symBinAddr: 0x12500, symSize: 0xC0 }
- { offsetInCU: 0x1497, offset: 0x9CC98, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF', symObjAddr: 0x1720, symBinAddr: 0x125C0, symSize: 0x60 }
- { offsetInCU: 0x1876, offset: 0x9D077, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY0_', symObjAddr: 0x1780, symBinAddr: 0x12620, symSize: 0xD90 }
- { offsetInCU: 0x25A8, offset: 0x9DDA9, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ1_', symObjAddr: 0x2510, symBinAddr: 0x133B0, symSize: 0x70 }
- { offsetInCU: 0x26D3, offset: 0x9DED4, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY2_', symObjAddr: 0x2580, symBinAddr: 0x13420, symSize: 0x280 }
- { offsetInCU: 0x29BD, offset: 0x9E1BE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTQ3_', symObjAddr: 0x2800, symBinAddr: 0x136A0, symSize: 0x80 }
- { offsetInCU: 0x2AAE, offset: 0x9E2AF, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY4_', symObjAddr: 0x2880, symBinAddr: 0x13720, symSize: 0x150 }
- { offsetInCU: 0x2BE9, offset: 0x9E3EA, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKFTY5_', symObjAddr: 0x29D0, symBinAddr: 0x13870, symSize: 0x70 }
- { offsetInCU: 0x2C97, offset: 0x9E498, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC6isOverSbvg', symObjAddr: 0x2A40, symBinAddr: 0x138E0, symSize: 0x30 }
- { offsetInCU: 0x2CB4, offset: 0x9E4B5, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKF', symObjAddr: 0x2A70, symBinAddr: 0x13910, symSize: 0x30 }
- { offsetInCU: 0x2D65, offset: 0x9E566, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY0_', symObjAddr: 0x2AA0, symBinAddr: 0x13940, symSize: 0x3D0 }
- { offsetInCU: 0x3221, offset: 0x9EA22, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ1_', symObjAddr: 0x2E70, symBinAddr: 0x13D10, symSize: 0x70 }
- { offsetInCU: 0x32B5, offset: 0x9EAB6, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY2_', symObjAddr: 0x2EE0, symBinAddr: 0x13D80, symSize: 0x270 }
- { offsetInCU: 0x350A, offset: 0x9ED0B, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTQ3_', symObjAddr: 0x3150, symBinAddr: 0x13FF0, symSize: 0x80 }
- { offsetInCU: 0x35AB, offset: 0x9EDAC, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY4_', symObjAddr: 0x31D0, symBinAddr: 0x14070, symSize: 0x140 }
- { offsetInCU: 0x3697, offset: 0x9EE98, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5startyyYaKFTY5_', symObjAddr: 0x3310, symBinAddr: 0x141B0, symSize: 0x70 }
- { offsetInCU: 0x36E6, offset: 0x9EEE7, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfd', symObjAddr: 0x3380, symBinAddr: 0x14220, symSize: 0x80 }
- { offsetInCU: 0x3713, offset: 0x9EF14, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCfD', symObjAddr: 0x3400, symBinAddr: 0x142A0, symSize: 0x20 }
- { offsetInCU: 0x3741, offset: 0x9EF42, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTK', symObjAddr: 0x0, symBinAddr: 0x10F40, symSize: 0x40 }
- { offsetInCU: 0x3777, offset: 0x9EF78, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5boardAA5BoardVvpACTk', symObjAddr: 0x40, symBinAddr: 0x10F80, symSize: 0x60 }
- { offsetInCU: 0x37AF, offset: 0x9EFB0, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC5rulesAA5Rules_pvpACTk', symObjAddr: 0xE0, symBinAddr: 0x11020, symSize: 0x60 }
- { offsetInCU: 0x37F2, offset: 0x9EFF3, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5Rules_pWOc', symObjAddr: 0x180, symBinAddr: 0x110C0, symSize: 0x30 }
- { offsetInCU: 0x3929, offset: 0x9F12A, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x770, symBinAddr: 0x11650, symSize: 0x30 }
- { offsetInCU: 0x393D, offset: 0x9F13E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCMa', symObjAddr: 0x7A0, symBinAddr: 0x11680, symSize: 0x20 }
- { offsetInCU: 0x3A4F, offset: 0x9F250, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TR', symObjAddr: 0x1030, symBinAddr: 0x11ED0, symSize: 0x70 }
- { offsetInCU: 0x3A89, offset: 0x9F28A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTQ0_', symObjAddr: 0x10A0, symBinAddr: 0x11F40, symSize: 0x50 }
- { offsetInCU: 0x3B46, offset: 0x9F347, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TR', symObjAddr: 0x11C0, symBinAddr: 0x12060, symSize: 0x60 }
- { offsetInCU: 0x3F7D, offset: 0x9F77E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU0_TA', symObjAddr: 0x3420, symBinAddr: 0x142C0, symSize: 0x60 }
- { offsetInCU: 0x3FAD, offset: 0x9F7AE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA', symObjAddr: 0x34A0, symBinAddr: 0x14340, symSize: 0x90 }
- { offsetInCU: 0x3FDD, offset: 0x9F7DE, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfcyAA4MoveVSg_AItYacfU_TA', symObjAddr: 0x3530, symBinAddr: 0x143D0, symSize: 0x60 }
- { offsetInCU: 0x400D, offset: 0x9F80E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4MoveVSgAA6PlayerCs5Error_pIegHngzo_AdFytsAG_pIegHnnrzo_TRTA.7', symObjAddr: 0x3590, symBinAddr: 0x14430, symSize: 0x90 }
- { offsetInCU: 0x4041, offset: 0x9F842, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVIegn_ACytIegnr_TRTA', symObjAddr: 0x3620, symBinAddr: 0x144C0, symSize: 0x20 }
- { offsetInCU: 0x4071, offset: 0x9F872, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6PlayerCs5Error_pIegHngzo_AcEytsAF_pIegHnnrzo_TRTA', symObjAddr: 0x3640, symBinAddr: 0x144E0, symSize: 0x90 }
- { offsetInCU: 0x40A1, offset: 0x9F8A2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTA', symObjAddr: 0x36D0, symBinAddr: 0x14570, symSize: 0x80 }
- { offsetInCU: 0x40D1, offset: 0x9F8D2, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel4GameCIegHg_ACytIegHnr_TRTATQ0_', symObjAddr: 0x3750, symBinAddr: 0x145F0, symSize: 0x50 }
- { offsetInCU: 0x4125, offset: 0x9F926, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA6ResultOAA6PlayerCSgIegnng_AceHytIegnnnr_TRTA', symObjAddr: 0x37A0, symBinAddr: 0x14640, symSize: 0x20 }
- { offsetInCU: 0x4159, offset: 0x9F95A, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCIegnng_AceGytIegnnnr_TRTA', symObjAddr: 0x37C0, symBinAddr: 0x14660, symSize: 0x20 }
- { offsetInCU: 0x418D, offset: 0x9F98E, size: 0x8, addend: 0x0, symName: '_$s14DouShouQiModel5BoardVAA4MoveVAA6PlayerCSbIegnngy_AceGSbytIegnnnnr_TRTA', symObjAddr: 0x37E0, symBinAddr: 0x14680, symSize: 0x20 }
- { offsetInCU: 0x41C1, offset: 0x9F9C2, size: 0x8, addend: 0x0, symName: '_$sS2i14DouShouQiModel5PieceVIegyyn_S2iACytIegnnnr_TRTA', symObjAddr: 0x3800, symBinAddr: 0x146A0, symSize: 0x20 }
- { offsetInCU: 0x41EA, offset: 0x9F9EB, size: 0x8, addend: 0x0, symName: ___swift_mutable_project_boxed_opaque_existential_1, symObjAddr: 0x3820, symBinAddr: 0x146C0, symSize: 0x30 }
- { offsetInCU: 0x41FE, offset: 0x9F9FF, size: 0x8, addend: 0x0, symName: ___swift_assign_boxed_opaque_existential_1, symObjAddr: 0x3BF0, symBinAddr: 0x14A90, symSize: 0x130 }
...

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

@ -7,8 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
643AB6932BFCEFD00018DA73 /* GameResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */; };
643AB69B2BFCFB5C0018DA73 /* HistoricView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */; };
6437FF132C25846F009D0EAF /* PlayingGameVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6437FF122C25846F009D0EAF /* PlayingGameVM.swift */; };
6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6458345B2BF5F92300E18321 /* DouShouQi_AppApp.swift */; };
6458345E2BF5F92300E18321 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6458345D2BF5F92300E18321 /* ContentView.swift */; };
645834602BF5F92500E18321 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6458345F2BF5F92500E18321 /* Assets.xcassets */; };
@ -16,28 +15,80 @@
6458346D2BF5F92600E18321 /* DouShouQi_AppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6458346C2BF5F92600E18321 /* DouShouQi_AppTests.swift */; };
645834772BF5F92600E18321 /* DouShouQi_AppUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645834762BF5F92600E18321 /* DouShouQi_AppUITests.swift */; };
645834792BF5F92600E18321 /* DouShouQi_AppUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645834782BF5F92600E18321 /* DouShouQi_AppUITestsLaunchTests.swift */; };
645834882BF5FEA000E18321 /* DSQ.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 645834872BF5FEA000E18321 /* DSQ.xcframework */; };
645834892BF5FEA000E18321 /* DSQ.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 645834872BF5FEA000E18321 /* DSQ.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
645B4C202BFCCA0500FD658A /* PlayerResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */; };
645B4C202BFCCA0500FD658A /* PlayerScoreResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C1F2BFCCA0500FD658A /* PlayerScoreResumeFrame.swift */; };
645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */; };
646F04BE2C0F54C0003C8600 /* SettingsVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646F04BD2C0F54C0003C8600 /* SettingsVM.swift */; };
646F04C12C0F5C11003C8600 /* Language.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646F04C02C0F5C11003C8600 /* Language.swift */; };
646FA83E2C072340001466BA /* GameVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646FA83D2C072340001466BA /* GameVM.swift */; };
646FA8432C0730D6001466BA /* HistoricVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646FA8422C0730D6001466BA /* HistoricVM.swift */; };
647D565C2BFD0212008D02EA /* PlayerResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647D565B2BFD0212008D02EA /* PlayerResumeFrame.swift */; };
6493C1C02C046BF900B5121D /* samurai.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6493C1BF2C046BF900B5121D /* samurai.ttf */; };
6493C1C22C046E5E00B5121D /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6493C1C12C046E5E00B5121D /* Fonts.swift */; };
649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */; };
649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */; };
649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */; };
649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59A62BF64BA9002BAE38 /* Colors.xcassets */; };
649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A82BF64C6A002BAE38 /* Colors.swift */; };
649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59AB2BF64E12002BAE38 /* Images.xcassets */; };
649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59AD2BF64EAB002BAE38 /* AppImages.swift */; };
649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B12BF65392002BAE38 /* TextStyles.swift */; };
649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */; };
EC62C4EF2BFE367F0048CD0B /* SwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4EE2BFE367F0048CD0B /* SwiftUIView.swift */; };
EC62C4F92C0371660048CD0B /* MusicPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4F82C0371660048CD0B /* MusicPlayer.swift */; };
64D2D74E2C25D380009BD010 /* Animals.Symbols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D2D74D2C25D380009BD010 /* Animals.Symbols.swift */; };
64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D992712C06281B002ACBC6 /* SystemIcons.swift */; };
64FC4D692C09C78000D08B8B /* SelectPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */; };
64FC4D6B2C09C7C900D08B8B /* SelectPlayerButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64FC4D6A2C09C7C900D08B8B /* SelectPlayerButtonView.swift */; };
EC0540C02C08A1040032E9EF /* HistoricView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0540BF2C08A1040032E9EF /* HistoricView.swift */; };
EC0540C42C08A13E0032E9EF /* GameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0540C32C08A13E0032E9EF /* GameView.swift */; };
EC0540C62C08A1F40032E9EF /* TopGameBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0540C52C08A1F40032E9EF /* TopGameBoard.swift */; };
EC0540CA2C08BD8D0032E9EF /* GameMusic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC0540C92C08BD8D0032E9EF /* GameMusic.mp3 */; };
EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */; };
EC05BFC82C04D832000F7B19 /* CustomSwitchButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */; };
EC05BFCB2C05F470000F7B19 /* GameScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFCA2C05F470000F7B19 /* GameScene.swift */; };
EC2DD03F2C0CDF0C00FC55C0 /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2DD03E2C0CDF0C00FC55C0 /* MainMenuView.swift */; };
EC2DD0412C1C203000FC55C0 /* ShowAllPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2DD0402C1C203000FC55C0 /* ShowAllPlayer.swift */; };
EC3EE4B12C0CD46000710153 /* ButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3EE4B02C0CD46000710153 /* ButtonView.swift */; };
EC3EE4B32C0CD47000710153 /* MainButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3EE4B22C0CD47000710153 /* MainButton.swift */; };
EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FA2C038BD20048CD0B /* PlayersView.swift */; };
EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */; };
EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */; };
EC62C5012C045B590048CD0B /* SoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5002C045B590048CD0B /* SoundPlayer.swift */; };
EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */; };
EC62C5092C0467240048CD0B /* SplashScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5082C0467240048CD0B /* SplashScreenView.swift */; };
EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */; };
EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */; };
EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C5162C0620C00048CD0B /* rap.mp3 */; };
EC62C51B2C09D1790048CD0B /* PlayerStatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C51A2C09D1790048CD0B /* PlayerStatView.swift */; };
EC62C5252C0F68830048CD0B /* PlayerVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5242C0F68830048CD0B /* PlayerVM.swift */; };
EC62C5292C1974000048CD0B /* PlayersVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5282C1974000048CD0B /* PlayersVM.swift */; };
EC62C52D2C197ED10048CD0B /* Player.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C52C2C197ED10048CD0B /* Player.swift */; };
EC62C5382C1C64EE0048CD0B /* CoreManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5372C1C64EE0048CD0B /* CoreManager.swift */; };
EC62C53D2C1C69200048CD0B /* DouShouQi_App.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = EC62C53B2C1C69200048CD0B /* DouShouQi_App.xcdatamodeld */; };
EC62C53F2C1C6D1A0048CD0B /* CDPlayerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C53E2C1C6D1A0048CD0B /* CDPlayerExtension.swift */; };
EC99D5C12C089F6B00731B62 /* GameResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC99D5C02C089F6B00731B62 /* GameResumeFrame.swift */; };
ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */; };
ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636502C046379007CD5E2 /* MusicPlayer.swift */; };
ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */; };
ECB636552C047992007CD5E2 /* Image.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ECB636542C047992007CD5E2 /* Image.xcassets */; };
ECCBA6B82C29BE1900D6D9FB /* ARKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCBA6B72C29BE1900D6D9FB /* ARKit.framework */; };
ECCBA6BA2C29BE2800D6D9FB /* RealityKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCBA6B92C29BE2800D6D9FB /* RealityKit.framework */; };
ECCBA6BD2C29BFF600D6D9FB /* ARBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCBA6BC2C29BFF600D6D9FB /* ARBoard.swift */; };
ECCBA6C32C29C25000D6D9FB /* ARKitUIViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCBA6C22C29C25000D6D9FB /* ARKitUIViewRepresentable.swift */; };
ECCBA6C52C29C2F500D6D9FB /* ARKitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCBA6C42C29C2F500D6D9FB /* ARKitView.swift */; };
ECE777142C2068F400D354B0 /* EditPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE777132C2068F400D354B0 /* EditPlayerView.swift */; };
ECF3FD312C2722C600F5E62B /* CDHistoriqueExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD302C2722C600F5E62B /* CDHistoriqueExtension.swift */; };
ECF3FD332C27238F00F5E62B /* Historique.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD322C27238F00F5E62B /* Historique.swift */; };
ECF3FD3A2C29A20D00F5E62B /* HistoricListVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD392C29A20D00F5E62B /* HistoricListVM.swift */; };
ECF3FD3D2C29B64100F5E62B /* ChronoVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD3C2C29B64100F5E62B /* ChronoVM.swift */; };
ECF9AD352C29D46A00238A06 /* Start.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD322C29D46A00238A06 /* Start.mp3 */; };
ECF9AD362C29D46A00238A06 /* Fight.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD332C29D46A00238A06 /* Fight.mp3 */; };
ECF9AD372C29D46A00238A06 /* SelectFighterSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD342C29D46A00238A06 /* SelectFighterSound.mp3 */; };
ECF9AD562C2A02BC00238A06 /* cat.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD4D2C2A02BC00238A06 /* cat.usdz */; };
ECF9AD572C2A02BC00238A06 /* dog.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD4E2C2A02BC00238A06 /* dog.usdz */; };
ECF9AD582C2A02BC00238A06 /* tiger.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD4F2C2A02BC00238A06 /* tiger.usdz */; };
ECF9AD592C2A02BC00238A06 /* wolf.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD502C2A02BC00238A06 /* wolf.usdz */; };
ECF9AD5A2C2A02BC00238A06 /* board.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD512C2A02BC00238A06 /* board.usdz */; };
ECF9AD5B2C2A02BC00238A06 /* elephant.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD522C2A02BC00238A06 /* elephant.usdz */; };
ECF9AD5C2C2A02BC00238A06 /* leopard.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD532C2A02BC00238A06 /* leopard.usdz */; };
ECF9AD5D2C2A02BC00238A06 /* lion.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD542C2A02BC00238A06 /* lion.usdz */; };
ECF9AD5E2C2A02BC00238A06 /* rat.usdz in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD552C2A02BC00238A06 /* rat.usdz */; };
ECF9AD642C2EE9BC00238A06 /* DSQ.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECF9AD632C2EE9BC00238A06 /* DSQ.xcframework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -57,23 +108,8 @@
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
6458348A2BF5FEA000E18321 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
645834892BF5FEA000E18321 /* DSQ.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameResumeFrame.swift; sourceTree = "<group>"; };
643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoricView.swift; sourceTree = "<group>"; };
6437FF122C25846F009D0EAF /* PlayingGameVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayingGameVM.swift; sourceTree = "<group>"; };
645834582BF5F92300E18321 /* DouShouQi_App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DouShouQi_App.app; sourceTree = BUILT_PRODUCTS_DIR; };
6458345B2BF5F92300E18321 /* DouShouQi_AppApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DouShouQi_AppApp.swift; sourceTree = "<group>"; };
6458345D2BF5F92300E18321 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
@ -85,27 +121,80 @@
645834762BF5F92600E18321 /* DouShouQi_AppUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DouShouQi_AppUITests.swift; sourceTree = "<group>"; };
645834782BF5F92600E18321 /* DouShouQi_AppUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DouShouQi_AppUITestsLaunchTests.swift; sourceTree = "<group>"; };
645834852BF5FE1400E18321 /* DouShouQi-App-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DouShouQi-App-Info.plist"; sourceTree = SOURCE_ROOT; };
645834872BF5FEA000E18321 /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = DSQ.xcframework; sourceTree = "<group>"; };
645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerResumeFrame.swift; sourceTree = "<group>"; };
645B4C1F2BFCCA0500FD658A /* PlayerScoreResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerScoreResumeFrame.swift; sourceTree = "<group>"; };
645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScoreBoardView.swift; sourceTree = "<group>"; };
646F04BD2C0F54C0003C8600 /* SettingsVM.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsVM.swift; sourceTree = "<group>"; };
646F04C02C0F5C11003C8600 /* Language.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Language.swift; sourceTree = "<group>"; };
646FA83D2C072340001466BA /* GameVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameVM.swift; sourceTree = "<group>"; };
646FA8422C0730D6001466BA /* HistoricVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoricVM.swift; sourceTree = "<group>"; };
647D565B2BFD0212008D02EA /* PlayerResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerResumeFrame.swift; sourceTree = "<group>"; };
6493C1BF2C046BF900B5121D /* samurai.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = samurai.ttf; sourceTree = "<group>"; };
6493C1C12C046E5E00B5121D /* Fonts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fonts.swift; sourceTree = "<group>"; };
649ABF5A2BF60D78002E8894 /* MainMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = "<group>"; };
649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuButton.swift; sourceTree = "<group>"; };
649B59A32BF64574002BAE38 /* TitlePageFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitlePageFrame.swift; sourceTree = "<group>"; };
649B59A62BF64BA9002BAE38 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = "<group>"; };
649B59A82BF64C6A002BAE38 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; };
649B59AB2BF64E12002BAE38 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
649B59AD2BF64EAB002BAE38 /* AppImages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppImages.swift; sourceTree = "<group>"; };
649B59B12BF65392002BAE38 /* TextStyles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextStyles.swift; sourceTree = "<group>"; };
649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewTitleTextStyle.swift; sourceTree = "<group>"; };
EC62C4EE2BFE367F0048CD0B /* SwiftUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIView.swift; sourceTree = "<group>"; };
EC62C4F82C0371660048CD0B /* MusicPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayer.swift; sourceTree = "<group>"; };
64D2D74D2C25D380009BD010 /* Animals.Symbols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Animals.Symbols.swift; sourceTree = "<group>"; };
64D992712C06281B002ACBC6 /* SystemIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemIcons.swift; sourceTree = "<group>"; };
64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectPlayerView.swift; sourceTree = "<group>"; };
64FC4D6A2C09C7C900D08B8B /* SelectPlayerButtonView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectPlayerButtonView.swift; sourceTree = "<group>"; };
EC0540BF2C08A1040032E9EF /* HistoricView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoricView.swift; sourceTree = "<group>"; };
EC0540C32C08A13E0032E9EF /* GameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameView.swift; sourceTree = "<group>"; };
EC0540C52C08A1F40032E9EF /* TopGameBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TopGameBoard.swift; sourceTree = "<group>"; };
EC0540C92C08BD8D0032E9EF /* GameMusic.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = GameMusic.mp3; sourceTree = "<group>"; };
EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSwitchButton.swift; sourceTree = "<group>"; };
EC05BFCA2C05F470000F7B19 /* GameScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameScene.swift; sourceTree = "<group>"; };
EC2DD03E2C0CDF0C00FC55C0 /* MainMenuView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = "<group>"; };
EC2DD0402C1C203000FC55C0 /* ShowAllPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowAllPlayer.swift; sourceTree = "<group>"; };
EC3EE4B02C0CD46000710153 /* ButtonView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonView.swift; sourceTree = "<group>"; };
EC3EE4B22C0CD47000710153 /* MainButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainButton.swift; sourceTree = "<group>"; };
EC62C4FA2C038BD20048CD0B /* PlayersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayersView.swift; sourceTree = "<group>"; };
EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRow.swift; sourceTree = "<group>"; };
EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenMusic.mp3; sourceTree = "<group>"; };
EC62C5002C045B590048CD0B /* SoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundPlayer.swift; sourceTree = "<group>"; };
EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenButtonSound.mp3; sourceTree = "<group>"; };
EC62C5082C0467240048CD0B /* SplashScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashScreenView.swift; sourceTree = "<group>"; };
EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = SplashScreenSound.mp3; sourceTree = "<group>"; };
EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddPlayerView.swift; sourceTree = "<group>"; };
EC62C5162C0620C00048CD0B /* rap.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = rap.mp3; sourceTree = "<group>"; };
EC62C51A2C09D1790048CD0B /* PlayerStatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerStatView.swift; sourceTree = "<group>"; };
EC62C5242C0F68830048CD0B /* PlayerVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerVM.swift; sourceTree = "<group>"; };
EC62C5282C1974000048CD0B /* PlayersVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayersVM.swift; sourceTree = "<group>"; };
EC62C52C2C197ED10048CD0B /* Player.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Player.swift; sourceTree = "<group>"; };
EC62C5372C1C64EE0048CD0B /* CoreManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreManager.swift; sourceTree = "<group>"; };
EC62C53C2C1C69200048CD0B /* DouShouQi_App.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DouShouQi_App.xcdatamodel; sourceTree = "<group>"; };
EC62C53E2C1C6D1A0048CD0B /* CDPlayerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDPlayerExtension.swift; sourceTree = "<group>"; };
EC99D5C02C089F6B00731B62 /* GameResumeFrame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameResumeFrame.swift; sourceTree = "<group>"; };
ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteMeeple.swift; sourceTree = "<group>"; };
ECB636502C046379007CD5E2 /* MusicPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayer.swift; sourceTree = "<group>"; };
ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundPlayer.swift; sourceTree = "<group>"; };
ECB636542C047992007CD5E2 /* Image.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Image.xcassets; sourceTree = "<group>"; };
ECCBA6B72C29BE1900D6D9FB /* ARKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARKit.framework; path = System/Library/Frameworks/ARKit.framework; sourceTree = SDKROOT; };
ECCBA6B92C29BE2800D6D9FB /* RealityKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RealityKit.framework; path = System/Library/Frameworks/RealityKit.framework; sourceTree = SDKROOT; };
ECCBA6BC2C29BFF600D6D9FB /* ARBoard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARBoard.swift; sourceTree = "<group>"; };
ECCBA6C22C29C25000D6D9FB /* ARKitUIViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARKitUIViewRepresentable.swift; sourceTree = "<group>"; };
ECCBA6C42C29C2F500D6D9FB /* ARKitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARKitView.swift; sourceTree = "<group>"; };
ECE777132C2068F400D354B0 /* EditPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditPlayerView.swift; sourceTree = "<group>"; };
ECF3FD302C2722C600F5E62B /* CDHistoriqueExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDHistoriqueExtension.swift; sourceTree = "<group>"; };
ECF3FD322C27238F00F5E62B /* Historique.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Historique.swift; sourceTree = "<group>"; };
ECF3FD392C29A20D00F5E62B /* HistoricListVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoricListVM.swift; sourceTree = "<group>"; };
ECF3FD3C2C29B64100F5E62B /* ChronoVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChronoVM.swift; sourceTree = "<group>"; };
ECF9AD322C29D46A00238A06 /* Start.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = Start.mp3; sourceTree = "<group>"; };
ECF9AD332C29D46A00238A06 /* Fight.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = Fight.mp3; sourceTree = "<group>"; };
ECF9AD342C29D46A00238A06 /* SelectFighterSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = SelectFighterSound.mp3; sourceTree = "<group>"; };
ECF9AD4D2C2A02BC00238A06 /* cat.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = cat.usdz; sourceTree = "<group>"; };
ECF9AD4E2C2A02BC00238A06 /* dog.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = dog.usdz; sourceTree = "<group>"; };
ECF9AD4F2C2A02BC00238A06 /* tiger.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = tiger.usdz; sourceTree = "<group>"; };
ECF9AD502C2A02BC00238A06 /* wolf.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = wolf.usdz; sourceTree = "<group>"; };
ECF9AD512C2A02BC00238A06 /* board.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = board.usdz; sourceTree = "<group>"; };
ECF9AD522C2A02BC00238A06 /* elephant.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = elephant.usdz; sourceTree = "<group>"; };
ECF9AD532C2A02BC00238A06 /* leopard.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = leopard.usdz; sourceTree = "<group>"; };
ECF9AD542C2A02BC00238A06 /* lion.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = lion.usdz; sourceTree = "<group>"; };
ECF9AD552C2A02BC00238A06 /* rat.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = rat.usdz; sourceTree = "<group>"; };
ECF9AD632C2EE9BC00238A06 /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = DSQ.xcframework; path = ../Dependencies/DSQ.xcframework; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -113,21 +202,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
645834882BF5FEA000E18321 /* DSQ.xcframework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
645834652BF5F92600E18321 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
6458346F2BF5F92600E18321 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
ECCBA6BA2C29BE2800D6D9FB /* RealityKit.framework in Frameworks */,
ECCBA6B82C29BE1900D6D9FB /* ARKit.framework in Frameworks */,
ECF9AD642C2EE9BC00238A06 /* DSQ.xcframework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -137,7 +214,8 @@
643AB6912BFCEFB70018DA73 /* Game */ = {
isa = PBXGroup;
children = (
643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */,
EC0540C52C08A1F40032E9EF /* TopGameBoard.swift */,
EC99D5C02C089F6B00731B62 /* GameResumeFrame.swift */,
);
path = Game;
sourceTree = "<group>";
@ -145,8 +223,8 @@
643AB6992BFCFB480018DA73 /* Game */ = {
isa = PBXGroup;
children = (
643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */,
EC62C4EE2BFE367F0048CD0B /* SwiftUIView.swift */,
EC0540C32C08A13E0032E9EF /* GameView.swift */,
EC0540BF2C08A1040032E9EF /* HistoricView.swift */,
);
path = Game;
sourceTree = "<group>";
@ -157,8 +235,7 @@
6458345A2BF5F92300E18321 /* DouShouQi_App */,
6458346B2BF5F92600E18321 /* DouShouQi_AppTests */,
645834752BF5F92600E18321 /* DouShouQi_AppUITests */,
645834592BF5F92300E18321 /* Products */,
645834862BF5FE9F00E18321 /* Frameworks */,
64C87E222C09D52600CCD451 /* Frameworks */,
);
sourceTree = "<group>";
};
@ -175,7 +252,10 @@
6458345A2BF5F92300E18321 /* DouShouQi_App */ = {
isa = PBXGroup;
children = (
EC62C5022C045BB90048CD0B /* SoundPlayerClass */,
ECCBA6BB2C29BE3C00D6D9FB /* ARViews */,
646F04BF2C0F5BD1003C8600 /* AppModelAndExtension */,
646FA83C2C072284001466BA /* ViewModel */,
ECB6364F2C04635D007CD5E2 /* SoundPlayerClass */,
649B59A52BF64B1B002BAE38 /* Assets */,
649ABF5E2BF60ED5002E8894 /* Components */,
649ABF592BF60D13002E8894 /* Views */,
@ -183,6 +263,7 @@
6458345B2BF5F92300E18321 /* DouShouQi_AppApp.swift */,
6458345D2BF5F92300E18321 /* ContentView.swift */,
6458345F2BF5F92500E18321 /* Assets.xcassets */,
EC62C53B2C1C69200048CD0B /* DouShouQi_App.xcdatamodeld */,
645834612BF5F92500E18321 /* Preview Content */,
);
path = DouShouQi_App;
@ -213,19 +294,16 @@
path = DouShouQi_AppUITests;
sourceTree = "<group>";
};
645834862BF5FE9F00E18321 /* Frameworks */ = {
isa = PBXGroup;
children = (
645834872BF5FEA000E18321 /* DSQ.xcframework */,
);
name = Frameworks;
sourceTree = "<group>";
};
645B4C1C2BFCC95000FD658A /* Player */ = {
isa = PBXGroup;
children = (
645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */,
64FC4D6A2C09C7C900D08B8B /* SelectPlayerButtonView.swift */,
645B4C1F2BFCCA0500FD658A /* PlayerScoreResumeFrame.swift */,
647D565B2BFD0212008D02EA /* PlayerResumeFrame.swift */,
EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */,
EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */,
EC2DD0402C1C203000FC55C0 /* ShowAllPlayer.swift */,
EC62C51A2C09D1790048CD0B /* PlayerStatView.swift */,
);
path = Player;
sourceTree = "<group>";
@ -233,16 +311,59 @@
645B4C232BFCD39A00FD658A /* Player */ = {
isa = PBXGroup;
children = (
64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */,
645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */,
EC62C4FA2C038BD20048CD0B /* PlayersView.swift */,
ECE777132C2068F400D354B0 /* EditPlayerView.swift */,
);
path = Player;
sourceTree = "<group>";
};
646F04BC2C0F5491003C8600 /* Settings */ = {
isa = PBXGroup;
children = (
646F04BD2C0F54C0003C8600 /* SettingsVM.swift */,
);
path = Settings;
sourceTree = "<group>";
};
646F04BF2C0F5BD1003C8600 /* AppModelAndExtension */ = {
isa = PBXGroup;
children = (
EC62C52B2C197EA80048CD0B /* Class */,
EC62C5232C0F68730048CD0B /* Extensions */,
646F04C02C0F5C11003C8600 /* Language.swift */,
);
path = AppModelAndExtension;
sourceTree = "<group>";
};
646FA83C2C072284001466BA /* ViewModel */ = {
isa = PBXGroup;
children = (
EC62C5262C11E24B0048CD0B /* Players */,
646F04BC2C0F5491003C8600 /* Settings */,
646FA83F2C0730B4001466BA /* Game */,
ECF3FD3C2C29B64100F5E62B /* ChronoVM.swift */,
);
path = ViewModel;
sourceTree = "<group>";
};
646FA83F2C0730B4001466BA /* Game */ = {
isa = PBXGroup;
children = (
ECF3FD3B2C29A21200F5E62B /* Historic */,
646FA83D2C072340001466BA /* GameVM.swift */,
6437FF122C25846F009D0EAF /* PlayingGameVM.swift */,
);
path = Game;
sourceTree = "<group>";
};
6493C1BE2C04650200B5121D /* Menu */ = {
isa = PBXGroup;
children = (
649ABF5A2BF60D78002E8894 /* MainMenuView.swift */,
EC2DD03E2C0CDF0C00FC55C0 /* MainMenuView.swift */,
EC62C5082C0467240048CD0B /* SplashScreenView.swift */,
EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */,
);
path = Menu;
sourceTree = "<group>";
@ -260,6 +381,10 @@
649ABF5E2BF60ED5002E8894 /* Components */ = {
isa = PBXGroup;
children = (
EC3EE4B22C0CD47000710153 /* MainButton.swift */,
EC3EE4B02C0CD46000710153 /* ButtonView.swift */,
EC05BFC92C05ECC6000F7B19 /* Scene */,
EC05BFC62C04D7C2000F7B19 /* Settings */,
643AB6912BFCEFB70018DA73 /* Game */,
645B4C1C2BFCC95000FD658A /* Player */,
649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */,
@ -271,6 +396,7 @@
649B59A52BF64B1B002BAE38 /* Assets */ = {
isa = PBXGroup;
children = (
ECF9AD3A2C2A025500238A06 /* AssetARkit */,
EC62C5042C045BE00048CD0B /* Musics */,
EC62C5032C045BD30048CD0B /* Sounds */,
649B59B02BF65360002BAE38 /* TextStyles */,
@ -283,8 +409,9 @@
649B59AA2BF64DF1002BAE38 /* Images */ = {
isa = PBXGroup;
children = (
649B59AB2BF64E12002BAE38 /* Images.xcassets */,
649B59AD2BF64EAB002BAE38 /* AppImages.swift */,
64D992712C06281B002ACBC6 /* SystemIcons.swift */,
ECB636542C047992007CD5E2 /* Image.xcassets */,
);
path = Images;
sourceTree = "<group>";
@ -309,18 +436,40 @@
path = TextStyles;
sourceTree = "<group>";
};
EC62C5022C045BB90048CD0B /* SoundPlayerClass */ = {
64C87E222C09D52600CCD451 /* Frameworks */ = {
isa = PBXGroup;
children = (
EC62C5002C045B590048CD0B /* SoundPlayer.swift */,
EC62C4F82C0371660048CD0B /* MusicPlayer.swift */,
ECF9AD632C2EE9BC00238A06 /* DSQ.xcframework */,
ECCBA6B92C29BE2800D6D9FB /* RealityKit.framework */,
ECCBA6B72C29BE1900D6D9FB /* ARKit.framework */,
);
path = SoundPlayerClass;
name = Frameworks;
sourceTree = "<group>";
};
EC05BFC62C04D7C2000F7B19 /* Settings */ = {
isa = PBXGroup;
children = (
EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */,
);
path = Settings;
sourceTree = "<group>";
};
EC05BFC92C05ECC6000F7B19 /* Scene */ = {
isa = PBXGroup;
children = (
ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */,
EC05BFCA2C05F470000F7B19 /* GameScene.swift */,
);
path = Scene;
sourceTree = "<group>";
};
EC62C5032C045BD30048CD0B /* Sounds */ = {
isa = PBXGroup;
children = (
ECF9AD332C29D46A00238A06 /* Fight.mp3 */,
ECF9AD342C29D46A00238A06 /* SelectFighterSound.mp3 */,
ECF9AD322C29D46A00238A06 /* Start.mp3 */,
EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */,
EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */,
);
path = Sounds;
@ -329,11 +478,95 @@
EC62C5042C045BE00048CD0B /* Musics */ = {
isa = PBXGroup;
children = (
EC0540C92C08BD8D0032E9EF /* GameMusic.mp3 */,
EC62C5162C0620C00048CD0B /* rap.mp3 */,
EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */,
);
path = Musics;
sourceTree = "<group>";
};
EC62C5232C0F68730048CD0B /* Extensions */ = {
isa = PBXGroup;
children = (
EC62C53E2C1C6D1A0048CD0B /* CDPlayerExtension.swift */,
ECF3FD302C2722C600F5E62B /* CDHistoriqueExtension.swift */,
64D2D74D2C25D380009BD010 /* Animals.Symbols.swift */,
);
path = Extensions;
sourceTree = "<group>";
};
EC62C5262C11E24B0048CD0B /* Players */ = {
isa = PBXGroup;
children = (
EC62C5242C0F68830048CD0B /* PlayerVM.swift */,
EC62C5282C1974000048CD0B /* PlayersVM.swift */,
);
path = Players;
sourceTree = "<group>";
tabWidth = 4;
};
EC62C52B2C197EA80048CD0B /* Class */ = {
isa = PBXGroup;
children = (
ECE7770E2C1C6FB200D354B0 /* CoreData */,
EC62C52C2C197ED10048CD0B /* Player.swift */,
ECF3FD322C27238F00F5E62B /* Historique.swift */,
);
path = Class;
sourceTree = "<group>";
};
ECB6364F2C04635D007CD5E2 /* SoundPlayerClass */ = {
isa = PBXGroup;
children = (
ECB636502C046379007CD5E2 /* MusicPlayer.swift */,
ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */,
);
path = SoundPlayerClass;
sourceTree = "<group>";
};
ECCBA6BB2C29BE3C00D6D9FB /* ARViews */ = {
isa = PBXGroup;
children = (
ECCBA6BC2C29BFF600D6D9FB /* ARBoard.swift */,
ECCBA6C22C29C25000D6D9FB /* ARKitUIViewRepresentable.swift */,
ECCBA6C42C29C2F500D6D9FB /* ARKitView.swift */,
);
path = ARViews;
sourceTree = "<group>";
};
ECE7770E2C1C6FB200D354B0 /* CoreData */ = {
isa = PBXGroup;
children = (
EC62C5372C1C64EE0048CD0B /* CoreManager.swift */,
);
path = CoreData;
sourceTree = "<group>";
};
ECF3FD3B2C29A21200F5E62B /* Historic */ = {
isa = PBXGroup;
children = (
646FA8422C0730D6001466BA /* HistoricVM.swift */,
ECF3FD392C29A20D00F5E62B /* HistoricListVM.swift */,
);
path = Historic;
sourceTree = "<group>";
};
ECF9AD3A2C2A025500238A06 /* AssetARkit */ = {
isa = PBXGroup;
children = (
ECF9AD512C2A02BC00238A06 /* board.usdz */,
ECF9AD4D2C2A02BC00238A06 /* cat.usdz */,
ECF9AD4E2C2A02BC00238A06 /* dog.usdz */,
ECF9AD522C2A02BC00238A06 /* elephant.usdz */,
ECF9AD532C2A02BC00238A06 /* leopard.usdz */,
ECF9AD542C2A02BC00238A06 /* lion.usdz */,
ECF9AD552C2A02BC00238A06 /* rat.usdz */,
ECF9AD4F2C2A02BC00238A06 /* tiger.usdz */,
ECF9AD502C2A02BC00238A06 /* wolf.usdz */,
);
path = AssetARkit;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -344,7 +577,6 @@
645834542BF5F92300E18321 /* Sources */,
645834552BF5F92300E18321 /* Frameworks */,
645834562BF5F92300E18321 /* Resources */,
6458348A2BF5FEA000E18321 /* Embed Frameworks */,
);
buildRules = (
);
@ -360,7 +592,6 @@
buildConfigurationList = 6458347F2BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppTests" */;
buildPhases = (
645834642BF5F92600E18321 /* Sources */,
645834652BF5F92600E18321 /* Frameworks */,
645834662BF5F92600E18321 /* Resources */,
);
buildRules = (
@ -378,7 +609,6 @@
buildConfigurationList = 645834822BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppUITests" */;
buildPhases = (
6458346E2BF5F92600E18321 /* Sources */,
6458346F2BF5F92600E18321 /* Frameworks */,
645834702BF5F92600E18321 /* Resources */,
);
buildRules = (
@ -439,13 +669,28 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EC0540CA2C08BD8D0032E9EF /* GameMusic.mp3 in Resources */,
649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */,
ECF9AD592C2A02BC00238A06 /* wolf.usdz in Resources */,
6493C1C02C046BF900B5121D /* samurai.ttf in Resources */,
EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */,
649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */,
ECF9AD352C29D46A00238A06 /* Start.mp3 in Resources */,
ECF9AD5A2C2A02BC00238A06 /* board.usdz in Resources */,
ECF9AD372C29D46A00238A06 /* SelectFighterSound.mp3 in Resources */,
EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */,
EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */,
ECF9AD362C29D46A00238A06 /* Fight.mp3 in Resources */,
ECF9AD582C2A02BC00238A06 /* tiger.usdz in Resources */,
645834632BF5F92500E18321 /* Preview Assets.xcassets in Resources */,
ECF9AD5B2C2A02BC00238A06 /* elephant.usdz in Resources */,
ECF9AD562C2A02BC00238A06 /* cat.usdz in Resources */,
ECF9AD5C2C2A02BC00238A06 /* leopard.usdz in Resources */,
645834602BF5F92500E18321 /* Assets.xcassets in Resources */,
ECB636552C047992007CD5E2 /* Image.xcassets in Resources */,
EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */,
ECF9AD572C2A02BC00238A06 /* dog.usdz in Resources */,
ECF9AD5D2C2A02BC00238A06 /* lion.usdz in Resources */,
ECF9AD5E2C2A02BC00238A06 /* rat.usdz in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -470,25 +715,63 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
643AB69B2BFCFB5C0018DA73 /* HistoricView.swift in Sources */,
6458345E2BF5F92300E18321 /* ContentView.swift in Sources */,
646FA83E2C072340001466BA /* GameVM.swift in Sources */,
649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */,
646FA8432C0730D6001466BA /* HistoricVM.swift in Sources */,
EC3EE4B12C0CD46000710153 /* ButtonView.swift in Sources */,
ECCBA6C52C29C2F500D6D9FB /* ARKitView.swift in Sources */,
649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */,
EC62C5012C045B590048CD0B /* SoundPlayer.swift in Sources */,
645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */,
649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */,
ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */,
EC0540C02C08A1040032E9EF /* HistoricView.swift in Sources */,
EC0540C62C08A1F40032E9EF /* TopGameBoard.swift in Sources */,
649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */,
EC99D5C12C089F6B00731B62 /* GameResumeFrame.swift in Sources */,
EC05BFCB2C05F470000F7B19 /* GameScene.swift in Sources */,
64D2D74E2C25D380009BD010 /* Animals.Symbols.swift in Sources */,
6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */,
ECCBA6BD2C29BFF600D6D9FB /* ARBoard.swift in Sources */,
ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */,
ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */,
649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */,
EC0540C42C08A13E0032E9EF /* GameView.swift in Sources */,
EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */,
ECF3FD312C2722C600F5E62B /* CDHistoriqueExtension.swift in Sources */,
ECF3FD3D2C29B64100F5E62B /* ChronoVM.swift in Sources */,
EC62C53D2C1C69200048CD0B /* DouShouQi_App.xcdatamodeld in Sources */,
EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */,
EC62C53F2C1C6D1A0048CD0B /* CDPlayerExtension.swift in Sources */,
64FC4D6B2C09C7C900D08B8B /* SelectPlayerButtonView.swift in Sources */,
646F04C12C0F5C11003C8600 /* Language.swift in Sources */,
EC05BFC82C04D832000F7B19 /* CustomSwitchButton.swift in Sources */,
64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */,
645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */,
649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */,
643AB6932BFCEFD00018DA73 /* GameResumeFrame.swift in Sources */,
EC62C4EF2BFE367F0048CD0B /* SwiftUIView.swift in Sources */,
ECE777142C2068F400D354B0 /* EditPlayerView.swift in Sources */,
EC62C5382C1C64EE0048CD0B /* CoreManager.swift in Sources */,
EC62C5252C0F68830048CD0B /* PlayerVM.swift in Sources */,
ECF3FD332C27238F00F5E62B /* Historique.swift in Sources */,
EC62C51B2C09D1790048CD0B /* PlayerStatView.swift in Sources */,
649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */,
EC62C4F92C0371660048CD0B /* MusicPlayer.swift in Sources */,
EC62C5092C0467240048CD0B /* SplashScreenView.swift in Sources */,
EC2DD03F2C0CDF0C00FC55C0 /* MainMenuView.swift in Sources */,
64FC4D692C09C78000D08B8B /* SelectPlayerView.swift in Sources */,
EC2DD0412C1C203000FC55C0 /* ShowAllPlayer.swift in Sources */,
EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */,
EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */,
6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */,
645B4C202BFCCA0500FD658A /* PlayerResumeFrame.swift in Sources */,
649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */,
645B4C202BFCCA0500FD658A /* PlayerScoreResumeFrame.swift in Sources */,
EC3EE4B32C0CD47000710153 /* MainButton.swift in Sources */,
647D565C2BFD0212008D02EA /* PlayerResumeFrame.swift in Sources */,
6493C1C22C046E5E00B5121D /* Fonts.swift in Sources */,
649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */,
646F04BE2C0F54C0003C8600 /* SettingsVM.swift in Sources */,
EC62C52D2C197ED10048CD0B /* Player.swift in Sources */,
EC62C5292C1974000048CD0B /* PlayersVM.swift in Sources */,
6437FF132C25846F009D0EAF /* PlayingGameVM.swift in Sources */,
ECF3FD3A2C29A20D00F5E62B /* HistoricListVM.swift in Sources */,
ECCBA6C32C29C25000D6D9FB /* ARKitUIViewRepresentable.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -644,12 +927,16 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"DouShouQi_App/Preview Content\"";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 67U885533Q;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "DouShouQi-App-Info.plist";
INFOPLIST_KEY_NSCameraUsageDescription = "";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@ -660,8 +947,10 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "fr.uca.iut.DouShouQi-App";
PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.DouShouQI;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tpiOS_2024_06_21_off;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@ -673,12 +962,16 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"DouShouQi_App/Preview Content\"";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 67U885533Q;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "DouShouQi-App-Info.plist";
INFOPLIST_KEY_NSCameraUsageDescription = "";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@ -689,8 +982,10 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "fr.uca.iut.DouShouQi-App";
PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.DouShouQI;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tpiOS_2024_06_21_off;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@ -779,7 +1074,7 @@
6458347B2BF5F92600E18321 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
defaultConfigurationName = Debug;
};
6458347C2BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_App" */ = {
isa = XCConfigurationList;
@ -788,7 +1083,7 @@
6458347E2BF5F92600E18321 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
defaultConfigurationName = Debug;
};
6458347F2BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppTests" */ = {
isa = XCConfigurationList;
@ -797,7 +1092,7 @@
645834812BF5F92600E18321 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
defaultConfigurationName = Debug;
};
645834822BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppUITests" */ = {
isa = XCConfigurationList;
@ -806,9 +1101,22 @@
645834842BF5F92600E18321 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
/* Begin XCVersionGroup section */
EC62C53B2C1C69200048CD0B /* DouShouQi_App.xcdatamodeld */ = {
isa = XCVersionGroup;
children = (
EC62C53C2C1C69200048CD0B /* DouShouQi_App.xcdatamodel */,
);
currentVersion = EC62C53C2C1C69200048CD0B /* DouShouQi_App.xcdatamodel */;
path = DouShouQi_App.xcdatamodeld;
sourceTree = "<group>";
versionGroupType = wrapper.xcdatamodel;
};
/* End XCVersionGroup section */
};
rootObject = 645834502BF5F92300E18321 /* Project object */;
}

@ -0,0 +1,22 @@
//
// ARBoard.swift
// DouShouQi_App
//
// Created by Nathan Verdier on 24/06/2024.
//
import RealityKit
class ARBoard: Entity {
required init(image: String) {
super.init()
if let boardEntity = try? Entity.loadModel(named: image) {
self.addChild(boardEntity)
}
}
@MainActor required init() {
fatalError("init() has not been implemented")
}
}

@ -0,0 +1,23 @@
//
// ARKitUIViewBoard.swift
// DouShouQi_App
//
// Created by etudiant on 24/06/2024.
//
import SwiftUI
import DouShouQiModel
import ARKit
import RealityKit
struct ARKitUIViewRepresentable: UIViewRepresentable {
var aRKitView: ARKitView
func makeUIView(context: Context) -> ARKitView {
return aRKitView
}
func updateUIView(_ uiView: ARKitView, context: Context) {}
}

@ -0,0 +1,44 @@
//
// ARKitViewRepresentable.swift
// DouShouQi_App
//
// Created by etudiant on 24/06/2024.
//
import SwiftUI
import ARKit
import RealityKit
import DouShouQiModel
class ARKitView: ARView {
@ObservedObject var playingGameVM: PlayingGameVM
required init(frame frameRect: CGRect) {
self.playingGameVM = PlayingGameVM(withRules: ClassicRules(), andPlayer1: HumanPlayer(withName: "Player 1", andId: .player1)!, andPlayer2: HumanPlayer(withName: "Player 2", andId: .player2)!)!
super.init(frame: frameRect)
}
@MainActor required init?(coder decoder: NSCoder) {
fatalError("init(coder:) not implemented")
}
convenience init(playingGameVM: PlayingGameVM, imageBoard: String = "board", cell_size: Float = 0.1145) {
self.init(frame: UIScreen.main.bounds)
self.playingGameVM = playingGameVM
initBoard(withBoard: playingGameVM.game.board, andImage: imageBoard)
}
func applyConfiguration() {
let conf = ARWorldTrackingConfiguration()
self.session.run(conf)
}
func initBoard(withBoard board: Board, andImage image: String) {
let anchor = AnchorEntity(.plane(.horizontal, classification: .any, minimumBounds: SIMD2<Float>(1, 1)))
let arBoard = ARBoard(image: image)
anchor.addChild(arBoard)
self.scene.addAnchor(anchor)
arBoard.setPosition(SIMD3(x: 0, y: 0, z: 0), relativeTo: anchor)
}
}

@ -0,0 +1,154 @@
//
// CoreManger.swift
// DouShouQi_App
//
// Created by étudiant on 14/06/2024.
//
import Foundation
import CoreData
import DouShouQiModel
import Combine
class CoreDataManager {
static let shared = CoreDataManager()
private init() {}
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "DouShouQi_App")
container.loadPersistentStores { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
}
return container
}()
var context: NSManagedObjectContext {
return persistentContainer.viewContext
}
func saveContext() {
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
func savePlayer(playerVM: PlayerVM) {
let player = CDPlayer(context: context)
player.name = playerVM.player.name
player.photo = playerVM.player.photo
saveContext()
}
func fetchPlayers() -> [CDPlayer] {
let fetchRequest: NSFetchRequest<CDPlayer> = CDPlayer.fetchRequest()
do {
return try context.fetch(fetchRequest)
} catch {
print("Failed to fetch players: \(error)")
return []
}
}
func deletePlayer(playerVM: PlayerVM) {
let fetchRequest: NSFetchRequest<CDPlayer> = CDPlayer.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "name == %@", playerVM.player.name)
do {
let players = try context.fetch(fetchRequest)
if let playerToDelete = players.first {
context.delete(playerToDelete)
saveContext()
} else {
print("Player not found")
}
} catch {
print("Failed to fetch player for deletion: \(error)")
}
}
func updatePlayer(playerVM: PlayerVM) {
let fetchRequest: NSFetchRequest<CDPlayer> = CDPlayer.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "name == %@", playerVM.player.name)
do {
let players = try context.fetch(fetchRequest)
if let playerToUpdate = players.first {
playerToUpdate.name = playerVM.player.name
playerToUpdate.photo = playerVM.player.photo
saveContext()
} else {
print("Player not found")
}
} catch {
print("Failed to fetch player for update: \(error)")
}
}
func saveHistorique(historique: HistoricVM) {
let historiqueEntity = CDHistorique(context: context)
historiqueEntity.player1_name = historique.historic.player1_name
historiqueEntity.player2_name = historique.historic.player2_name
historiqueEntity.time = historique.historic.time
historiqueEntity.result = historique.historic.result
saveContext()
}
func fetchHistoriques() -> [CDHistorique] {
let fetchRequest: NSFetchRequest<CDHistorique> = CDHistorique.fetchRequest()
do {
return try context.fetch(fetchRequest)
} catch {
print("Failed to fetch historiques: \(error)")
return []
}
}
func deleteHistorique(historique: Historique) {
let fetchRequest: NSFetchRequest<CDHistorique> = CDHistorique.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "player1_name == %@ AND player2_name == %@ AND time == %@", historique.player1_name, historique.player2_name, historique.time)
do {
let historiques = try context.fetch(fetchRequest)
if let historiqueToDelete = historiques.first {
context.delete(historiqueToDelete)
saveContext()
} else {
print("Historique not found")
}
} catch {
print("Failed to fetch historique for deletion: \(error)")
}
}
func countVictories(for player: String) -> Int {
let fetchRequest: NSFetchRequest<CDHistorique> = CDHistorique.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "(player1_name == %@ AND result == player1_name) OR (player2_name == %@ AND result == player2_name)", player, player)
do {
return try context.fetch(fetchRequest).count
} catch {
print("Failed to fetch victories for player: \(error)")
return 0
}
}
func countDefeats(for player: String) -> Int {
let fetchRequest: NSFetchRequest<CDHistorique> = CDHistorique.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "(player1_name == %@ AND result != player1_name) OR (player2_name == %@ AND result != player2_name)", player, player)
do {
return try context.fetch(fetchRequest).count
} catch {
print("Failed to fetch defeats for player: \(error)")
return 0
}
}
}

@ -0,0 +1,22 @@
//
// Historique.swift
// DouShouQi_App
//
// Created by étudiant on 22/06/2024.
//
import Foundation
public class Historique{
var player1_name: String
var player2_name: String
var time: String
var result: String
init(player1_name: String, player2_name: String, time: String, result: String){
self.player1_name = player1_name
self.player2_name = player2_name
self.result = result
self.time = time
}
}

@ -0,0 +1,19 @@
//
// Player.swift
// DouShouQi_App
//
// Created by étudiant on 12/06/2024.
//
import Foundation
public class Player{
var name: String
var photo: String = ""
init(name: String, photo: String) {
self.name = name
self.photo = photo
}
}

@ -0,0 +1,34 @@
//
// Animals.Symbols.swift
// DouShouQi_App
//
// Created by Rémi REGNAULT on 21/06/2024.
//
import Foundation
import DouShouQiModel
extension Animal {
public var symbol: String {
switch self{
case .rat:
return "🐭"
case .cat:
return "🐱"
case .dog:
return "🐶"
case .wolf:
return "🐺"
case .leopard:
return "🐆"
case .tiger:
return "🐯"
case .lion:
return "🦁"
case .elephant:
return "🐘"
@unknown default:
return "🐥"
}
}
}

@ -0,0 +1,28 @@
//
// CDHistoriqueExtension.swift
// DouShouQi_App
//
// Created by étudiant on 22/06/2024.
//
import Foundation
import CoreData
extension CDHistorique {
func toModel() -> Historique {
return Historique(
player1_name: self.player1_name ?? "",
player2_name: self.player2_name ?? "",
time: self.time ?? "",
result: self.result ?? ""
)
}
convenience init(player1_name: String, player2_name: String, time: String, result: String, context: NSManagedObjectContext) {
self.init(context: context)
self.player1_name = player1_name
self.player2_name = player2_name
self.time = time
self.result = result
}
}

@ -0,0 +1,22 @@
//
// CDPlayerExtension.swift
// DouShouQi_App
//
// Created by étudiant on 14/06/2024.
//
import Foundation
import CoreData
extension CDPlayer {
func toModel() -> Player {
return Player(name: self.name ?? "", photo: self.photo ?? "")
}
convenience init(name: String, photo: String, context: NSManagedObjectContext){
self.init(context: context)
self.name = name
self.photo = photo
}
}

@ -0,0 +1,32 @@
//
// Language.swift
// DouShouQi_App
//
// Created by Rémi REGNAULT on 04/06/2024.
//
import Foundation
public enum Language: String, Identifiable {
case french, english, spanish
public var id: String {
return self.rawValue
}
public var litteral: String {
switch self {
case .french:
return "Français"
case .english:
return "English"
case .spanish:
return "Español"
}
}
static var list: [Language] {
return [.french, .english, .spanish]
}
}

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "doushouqi-lion 1.png",
"filename" : "board.svg",
"idiom" : "universal",
"scale" : "1x"
},

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 112 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "title-background.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "Vs_Red.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@ -11,5 +11,9 @@ import SwiftUI
public struct Colors {
static let TitleText = Color("TitleTextColor")
static let Button = Color("ButtonColor")
static let MeepleP1 = UIColor(named: "MeepleP1")
static let TextButton = Color("ButtonTextColor")
static let PopupBackground = Color("PopUpBackground")
static let MeepleP2 = UIColor(named: "MeepleP2")
static let WinnerBackground = Color("WinnerBackground")
}

@ -23,9 +23,9 @@
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "1.000",
"green" : "1.000",
"red" : "1.000"
"blue" : "0.000",
"green" : "0.000",
"red" : "0.000"
}
},
"idiom" : "universal"

@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.765",
"green" : "0.855",
"red" : "0.000"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.765",
"green" : "0.855",
"red" : "0.000"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

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

Loading…
Cancel
Save