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
Signed HTTP Exchanges (SXG)とはなにか/SXG Explained
Search
Shigeki Ohtsu
May 28, 2019
Technology
10
3.5k
Signed HTTP Exchanges (SXG)とはなにか/SXG Explained
Signed HTTP Exchange Study
https://web-study.connpass.com/event/128480/
の発表資料です。
Shigeki Ohtsu
May 28, 2019
Tweet
Share
More Decks by Shigeki Ohtsu
See All by Shigeki Ohtsu
Privacy Sandboxとはなにか/Privacy Sandbox Explained
shigeki
5
1.8k
内定者向け黒帯トーク#4/Kuroobi-Talk for fresh persons #4
shigeki
3
2k
Webプロトコル最前線
shigeki
0
490
運用の観点から見たTLSプロトコルの動き
shigeki
0
1.5k
祝Node-v10リリース これまでのNodeの振り返り
shigeki
7
3.6k
運用の観点から見たTLSプロトコルの動き
shigeki
14
3.8k
IETF QUICに至るプロトコルの透過性問題とその対策
shigeki
3
1.2k
QUIC WG報告
shigeki
4
1.2k
Nodeへの コード貢献の仕方
shigeki
11
5.3k
Other Decks in Technology
See All in Technology
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
190
7月のガバクラ利用料が高かったので調べてみた
techniczna
3
750
JavaScript 研修
recruitengineers
PRO
5
1.2k
異業種出身エンジニアが気づいた、転向して十数年経っても変わらない自分の武器とは
macnekoayu
0
220
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
PRO
6
150
Jaws-ug名古屋_LT資料_20250829
azoo2024
3
180
つくって納得、つかって実感! 大規模言語モデルことはじめ
recruitengineers
PRO
29
10k
事業価値と Engineering
recruitengineers
PRO
6
4.6k
AIとTDDによるNext.js「隙間ツール」開発の実践
makotot
6
780
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
30k
浸透しなさいRFC 5322&7208
hinono
0
130
AIエージェント就活入門 - MCPが履歴書になる未来
eltociear
0
660
Featured
See All Featured
Embracing the Ebb and Flow
colly
87
4.8k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Balancing Empowerment & Direction
lara
3
600
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Transcript
4JHOFE)551&YDIBOHFT 49( ͱͳʹ͔ 49(ͷΈ͔Β".1࿈ܞͷಋೖ·Ͱ େൟथ 49(4UVEZ ݄̑̎̔
༰ 49(ͷ͘͠Έ 49(".1γεςϜࣄྫ BNQQBDLBHFSʹ͍ͭͯ 49(ಋೖৼΓฦΓ
49(ͷ͘͠Έ
ɿԿ͕ҧ͏ʁ 4JHOFE)551&YDIBOHFT 4JHOFE&YDIBOHF 49(
ղ 4JHOFE)551&YDIBOHFT༷ͷਖ਼໊ࣜশ 4JHOFE&YDIBOHF͍ͯ͠Δ࣌ΈΜͳ͍ͬͯΔݴ༿ 49(ɿ֦ுࢠུ͘͠শදه
Ͳ͕ͬͪ49( " #
ղ " # 49( ".1
Ͳ͕ͬͪ49( " #
ղ " # 49( )5514
)5514ͱ49(ͷҧ͍ )5514 49( %JTUSJCVUPS 1VCMJTIFS ௨৴ΛकΔ ίϯςϯπΛकΔ ηΩϡΞνϟωϧ FYBNQMFDPN FYBNQMFDPN
QVCMJTIFSͷPSJHJOͰදࣔ ॺ໊ ॺ໊
)5514ͱ49(ͷҧ͍ )5514 49( ػີੑ 㾎 /" શੑ 㾎 㾎 ೝূ
㾎 㾎 ൱ೝࢭ /" 㾎 0SJHJO ଓઌ 1VCMJTIFS อޢ͍ͯ͠Δ࣌ؒ ௨৴͍ͯ͠Δؒ ඦϛϦඵఔ ॺ໊ͷ༗ޮظؒ ࠷େ̓ؒ )551ͷ੍ݶ /" ΩϟογϡՄೳͳίϯςϯπݶఆ (&5ݶఆɺېࢭϔομ༗
49(ͷΓऔΓํ๏छ 4BNF0SJHJO DSPTTPSJHJO 4FSWFS1VTI BQQMJDBUJPO TJHOFEFYDIBOHF ϑΥʔϚοτ 1VTI 1SPNJTF DSPTTPSJHJO
4FSWFS1VTI "DDFQUBQQMJDBUJPOTJHOFEFYDIBOHFWC 4JHOBUVSF 4JHOFE)FBEFST 49(ϑΝΠϧ &/"#-&@$3044@ 03*(*/@164) &/"#-&@$3044@ 03*(*/@164) ࠓͷ
දతͳ49(ͷϢʔεέʔε ΦϑϥΠϯ ΦϯϥΠϯ දྫ49(".1 49( $FSU 1VCMJTIFS %JTUSJCVUPS )551ϦΫΤετ )551Ϩεϙϯε
)551ϦΫΤετ )551Ϩεϙϯε ύοΫͯ͠ॺ໊ ॺ໊ݕূͯ͠࠶ੜ 49(ϑΝΠϧ
49(".1γʔέϯεਤ ݕࡧαʔϏε ".1$BDIF 0SJHJO 6" 4FBSDI 4&31 1SFGFUDI 49( (&5
$FSU$IBJO 0$41 49( $FSU$IBJO 0$41 -PDBM$BDIF 7FSJGZ OBWJHBUJPO -PDBM$BDIF ".1࠷దԽ 5SBOTGPNFS 0SJHJOʹΞΫηε͠ͳ͍ ͜ͱͰ1SJWBDZΛอޢ "DDFQUBQQMJDBUJPOTJHOFEFYDIBOHFWC ".1$BDIF5SBOTGPSNHPPHMFW 7BSZ".1$BDIF5SBOTGPSN #PUΫϩʔϧ (&5 #PUΫϩʔϧ DFSUVSMॻ͖͑ JOEFYԽ %JTUSJCVUPS 1VCMJTIFS
ݕࡧ݁Ռ 4&31 ͔Β 49(Λ1SFGFUDI
49(7FSJGZͷঢ়گ EFWUPPM্ωοτϫʔΫύωϧͷ1SFWJFXͰ֬ೝͰ͖·͢
49(ͷঢ়گ w $ISPNF.ΑΓEFGBVMUͰFOBCMF όʔδϣϯC w J04൛ඇରԠɻݱঢ়ϞόΠϧڥͰ49(͕͑Δͷ "OESPJE$ISPNFͷΈ w .BD04൛*&&EHF
$ISPNJVNϕʔε Ͱ49(ಈ࡞֬ೝࡁ w (PPHMF4FBSDIͰ݄த०ΑΓ49(".1Λਖ਼ࣜରԠ w $MPVEqBSF49(ػೳఏڙ։࢝ (6*ϕʔε w ඪ४Խʜ·ͩΘ͔Γ·ͤΜɻ%*41"5$)&4$"1& 8PSLTIPQ
8FC1BDLBHJOH༷֓ཁ ESBGUZBTTLJOIUUQPSJHJO TJHOFESFTQPOTF ESBGUJFUGIUUQCJT IFBEFSTUSVDUVSF ESBGUUIPNTPO IUUQNJD ESBGUZBTTLJOXQBDL CVOEMFEFYDIBOHFT -PBEJOH4JHOFE
&YDIBOHFT 8)"58( 'FUDI #VOEMF 49( 'FUDIʹର͢Δ ϞϯΩʔύον )551ϘσΟͷ )BTI%JHFTU ΑΓѻ͍͍͢)551 ϔομͷهड़ॻࣜ 8FC1BDLBHJOH༷ 3'$ $#03 #JOBSZ+40/ͷ γϦΞϥΠζ C݄࣌ IUUQTHJUIVCDPN8*$(XFCQBDLBHF
.FSLMF*OUFHSJUZ$POUFOU&ODPEJOH )BTI "cc1SPPG#ccY " # $ " # $ )5513FTQPOTF#PEZ
ST SFDPSETJ[F ST " 1SPPG# # 1SPPG$ $ .*$& %JHFTUNJTIB'037ʜ )BTI #cc1SPPG$ccY )BTI $ccY 1SPPG$ 1SPPG# )551Ϩεϙϯεϔομ ϔομใͰ#PEZͷ શੑΛνΣοΫ 49(༷ͰSFDPSETJ[F,#ҎԼʹ੍ݶ
49(ϑΝΠϧͷத C sxg1-b3 ϚδοΫ fallbackURL 49(ݕূ͕ࣦഊͨ͠߹ʹΞ Ϋηε͢Δ63- signature ॺ໊σʔλ signedHeaders
)551Ϩεϙϯεϔομ $#03ܗࣜ payload body )551ϨεϙϯεͷϘσΟ .*$&ܗࣜ sig ॺ໊ integrity )551ϨεϙϯεϘσΟͷϋογϡΞϧΰϦ ζϜ validity-url ৽͍͠ॺ໊σʔλΛऔಘ63- ݱࡏະ࣮ cert-url ূ໌ॻσʔλͷ63- ॺ໊ର֎ cert-sh256 ূ໌ॻσʔλͷϋογϡ ed25519key ॺ໊ݕূ͢Δެ։ݤ ݱࡏະ࣮ date ॺ໊ͨ࣌ؒ͠ expire ॺ໊ͷ༗ޮظݶ ࠷େؒ sxg1-b3 (8) fallbackUrl length (2) fallbackURL sigLength (3) headerLength (3) signature signedHeaders payload body
49(Ͱॺ໊͍ͯ͠Δσʔλ Y Y YY )551&YDIBOHF Y DFSUTIB
WBMJEJUZVSMMFO WBMJEJUZVSM EBUF FYQJSFT SFRVFTU6SMMFO SFRVFTU6SM SFTQPOTF)FBEFSTMFO SFTQPOTF)FBEFST C͔ΒSFRVFTUϔομআ֎ w 49(ূ໌ॻͷൿີ伴ΛͬͯFDETBXJUI4)" TFDQS Ͱॺ໊ w 49(ূ໌ॻͷެ։伴Λͬͯॺ໊Λ7FSJGZ w ॺ໊ͷ7FSJGZ͕ޭͯ͠ϨεϙϯεϘσΟͷ.*$&νΣοΫ͕Ͱ͖ͨΒ49(͕WBMJE
49(ͷத $#03 .*$& ॺ໊
49(ͷத
$FSU$IBJO $#03ͷத $#03ܗࣜ ݱࡏͷ࣌ࠁ Ͱ༗ޮʁ 49(֦ு༗ $5 ϩά༗ʁ Ҏɺݱࡏ༗ޮʁʁ SPPU$"·Ͱ
ॺ໊ݕূ 6 '%$4DSPMM 6 %⛓$IBJOT
49(ېࢭ)551ϔομ $POOFDUJPO ,FFQ"MJWF 1SPYZ$POOFDUJPO 5SBJMFS 5SBOTGFS&ODPEJOH 6QHSBEF "VUIFOUJDBUJPO$POUSPM "VUIFOUJDBUJPO*OGP $MFBS4JUF%BUB
0QUJPOBM888"VUIFOUJDBUF 1SPYZ"VUIFOUJDBUF 1SPYZ"VUIFOUJDBUF*OGP 1VCMJD,FZ1JOT 4FD8FC4PDLFU"DDFQU 4FU$PPLJF 4FU$PPLJF 4FU1SPpMF 4USJDU5SBOTQPSU4FDVSJUZ 888"VUIFOUJDBUF )PQCZ)PQϨεϙϯεϔομ 4UBUFGVMϨεϙϯεϔομ 49(Խ͢Δ".1αʔό͔ΒͷϨεϙϯεʹ্هϔομ͕ೖ͍ͬͯͳ͍͔ҙ͢Δ BNQQLHͰ&SSPS0O4UBUFGVM)FBEFSTͷઃఆͰ੍ޚͰ͖·͢ɻ
BNQQBDLBHFS ʹ͍ͭͯ HJUIVCDPNBNQQSPKFDUBNQQBDLBHFS SFMFBTFCSBODI1SPEVDUJPO༻ϒϥϯν NBTUFSCSBODI։ൃϒϥϯν
BNQQBDLBHFSఏڙίϚϯυ w DNEBNQQLHBNQQLHຊମ w DNEBNQQLH@EM@TYH49(ͱূ໌ॻΛμϯϩʔυ w DNEBNQQLH@UFTU@DBDIF49(Λఏڙ͢Δ؆қΩϟογϡαʔό w DNEHBUFXBZ@TFSWFSH31$Ͱ49(Λੜ͢ΔήʔτΣΠαʔό w
DNEUSBOTGPSN".1࠷దԽΛߦ͏ίϚϯυ
BNQQLHUPNM NBTUFS 1PSU -JTUFOϙʔτ EFGBVMU -PDBM0OMZ MPDBMIPTUͰ-JTUFO͢Δ͜ͱΛڧ੍ EFGBVMUGBMTF $FSU'JMF 49(ূ໌ॻͷϑΝΠϧ
αʔόূ໌ॻ தؒূ໌ॻ 1&.ܗࣜ ,FZ'JMF 49(ূ໌ॻͷൿີ伴ϑΝΠϧ 1&.ܗࣜ 0$41$BDIF 0$41σʔλͷΩϟογϡϑΝΠϧͷύε 'PSXBSEFE3FRVFTU)FBEFS GFUDI͢Δࡍʹసૹ͢ΔϦΫΤετϔομ <<63-4FU>> <63-4FU4JHO> ॺ໊༻ͷઃఆ ඞਢ %PNBJO ॺ໊͢ΔυϝΠϯ 1BUI3& ॺ໊ΛڐՄ͢Δ1BUI EFGBVMU 1BUI&YDMVEF3& ॺ໊ΛڐՄ͠ͳ͍1BUI 2VFSZ3& ॺ໊ΛڐՄ͢Δ2VFSZύϥϝʔλ EFGBVMU &SSPS0O4UBUFGVM)FBEFS TUBUFGVMϔομ͕͋ͬͨΒQSPYZͤ͞Δ͔আ͢Δ͔ .BY-FOHUI 63-ͷ࠷େ EFGBVMU <63-4FU'FUDI> ".1ίϯςϯπΛ'FUDI͢Δઃఆ Φϓγϣϯ 4DIFNF GFUDIΛڐՄ͢ΔTDIFNB EFGBVMUIUUQT 4BNF1BUI ॺ໊ͱಉ͡QBUIͰGFUDI͢Δ͜ͱΛڧ੍ͤ͞Δ %PNBJO3& GFUDIΛڐՄ͢ΔυϝΠϯͷύλʔϯ %PNBJO GFUDI͢ΔυϝΠϯ 1BUI3& GFUDIΛڐՄ͢Δ1"5) EFGBVMU 2VFSZ3& GFUDIΛڐՄ͢Δ2VFSZύϥϝʔλ EFGBVMU
BNQQLH DPOpH DPOpHϑΝΠϧͷࢦఆ EFWFMPQFNFOU w $BO4JHO)551&YDIBOHF֦ு͕ͳ͍ূ໌ॻͷར༻ΛڐՄ͢Δ w MPDBMIPTUѼͷ63-͚ͩڐՄ w ".1$BDIF5SBOTGPSN"DDFQUϔομඞཁͳ͍
JOWBMJEDFSU $BO4JHO)551&YDIBOHF֦ு͕ͳ͍ূ໌ॻͷར༻ΛڐՄ͢Δ ϩάඪ४ग़ྗͷΈ ίϚϯυϥΠϯϑϥά
BNQQLHͷϦΫΤετ QSJWEPDIUUQTFYBNQMFDPNBNQ QSJWEPD GFUDIIUUQ"''JOUFSOBMDPN'BNQTJHOIUUQT"''FYBNQMFDPN'BNQ QSJWEPD TJHOIUUQT"''FYBNQMFDPN'BNQ IUUQTFYBNQMFDPNBNQ BNQQLH BNQQLH BNQQLH
IUUQTFYBNQMFDPNBNQ IUUQJOUFSOBMDPNBNQ ॺ໊υϝΠϯͱ'FUDIઌ͕ಉҰ ॺ໊υϝΠϯͱ'FUDIઌ͕ҟͳΔ BNQQLHલஈͰ5-4ऴΛͯ͠ɺ֎෦͔ΒQSJWEPDʹଓͤ͞ͳ͍͜ͱ 5 - 4 ऴ ɾ 1 B U I ม ߋ IUUQTFYBNQMFDPNBNQ IUUQTFYBNQMFDPNBNQQLH 49(ূ໌ॻཁٻϦΫΤετ BNQQLH 49(ཁٻϦΫΤετ
5SBOTGPSNFS w ͜Ε·Ͱ".1$BDIFͰ(PPHMF͕".1࠷దԽॲཧΛߦͬͯ ͖ͨ ".1ͷSVOUJNFWBMVFͷೖΕࠐΈJOMJOFԽFUD w 49(Ͱॺ໊ͨ͠ޙͰ࠷దԽ͕ෆՄೳɻ49(Խͷલʹ Δඞཁ͕͋Δɻ w
5SBOTGPSNFSͷࢦఆΛ".1$BDIF5SBOTGPSNFSϔομͰ ωΰγΤʔγϣϯ͢ΔɻόʔδϣϯिؒͰ্͕Δ༧ఆ w ".1$BDIF5SBOTGPSNHPPHMFW w ".1$BDIF5SBOTGPSNBOZ #PU IUUQTHJUIVCDPNBNQQSPKFDUBNQIUNMCMPCNBTUFSTQFDBNQDBDIFUSBOTGPSNNE 7BSZ".1$BDIF5SBOTGPSN ".1$BDIF5SBOTGPSNHPPHMFW IUUQTHJUIVCDPNBNQQSPKFDUBNQIUNMCMPCNBTUFSTQFDBNQDBDIFNPEJpDBUJPOTNE
49(ূ໌ॻ w 49(ΛαʔϏεͰఏڙ͢ΔͨΊʹඞཁෆՄܽ w ௨ৗͷ&$$ূ໌ॻ TFDQ ʹ49(֦ு͕͍ͨͷ w ௨ৗͷ)5514αʔό༻్ͷূ໌ॻʹ͏͜ͱېࢭ w
ݱࡏ%JHJDFSUࣾͷΈൃߦ w ݄ΑΓ w ূ໌ॻͷ༗ޮظݶΛʹ੍ݶ w %/4$""ϨίʔυొΛඞਢԽ 49(֦ு
$""ಋೖͷࡍͷҙࣄ߲ w $/".&͚͍ͯΔϨίʔυʹଞϨίʔυ͚Εͳ͍ w $/".&ઌͷ$""Λݟʹߦ͕͘$/".&ͷυϝΠϯΛḷΒͳ͍ 3'$&SSBUB w $/".&ઌͷ$""͕ͳ͚ΕυϝΠϯͷ$""Λࢀর͠ʹߦ͘ɻ FYBNQMFDPN$""JTTVFEJHJDFSUDPNDBOTJHOIUUQFYDIBOHFTZFT
)5514ͱ49(ͷηΩϡϦςΟͷҧ͍ ൿີ伴͕࿙Ӯͨ͠߹ ΦϑϥΠϯڥ POQBUI %/4Λม͑Εͳ͔ͬͨ Β.*5.͔͠ͳ͍ ωοτϫʔΫڥ ͍Βͳ͍ ෆਖ਼49( )5514
49( վ͟Μ ౪ௌ ͳΓ͢·͠ վ͟Μ ͳΓ͢·͠ P⒎QBUI $""Ͱূ໌ॻͷෆਖ਼ൃߦɾޡൃߦΛ͗ ظؒ ͷ49(ূ໌ॻͰةຆԽ࣌ͷϦεΫΛݮ ࿙Ӯ
49(".1 γεςϜࣄྫ
".149(γεςϜ֓ཁ ݕࡧαʔϏε ".1Ωϟογϡ 49( ݕࡧ 1SFGFUDI 0$4αʔό ".1$%/ ".1αʔό BNQQLH
49(3PVUFS )55141SPYZ
)55141SPYZ w Πϯλʔωοτ͔Βͷ)5514ଓͷऴ w Ωϟογϡػೳ w ෦αʔϏεͷৼΓ͚ BNQ".1αʔϏε BNQQLH 49(ূ໌ॻऔಘ
$SBXMFSCPU BNQ BNQQLH ".1͚ϦΫΤετ ".1Ҏ֎ϦΫΤετ 49(3PVUFS ".1Ҏ֎ͷαʔϏε
49(3PVUFS w $SBXMFSʹ49(ରԠͰ͋Δ͜ͱΛΒͤΔ 7BSZ".1 $BDIF5SBOTGPSN w 49(औಘϦΫΤετ ".1$BDIF5SBOTGPSN HPPHMFW
͕དྷͨΒBNQQLʹ;Δɻ w ϦΫΤετΛBNQQLH༻ͷRVFSZQBSBNFUFSʹมߋ )55141SPYZ 49(3PVUFS BNQQLH ".1αʔό
BNQQLH w ".1ίϯςϯπ͔Β49(Λੜ͠ఏڙ͢Δ ࠷େ.# w ΫϥΠΞϯτͷ࣌ؒͣΕΛߟྀͯ͠ॺ໊ظؒ̍લ͔Β̒ޙ w 49(ੜ࣌ʹ".1࠷దԽ 5SBOTGPSN
Λߦ͏ w 49(ূ໌ॻͱ0$41Λ·ͱΊͨσʔλ DFSU DCPS Λੜ͠ɺఏڙ ͢Δ w ύϒϦοΫΩϟογϡʹద͞ͳ͍ϔομͷνΣοΫআΛߦ͏ w TUBUVT$PEFҎ֎جຊεϧʔ QSPYZ IUUQTHJUIVCDPNBNQQSPKFDUBNQQBDLBHFS BNQQLH ".1$%/ 0$41αʔό 49(3PVUFS ".1αʔό ".1$BDIF5SBOTGPSN ͖ϦΫΤετ 49(ূ໌ॻऔಘϦΫΤετ $44 357 ࣦޮใ )551ϦΫΤετ )551Ϩεϙϯε ".1ίϯςϯπ
49(ಋೖৼΓฦΓ
49(".1γεςϜಋೖɺৼΓฦΓ طଘΠϯϑϥͷӨڹΛ࠷খݶʹͯ͠ɺಋೖ͕Մೳͩͬ ͨɻ ϢʔβͷϦΫΤετͷӨڹΛ͋·Γؾʹͤͣʹ͢ Μͩ ओཁϦΫΤετ͕#PUͷΫϩʔϦϯάͰ͋ͬͨͨΊ
ࣄલʹ4UBHJOHڥͰͷςετ͕ݶఆతͩͬͨɻ#PUΫ ϩʔϧ".1ΩϟογϡԽͷࢼݧϦϦʔεޙʹ͔͠Ͱ ͖ͳ͍ɻ
49(".1γεςϜಋೖʹؔ ͢Δҙࣄ߲ w ΩϟογϡՄೳͳίϯςϯπ͔ʁ 49(ېࢭϔομ w ݸਓใηΩϡϦςΟใ͕ೖ͍ͬͯͳ͍͔ʁ w 4BNF0SJHJOʹͳͬͨΒΤϥʔʹͳΒͳ͍͔ʁ
FH".1 JGSBNF w 4PGU OPUGPVOEΛͰฦ͢ ͱ͔͍ͯ͠ͳ͍͔ʁ
·ͱΊ PSJHJOΛೖΕସ͑Δ4JHOFE)551&YDIBOHFTɺ͜Ε·Ͱ ͷ8FCϓϩτίϧͷ֓೦Λࠜຊతʹม͑Δٕज़Ͱ͢ɻ ͜ͷٕज़ʹΑͬͯ1VCMJTIFS%JTUSJCVUPSͦΕͧΕͷ͕ؔ কདྷେ͖͘มΘΔՄೳੑ͕͋Γ·͢ɻ ࠓޙɺ49(͕ఱͱͳΔͷ͔ɺͦΕͱѱຐͱͳΔͷ͔ɺ օ͞ΜͰͦͷӨڹΛΑ͘ߟ্͑ͨͰ49(Λஅͯ͠Լ͍͞ɻ