Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なめらかなシステムの実現に向けて/coherently-fittable-system
Search
monochromegane
July 28, 2020
Technology
0
570
なめらかなシステムの実現に向けて/coherently-fittable-system
GMO Developers Day 2020
https://www.gmo.jp/developersday/
monochromegane
July 28, 2020
Tweet
Share
More Decks by monochromegane
See All by monochromegane
ベクトル検索システムの気持ち
monochromegane
29
8.6k
Go言語での実装を通して学ぶ、高速なベクトル検索を支えるクラスタリング技術/fukuokago-kmeans
monochromegane
1
150
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
220
多様かつ継続的に変化する環境に適応する情報システム/thesis-defense-presentation
monochromegane
1
810
Online Nonstationary and Nonlinear Bandits with Recursive Weighted Gaussian Process
monochromegane
0
480
AIを前提とした体験の実現に向けて/toward_ai_based_experiences
monochromegane
2
840
Go言語でMac GPUプログラミング
monochromegane
1
550
Contextual and Nonstationary Multi-armed Bandits Using the Linear Gaussian State Space Model for the Meta-Recommender System
monochromegane
1
990
迅速な学習機構を用いて逐次適応性を損なうことなく非線形性を扱う文脈付き多腕バンディット手法/extreme_neural_linear_bandits
monochromegane
0
2.2k
Other Decks in Technology
See All in Technology
30代エンジニアが考える、エンジニア生存戦略~~セキュリティを添えて~~
masakiokuda
4
2k
バクラクでのSystem Risk Records導入による変化と改善の取り組み/Changes and Improvement Initiatives Resulting from the Implementation of System Risk Records
taddy_919
0
200
DevOps文化を育むQA 〜カルチャーバブルを生み出す戦略〜 / 20250317 Atsushi Funahashi
shift_evolve
1
100
「エンジニアマネージャー」の役割を担っている / 担ってみたい方へのキャリアパスガイド
coconala_engineer
1
240
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
2
210
fukuoka.ts #3 社内でESLintの共通設定を配りたい2025年春版
pirosikick
1
290
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
860
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
110
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
290
Why Go?
xpmatteo
0
130
チームの性質によって変わる ADR との向き合い方と、生成 AI 時代のこれから / How to deal with ADR depends on the characteristics of the team
mh4gf
4
320
みんなで育てるNewsPicksのSLO
troter
4
1.1k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
The Pragmatic Product Professional
lauravandoore
33
6.5k
Building Adaptive Systems
keathley
40
2.5k
Agile that works and the tools we love
rasmusluckow
328
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Site-Speed That Sticks
csswizardry
4
450
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Side Projects
sachag
452
42k
Transcript
ࡾ༔հ / Pepabo R&D Institute, GMO Pepabo, Inc. 2020.07.28 GMO
Developers Day ͳΊΒ͔ͳγεςϜͷ ࣮ݱʹ͚ͯ
1SJODJQBMFOHJOFFS :VTVLF.*:",&!NPOPDISPNFHBOF 1FQBCP3%*OTUJUVUF (.01FQBCP *OD IUUQTCMPHNPOPDISPNFHBOFDPN
1. ͡Ίʹ 2. ͳΊΒ͔ͳγεςϜ 3. ͳΊΒ͔ͳγεςϜͷ࣮ݱʹ͚ͯ 4. ·ͱΊ 3 ࣍
1. ͡Ίʹ
5 ϖύϘݚڀॴ(ུশʮϖύݚʯ)ɺࣄۀΛࠩผԽ Ͱ͖Δٕज़Λ࡞Γग़ͨ͢ΊʹʮͳΊΒ͔ͳγες Ϝʯͱ͍͏ίϯηϓτͷԼͰݚڀ։ൃʹऔΓΉ ৫Ͱ͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/
6 ΞΧσϛοΫͳਫ४ʹ͓͚Δ৽نੑɾ༗ޮੑɾ৴ པੑΛٻ͢ΔݚڀΛߦ͏ͱͱʹɺݚڀ։ൃ͠ ٕͨज़Λ࣮ࡍͷγεςϜͱ࣮ͯ͠ɾఏڙ͢Δ͜ ͱΛ௨ͯ͠ɺࣄۀͷʹߩݙ͠·͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/
7 ϖύݚͱαʔϏεͷؔ ࣄۀΛࠩผԽ͢ΔͨΊʹɺݚڀॴͱαʔϏεͷ࿈ܞ͕ॏཁ ݚڀ ։ൃ ӡ༻ αʔϏεͷ՝ͷڞ༗ ݚڀʹΑΔ՝ղܾ ݚڀՌಋೖ࣌ͷ αʔϏεͱͷ࿈ܞ
ݚڀ։ൃ݁ՌΛଈ࣌αʔϏεʹಋೖ͢ΔΈͱɺಋೖޙͷϑΟʔυόοΫʹΑΔαΠΫϧͷߴ ԽʹΑͬͯɺݚڀ։ൃͷߴԽͱࣄۀͷࠩผԽʹͭͳ͛Δ ࣄۀ෦
2. ͳΊΒ͔ͳγεςϜ
9 ϖύϘݚڀॴ(ུশʮϖύݚʯ)ɺࣄۀΛࠩผԽ Ͱ͖Δٕज़Λ࡞Γग़ͨ͢ΊʹʮͳΊΒ͔ͳγες Ϝʯͱ͍͏ίϯηϓτͷԼͰݚڀ։ൃʹऔΓΉ ৫Ͱ͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/
• զʑ͕ৗͰ৮ΕΔγεςϜɺར༻ӡ༻ʹ͓͚Δ༷ʑͳোนʢΰπΰπʣ ʹຬͪ͋;Ε͍ͯΔɻ • → ྫʣར༻ऀͷ໌ࣔతͳࢦࣔɺӡ༻ऀͷஅߋ৽ͷհࡏ 10 എܠ • ͜ΕΒͷোนΛऔΓআ͖ɺར༻ӡ༻ͷշద͞ͷ্ʹͭͳ͛ΔͨΊʹɺར༻
ऀͷίϯςΩετʹج͖ͮ࠷దʹৼΔ͏ʮͳΊΒ͔ͳγεςϜʯΛ࣮ݱ͢ Δɻ
• ʮͳΊΒ͔ͳγεςϜʯͱɺใγεςϜͷ͜ͱΛ͍͏ͷΈͳΒͣɺޓ͍ʹ ӨڹΛٴ΅͠߹͏ܧଓతͳؔʹ͋Δར༻ऀʢϢʔβʔ͓Αͼ։ൃӡ༻ऀʣͱ ใγεςϜͱ͔ΒͳΔ૯ମͱͯ͠ͷγεςϜ 11 ͳΊΒ͔ͳγεςϜ <>܀ྛ݈ଠ ࡾ༔հ দຊ྄հ ͳΊΒ͔ͳγεςϜΛࢦͯ͠
ϚϧνϝσΟΞɺࢄɺڠௐͱϞόΠϧʢ%*$0.0ʣγϯϙδϜ # +VM < ><> < >υϛχΫɾνΣϯ(SBQIJDTGPS'VOEBNFOUBM*OGPSNBUJDTΛվมͯ͠࡞
1. ར༻ऀͱใγεςϜͱ͕ܧଓతͳؔΛऔΓ࣋ͭաఔʹ͓͍ͯɺར༻ऀͦ ΕͧΕʹݻ༗ͷίϯςΩετΛݟग़ͨ͠Γɺ৽ͨͳίϯςΩετΛग़ͨ͠ ΓͰ͖Δ͜ͱ 2. ཁ݅1.Λɺར༻ऀʹΑΔ໌ࣔతͳૢ࡞Λ՝͢͜ͱͳ࣮͘ݱͰ͖Δ͜ͱ 3. ཁ݅1.͓Αͼ2.ʹΑͬͯಘΒΕͨίϯςΩετʹج͖ͮɺใγεςϜ͕ར ༻ऀʹରͯ͠࠷దͳαʔϏεΛࣗಈతʹఏڙͰ͖Δ͜ͱ 12
ͳΊΒ͔ͳγεςϜͷཁ݅ • ࣗಈ͔ͭܧଓతʹར༻ऀͷঢ়گΛѲ͠ɺదԠతʹৼΔ͏ใγεςϜ
• ͳΊΒ͔ͳγεςϜΛ࣮ݱ͢ΔͨΊɺ༷ʑͳαʔϏεɺϨΠϠʹ͓͍ͯҎԼͷ ςʔϚͷͱɺݚڀ։ൃΛਐΊ͍ͯΔ[*] • FastContainer: ԠతͰঢ়ଶมԽͷૉૣ͍γεςϜج൫ٕज़ • ΦʔτεέʔϦϯά: ଟڥͰͷӡ༻ੑΛߟྀͨࣗ͠దԠܕ੍ޚܥ •
ͳΊΒ͔ͳϚονϯά: จ຺ʹԠͨ͡ਪનख๏ͷ࠷దԽ • ߦಈݕ: ଟ໘తͳಛྔʹجͮ͘ਫ਼៛ͳߦಈੳ • ͳΊΒ͔ͳηΩϡϦςΟ: ಁաతͳηΩϡϦςΟ্Λ࣮ݱ͢Δ։ൃख๏ 13 ͳΊΒ͔ͳγεςϜʹ͚ͯ < >ϖύϘݚڀॴݚڀ։ൃՌIUUQTSBOEQFQBCPDPNBSDIJWF
3. ͳΊΒ͔ͳγεςϜͷ࣮ݱʹ͚ͯ
ݚڀίϯηϓτ - ใγεςϜͷࣗదԠ -
• ଟ༷͔ͭܧଓతʹมԽ͢ΔڥͷதͰɺใγεςϜ͕ܧଓతʹػೳ͢Δʹ ɺͦͷߏϩδοΫΛߋ৽͠มԽʹै͢Δඞཁ͕͋Δ • → ྫʣใγεςϜͷෛՙঢ়گɺར༻ऀͷߦಈͷมԽ • ͜Ε·Ͱɺ͜ͷैɺӡ༻ҡ࣋ۀͱͯ͠ӡ༻ऀ͕୲͖ͬͯͨ 16 ใγεςϜͱڥมԽ
• ଟ༷͔ͭܧଓతʹมԽ͢ΔڥͷதͰɺใγεςϜ͕ܧଓతʹػೳ͢Δʹ ɺͦͷߏϩδοΫΛߋ৽͠มԽʹै͢Δඞཁ͕͋Δ • → ྫʣใγεςϜͷෛՙঢ়گɺར༻ऀͷߦಈͷมԽ • ͜Ε·Ͱɺ͜ͷैɺӡ༻ҡ࣋ۀͱͯ͠ӡ༻ऀ͕୲͖ͬͯͨ 17 ใγεςϜͱڥมԽ
• ਓखʹΑΔڥͷมԽݕใγεςϜͷߋ৽ɺैͷ࣌ؒࠩΛ͏ • ݁Ռͱͯ͠ɺ҆ఆੑར༻ऀͷຬͷԼɺӡ༻ऀͷෛ୲ͷ૿ՃΛট͘
• ैདྷͷӡ༻ҡ࣋ͷऔΓΈͰɺใγεςϜΛڥͷมԽʹରԠͤ͞Δͨ ΊɺਓʹΑΔܦݧଇஅͱ෦తͳࣗಈԽʹཹ·͍ͬͯΔ • → ྫʣܦݧଇʹΑΔᮢઃఆɺԽͨ͠ར༻ऀͷߦಈୡʹΑΔஅ 18 ڥมԽʹࣗΒదԠ͢ΔใγεςϜʹ͚ͯ • ਓʹΑΔஅߋ৽ͷఔΛࣗಈԽ͠ɺใγεςϜࣗମ͕ڥมԽΛଊ͑ม
Խʹै͢ΔదԠతͳΈͷݚڀ • ͳΒͼʹ࣮ӡ༻ͷద༻ ݚڀίϯηϓτ
ΦʔτεέʔϦϯάख๏
• ใγεςϜͷӡ༻ʹ͓͍ͯɺॲཧੑೳΛอͪͭͭඞཁ࠷খݶͷαʔόΛ༻͍ Δ͜ͱͰӡ༻ίετΛ੍ޚ͢Δ͜ͱॏཁ • มಈ͢Δαʔόधཁʹै͢ΔͨΊΦʔτεέʔϦϯάػೳΛಋೖ 20 എܠ • ॲཧੑೳΛอͭඞཁ࠷খݶͷαʔόܦݧͱಓͳνϡʔχϯάͰݸผʹ ٻΊΔ͕ɺใγεςϜͷมߋཧରͷ૿Ճʹै͍ࠔʹͳΔ
• ·ͨɺͷࢉग़ʹΦʔτεέʔϦϯάͷ࣮ߦ࣌ͷ࣌ؒࠩͷߟྀඞཁ ӡ༻্ͷ՝
• ܧଓతʹมߋ͞Ε͏ΔෳͷใγεςϜʹରͯ͠ɺΕߟྀͨ͠Φʔτε έʔϦϯάͷ࠷దͳ݅Λܧଓͯ͠ٻΊΔ͜ͱ͕ӡ༻ͷෛ୲ • ใγεςϜΛߏ͢ΔαʔόͷॲཧੑೳΛࣗಈͰѲ͠ɺใγεςϜͷॲ ཧੑೳΛอͭඞཁ࠷খݶ͔ͭΕΛߟྀͨ͠αʔόΛࢉग़͍ͨ͠ • αʔόͷॲཧੑೳΛ࣮ߦ࣌ʹࣗಈ͔ͭܧଓతʹਪఆ͠ɺΦʔτεέʔϦϯάͷ Εߟྀͨ͠࠷దͳαʔόΛࢉग़͢Δ੍ޚܥ 21
ݚڀͷతͱఏҊͷࠎࢠ
• ଟڥͰͷӡ༻ੑΛߟྀͨࣗ͠దԠܕΦʔτεέʔϦϯά੍ޚܥ[2] 22 ఏҊख๏ (Kaburaya AutoScaler) <>ࡾ༔հ ܀ྛ݈ଠ ,BCVSBZB"VUP4DBMFSଟڥͰͷӡ༻ੑΛߟྀͨࣗ͠దԠܕΦʔτεέʔϦϯά੍ޚܥ Πϯλʔωο
τͱӡ༻ٕज़γϯϙδϜจू QQ /PW
• ଟڥͰͷӡ༻ੑΛߟྀͨࣗ͠దԠܕΦʔτεέʔϦϯά੍ޚܥ • M: αʔόॲཧੑೳΛɺ୯Ґ࣌ؒ͋ͨΓͷॲཧͷ্ݶ͔ΒٻΊΔ • D: ༧ΊఆΊͨΕظؒʹର͠ɺݱࡏͷཁٻॲཧͱαʔόॲཧੑೳ͔Βෆ ͢Δͱߟ͑ΒΕΔະॲཧཁٻΛٻΊΔ •
F: ݱࡏͷॲཧཁٻʹະॲཧཁٻΛՃ͑ɺαʔόॲཧੑೳ͔Βඞཁͳ αʔόΛࢉग़ 23 ఏҊख๏ (Kaburaya AutoScaler)
24 ఏҊख๏ͷධՁʢγϛϡϨʔγϣϯʣ αʔόੑೳʢॲཧ্ݶʣͷਪఆධՁ ෛՙ࣌Ұ࣌తʹαʔό͋ͨΓͷෛՙ͕ߴ·Δෛ ՙ૿Ճ࣌Ͱ҆ఆͯ͠ਪఆʢ࣮ઢʣɻ αʔόͷैੑධՁ ੨ઢͷཧαʔόʹैɻΕΛߟྀ͠ɺఆ͞ ΕΔະॲཧͷཁٻΛॲཧՄೳͳαʔόΛೖɻ ະॲཧཁٻͷղফ݁ՌͷධՁ ΕʹΑΓੵ࣮ͨ͠ઢͷະॲཧཁٻΛଈ࣌ղফɻ
ഁઢΕରࡦΛ͠ͳ͍߹ͷਪҠɻ
ਪનγεςϜ
26 എܠ • ใγεςϜʹ͓͚ΔใաଟΛղܾ͢ΔɺਪનγεςϜͷಋೖ • → ͳΜΒ͔ͷํࡦʢ= ਪનख๏ʣʹج͖ͮଟͷબࢶ͔Βར༻ऀ͕ڵຯ Λ࣋ͭͷΛఏҊ͢ΔγεςϜ •
ӡ༻ऀʹͱͬͯɺޮՌతͳʮਪનख๏ʯͷબ͕ॏཁ • ޮՌతͳਪનख๏ঢ়گʹΑͬͯҟͳΔ • ͔͠͠ͳ͕Βɺ࣮ڥͰͷܧଓతͳਪનख๏ͷධՁʹػձଛࣦ͕͏ ӡ༻্ͷ՝
• ਪનख๏ͷ༏ྼଟ͘ͷཁҼ͔ΒͳΔঢ়گʢ=จ຺ʣʹΑͬͯࠨӈ͞ΕΔ • ޮՌతͳਪનख๏Λػձଛࣦ͕ͳ͍Α͏ʹจ຺ʹԠ͍͚͍ͯͨ͡ • ࣄલʹఆΊͨจ຺͝ͱʹਪનख๏ͷબΛࣗಈ͔ͭܧଓతʹ࠷దԽ͢Δ ϝλਪનγεςϜ • → ࠷ળͳਪનख๏ͷબΛଟόϯσΟοτͱΈͳͯ͠ղ͘
27 ݚڀͷతͱఏҊͷࠎࢠ
• ʮʯͱݺΕΔෳͷީิ͔ΒಘΒΕΔใुΛ࠷େԽ͢Δ • ϓϨΠϠʔҰͷࢼߦͰ1ͭͷΛબ͠ɺใुΛಘΔ • ͦΕͧΕͷ͋Δใुʹै͍ใुΛੜ • ͨͩ͠ɺϓϨΠϠʔ͜ͷใुΛࢼߦͷ݁Ռ͔Βਪଌ͢Δඞཁ͕͋Δ 28 ଟόϯσΟοτ
• ϓϨΠϠʔ͋Δ࣌ͷͷධՁʹج͖ͮʮ׆༻ʯͱʮ୳ࡧʯΛฒߦͯ͠ߦ͏ • ͜ͷτϨʔυΦϑΛղফ͢ΔͨΊʹ༷ʑͳղ๏͕ఏҊ͞Ε͍ͯΔ
ଟόϯσΟοτͱͷใुͷ֬ 29 Arm0 Arm1 Arm2 User(s) System ਪఆͨ֬͠ ਅͷ֬ Recommend
Click
• จ຺͝ͱʹਪનख๏ͷબΛࣗಈ͔ͭܧଓతʹ࠷దԽ͢ΔϝλਪનγεςϜ[3] • จ຺͝ͱͷ࠷ળͳબΛɺઢܗͳଟόϯσΟοτͷղ๏Ͱ͋Δ Linear Thompson SamplingΛ༻͍ͯղ͘ • จ຺ͱͯ͠ɺᶃใγεςϜͷ࣌ؒͷܦաɺᶄਪનରͷಛੑͷࠩҟΛ ѻ͏
• จ຺͝ͱʹબͨ͠ਪનख๏ͱ͜Εʹର͢Δར༻ऀͷԠΛه͠ɺબ ͷվળʹ༻͍Δ 30 ఏҊγεςϜ (Synapse) <>ࡾ༔հ ็߃ݑ 4ZOBQTFจ຺ʹԠͯ͡ܧଓతʹਪનख๏ͷબΛ࠷దԽ͢ΔਪનγεςϜ ిࢠใ௨৴ֶձจࢽ% 7PM+% /P QQ /PW UPBQQFBS
31 ఏҊγεςϜ (Synapse)
• ࣮αʔϏεͷӡ༻σʔλΛ༻͍ͨγϛϡϨʔγϣϯʹ͓͍ͯɺจ຺Λߟྀ͠ͳ ͍ͷͱൺֱͯ͠ɺྦྷੵΫϦοΫ͕2%্͢Δ͜ͱΛ֬ೝ[3] • ֘γεςϜ࣮αʔϏεͰՔಇɾܧଓతʹධՁத • ࠓޙɺऔΓѻ͑Δจ຺ɺਪનख๏Λ͍͛ͯ͘[4][5] • ߹ΘͤͯɺڥมԽͷैੑΛ্͍ͤͯ͘͞[6] 32
ఏҊγεςϜͷධՁ <>ࡒେՆɼࡾ༔հɼ&$αΠτʹ͓͚ΔӾཡཤྺΛ༻͍ͨߪങʹܨ͕ΔߦಈͷมԽݕग़ɼݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ *05 ɼ WPM*05ɼQQrɼ <>ଜ໋ɼࡾ༔հɼϋϯυϝΠυ࡞Λରͱͨ͠&$αΠτʹ͓͚Δ୯ޠͷग़ݱසΛ༻͍ͨك᧵ͷݕग़ɼݚڀใࠂΠϯλʔ ωοτͱӡ༻ٕज़ *05 ɼWPM*05ɼQQrɼ <>ࡾ༔հɼ܀ྛ݈ଠɼඇఆৗͳଟόϯσΟοτʹ͓͚ΔมԽݕग़ΞϓϩʔνͷઢܗϞσϧͷ֦ுɼݚڀใࠂΠϯλʔωο τͱӡ༻ٕज़ *05 ɼWPM*05ɼQQrɼ+VMZ
4. ·ͱΊ
• ར༻ऀͷίϯςΩετʹج͖ͮ࠷దʹৼΔ͏ʮͳΊΒ͔ͳγεςϜʯΛհ ͨ͠ • ͜ͷ࣮ݱʹ͚ͨݚڀࣄྫͱͯ͠ɺଟڥͰͷӡ༻ੑΛߟྀͨ͠Φʔτεέʔ Ϧϯά੍ޚܥΛհͨ͠ • ݚڀͳΒͼʹαʔϏεͷಋೖࣄྫͱͯ͠ɺจ຺ʹԠͨ͡ਪનख๏ͷ࠷దԽΛ ߦ͏ਪનγεςϜΛհͨ͠ •
ࠓޙɺ͜ΕΒΛؚΊͨݚڀ։ൃͷҰͷൃలΛ௨ͯ͠ʮͳΊΒ͔ͳγες ϜʯΛ࣮ݱ͍ͯ͘͠ 34 ·ͱΊ
ݚڀһɺੵۃతʹืूதʂ https://rand.pepabo.com/
ิࢿྉ
• ͝ͱʹෳͷจ຺͕͋Γɺจ຺ʹԠͯ͡ใु͕ܾ·ΔଟόϯσΟοτ ͷઃఆ • ຊݚڀใࠂͰɺจ຺ɺෳͷཁҼͷύϥϝʔλͷΈ߹ΘͤͰදݱ͞ Εͨঢ়ଶͷ͜ͱΛࢦ͢ • → ཁҼύϥϝʔλͷ͕{0,1}ͷ߹ɺจ຺ཁҼ ʹରͯ͠
ύλʔϯ d 2d 37 ઢܗͳଟόϯσΟοτ • ઢܗͳଟόϯσΟοτͷղ๏Ͱɺจ຺ͷ֬Ͱͳ͘ɺཁҼ͝ͱ ͷʢઢܗύϥϝʔλʣΛਪఆ͢Δ͜ͱͰ֤จ຺ʹ͓͚ΔใुΛ༧͢Δ
ઢܗͳଟόϯσΟοτ 38 Arm0 Arm1 Arm2 User(s) System ਪఆͨ֬͠ ਅͷ֬ Recommend
Click Context = 0 Context = 0
ઢܗͳଟόϯσΟοτ 39 Arm0 Arm1 Arm2 User(s) System ਪఆͨ֬͠ ਅͷ֬ Recommend
Click Context = 1 Context = 1