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
UIKitのAPI Diffから見る Safe Area - iOS LT #32
Search
kazuhiro4949
October 26, 2017
Technology
8
1.3k
UIKitのAPI Diffから見る Safe Area - iOS LT #32
Safe Area関連のAPIをUIKitから抽出してきたもの
kazuhiro4949
October 26, 2017
Tweet
Share
More Decks by kazuhiro4949
See All by kazuhiro4949
SwiftUIをUIKitのライフサイクルで拡張するTips
kazuhiro4949
4
2.6k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
570
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール を作る
kazuhiro4949
2
3.7k
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
330
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
78
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
280
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.6k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
290
Other Decks in Technology
See All in Technology
"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"
yuj1osm
1
230
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
8
750
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
170
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
120
2025/3/1 公共交通オープンデータデイ2025
morohoshi
0
100
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.7k
MIMEと文字コードの闇
hirachan
2
1.4k
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
190
フォーイット_エンジニア向け会社紹介資料_Forit_Company_Profile.pdf
forit_tech
1
1.7k
Introduction to OpenSearch Project - Search Engineering Tech Talk 2025 Winter
tkykenmt
2
150
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
3
340
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
210
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
RailsConf 2023
tenderlove
29
1k
Done Done
chrislema
182
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Producing Creativity
orderedlist
PRO
344
40k
Documentation Writing (for coders)
carmenintech
68
4.6k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Transcript
6*,JUͷ"1*%J⒎͔ΒݟΔ 4BGF"SFB ,B[VIJSP)":"4)* J04-5
4BGF"SFBͱ wJ04͔Βͷػೳ w7JFXͷத͕දࣔ͞ ΕΔ͜ͱΛอূͯ͠ ͍ΔྖҬ wJ1IPOF9Ͱ)PNF *OEJDBUPS4FOTPS )PVTJOHͱίϯςϯ π͕ඃΒͳ͍Α͏ʹ ઃఆ͞ΕΔ
IUUQTEFWFMPQFSBQQMFDPNJPTIVNBOJOUFSGBDFHVJEFMJOFTPWFSWJFXJQIPOFY
ΞδΣϯμ 6*,JUͷ4BGF"SFBؔ࿈ͷมߋΛௐࠪ͢Δ ΠϕϯτΛ࣮ࡍʹ৮ͬͯΈͯɺ4BGF"SFBͷϨΠΞτ ͷӨڹΛௐࠪ͢Δ
ํ๏ 6*,JU͕࣋ͭ"1*ͷJ04ʙJ04ؒͷ%J⒎Λ͏ l4BGF"SFBl lMBZPVU.BSHJOl lJOTFUTlลΓͷΩʔϫʔυ Ͱԣஅతʹݕࡧ υΩϡϝϯτʹ4BGF"SFBʹؔ͢Δهड़͕͋Εࢼͯ͠
ΈΔ
IUUQDPEFXPSLTIPQOFUPCKDEJ⒎TELEJ⒎TJPT
4BGF"SFBؔ࿈ͷ%J⒎ 6*7JFXTBGF"SFB*OTFUT 6*7JFXTBGF"SFB-BZPVU(VJEF 6*7JFXJOTFUT-BZPVU.BSHJO'PS4BGF"SFB 6*7JFXEJSFDUJPOBM-BZPVU.BSHJOT 6*7JFXTBGF"SFB*OTFUT%JE$IBOHF 6*7JFX$POUSPMMFSBEEJUJPOBM4BGF"SFB*OTFUT 6*7JFX$POUSPMMFSWJFX4BGF"SFB*OTFUT%JE$IBOHF
6*4DSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPS 6*4DSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*4DSPMM7JFXTDSPMM7JFX%JE$IBOHF"EKVTUFE$POUFOU*OTFU @ 6*5BCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFB 6*$PMMFDUJPO7JFX'MPX-BZPVUTFDUJPO*OTFU3FGFSFODF
4BGF"SFBؔ࿈ͷ%J⒎ 6*7JFXTBGF"SFB*OTFUT 6*7JFXTBGF"SFB-BZPVU(VJEF 6*7JFXJOTFUT-BZPVU.BSHJO'PS4BGF"SFB 6*7JFXEJSFDUJPOBM-BZPVU.BSHJOT 6*7JFXTBGF"SFB*OTFUT%JE$IBOHF 6*7JFX$POUSPMMFSBEEJUJPOBM4BGF"SFB*OTFUT 6*7JFX$POUSPMMFSWJFX4BGF"SFB*OTFUT%JE$IBOHF
6*4DSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPS 6*4DSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*4DSPMM7JFXTDSPMM7JFX%JE$IBOHF"EKVTUFE$POUFOU*OTFU @ 6*5BCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFB 6*$PMMFDUJPO7JFX'MPX-BZPVUTFDUJPO*OTFU3FGFSFODF "1*
݁ߏ͋Δ
ͻͱͭͣͭݟ͍͖ͯ·͢
6*7JFX
TBGF"SFB*OTFUT w ࢠ7JFXΛӅͯ͠͠·͏ྖҬ /BWJHBUJPO#BS5BC#BS 4UBUVT#BS ͳͲ Λ6*&EHF*OTFUͷͱͯ֨͠ೲ w ͜ͷΛ͑J04తͳදࣔྖҬͷൣғʹࢠ7JFXΛऩΊΔ͜ͱ͕ Ͱ͖Δ
w 7JFXͷஔ͔Ε͍ͯΔॴʢ4BGF"SFBͳ͍͔Ͳ͏͔ʣʹΑͬͯ ͕มΘΔ
TBGF"SFB*OTFUT DMBTT4BGF"SFB*OTFUT7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE ^ PWFSSJEFGVODWJFX%JE-BZPVU4VCWJFXT
\ TVQFSWJFX%JE-BZPVU4VCWJFXT @WJFXGSBNF6*&EHF*OTFUT*OTFU3FDU WJFXCPVOET WJFXTBGF"SFB*OTFUT ^ ^
w TBGF"SFB*OTFUTΛ"VUP-BZPVUͰઃఆ͢Δ࣌ͷ-BZPVU(VJEF w 4UPSZCPBSEͰ4BGF"SFBΛѻ͏࣌͜Εʹର੍ͯ͠Λு͍ͬͯΔ TBGF"SFB-BZPVU(VJEF
TBGF"SFB-BZPVU(VJEF DMBTT4BGF"SFB-BZPVU(VJEF7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE @WJFXUSBOTMBUFT"VUPSFTJ[JOH.BTL*OUP$POTUSBJOUTGBMTF @WJFXUPQ"ODIPSDPOTUSBJOU
FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFUPQ"ODIPS JT"DUJWFUSVF @WJFXCPUUPN"ODIPSDPOTUSBJOU FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFCPUUPN"ODIPS JT"DUJWFUSVF @WJFXUSBJMJOH"ODIPSDPOTUSBJOU FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFUSBJMJOH"ODIPS JT"DUJWFUSVF @WJFXMFBEJOH"ODIPSDPOTUSBJOU FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFMFBEJOH"ODIPS JT"DUJWFUSVF ^
JOTFUT-BZPVU.BSHJOT'SPN4BGF"SFB w 4BGF"SFBͷൣғ֎ʹ͍Δ6*7JFXͷMBZPVU.BSHJOʹ4BGF"SFBͷ Λߟྀͤ͞ΔΑ͏ಇ͖͔͚Δ w σϑΥϧτUSVF w GBMTFʹ͢Δͱ4BGF"SFBΛߟྀͤͣʹɺࠓ·Ͱ௨Γઃఆ͞Εͨ MBZPVU.BSHJOͷ͕ΘΕΔ
JOTFUT-BZPVU.BSHJOT'SPN4BGF"SFB MBZPVU.BSHJOT 4BGF"SFB
JOTFUT-BZPVU.BSHJOT'SPN4BGF"SFB MBZPVU.BSHJOT DMBTT*OTFUT-BZPVU.BSHJO'SPN4BGF"SFB7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE WJFXJOTFUT-BZPVU.BSHJOT'SPN4BGF"SFBGBMTF
^ ^
͓·͚ EJSFDUJPOBM-BZPVU.BSHJOT w J04͔ΒMBZPVU.BSHJOTͰͳͬͪ͘͜Λ͏Β͍͠ w /4%JSFDUJPOBM&EHF*OTFUTͱ͍͏6*&EHF*OTFUTͬΆ͍ߏମ w MFGU SJHIUͷΘΓʹMFBEJOH
USBJMJOHͷΑ͏ʢͭ·Γݴޠґଘʣ w ઌఔͷJOTFUT-BZPVU.BSHJO'PS4BGF"SFBͷ͕USVFͰ͋Εɺ4BGF "SFBͷӨڹΛड͚Δ
TBGF"SFB*OTFUT%JE$IBOHF w 4BGF"SFBͷ͕ॻ͖Θͬ ͨΒݺΕΔ w ͦͷޙͰMBZPVU4VCWJFXT͕ ݺΕΔ TBGF"SFB*OTFUT%JE$IBOHF MBZPVU4VCWJFXT
6*7JFX$POUSPMMFS
BEEJUJPOBM4BGF"SFB*OTFUT w TBGF"SFB*OTFUTηοτͰ͖ͳ͍ͨΊɺಠࣗͰ4BGF"SFBΛఆٛ ͍ͨ͠߹͜ͷΛॻ͖͑Δ w ͜͜ೖΕ͕ͨݩʑͷTBGF"SFBʹ͞ΕΔܗͰೖΔ ্ॻ͖Ͱͳ ͍ w
σϑΥϧτ6*&EHF*OTFUT[FSP w /BWJHBUJPO#BS5BC#BSͳͲͷཁૉΛ࣋ͭίϯςφ7$ΛࣗલͰ࡞Γ ͍ͨ࣌ʹར༻
BEEJUJPOBM4BGF"SFB*OTFUT DMBTT4BGF"SFB*OTFUT7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE ^ PWFSSJEFGVODWJFX%JE-BZPVU4VCWJFXT
\ TVQFSWJFX%JE-BZPVU4VCWJFXT @WJFXGSBNF6*&EHF*OTFUT*OTFU3FDU WJFXCPVOET WJFXTBGF"SFB*OTFUT ^ ^
BEEJUJPOBM4BGF"SFB*OTFUT DMBTT4BGF"SFB*OTFUT7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE BEEJUJPOBM4BGF"SFB*OTFUT6*&EHF*OTFUT
UPQ MFGU CPUUPN SJHIU ^ PWFSSJEFGVODWJFX%JE-BZPVU4VCWJFXT \ TVQFSWJFX%JE-BZPVU4VCWJFXT @WJFXGSBNF6*&EHF*OTFUT*OTFU3FDU WJFXCPVOET WJFXTBGF"SFB*OTFUT ^ ^
WJFX4BGF"SFB*OTFUT%JE$IBOHF w WJFXͷTBGF"SFB*OTFUTͷ͕࣮ࡍ ʹೖΔλΠϛϯάͰݺΕΔ w WJFX8JMM"QQFBSͷͱ͖ʹ·ͩ TBGF"SFB*OTFUTͷೖ͍ͬͯͳ ͍༷ WJFX8JMM"QQFBS @
WJFX4BGF"SFB*OTFUT%JE$IBOHF VQEBUF7JFX$POTUSBJOUT WJFX8JMM-BZPVU4VCWJFXT
6*4DSPMM7JFX
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS w 6*7JFX$POUSPMMFSͷBVUPNBUJDBMMZ"EKVTUT4DSPMM7JFX*OTFUTʹΘΔϓϩ ύςΟ w TBGF"SFBΛߟྀͯ͠DPOUFOU*OTFUT͕ࣗಈతʹηοτ͞ΕΔ w BVUPNBUJD TDSPMMBCMF"YFT OFWFS
BMXBZTͷ̐ͭͷͷͲΕ͔ʹͳΔ w σϑΥϧτBVUPNBUJD
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSBMXBZT w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ ඞ্ͣԼࠨӈͷTBGF"SFBͷϚʔδϯ͕ͭ͘
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSOFWFS ඞͣTBGF"SFBແࢹ͞ΕΔ w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSTDSPMMBCMF"YFT εΫϩʔϧՄೳͳྖҬ ͜͜Ͱਨํ ͷΈʹϚʔδϯ͕ͭ͘ w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ
w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSBVUPNBUJD جຊతʹTDSPMMBCMF"YJTͱಉ͡ɻBVUPNBUJDBMMZ"EKVTUT4DSPMM7JFX*OTFUT͕USVFͳΒɺ εΫϩʔϧՄೳͰ͋Ζ͏ͱͳ͔Ζ͏ͱ/BWJHBUJPO$POUSPMMFSʹର͢Δ্෦Ϛʔδϯͭ͘ ޙํޓͷͨΊͷػೳ w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ
w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ
BEKVTUFE$POUFOU*OTFU w TBGF"SFBΛߟྀͯࣗ͠ಈͰηοτ͞ΕΔDPOUFOU*OTFUTͷ w DPOUFOU*OTFUTʹΛηοτ͢ΔͱTBGF"SFB DPOUFOU*OTFUTͷ͕ηο τ͞ΕΔ w DPOUFOU*OTFU"EKVTUNFOU#FIBWJPSʹΑͬͯɺ͜ͷ͕TBGF"SFBΛߟྀ͢ Δ͔ܾ·Δ
OFWFSͩͱTBGF"SFBߟྀ͞Εͳ͍
BEKVTUFE$POUFOU*OTFU PWFSSJEFGVODWJFX%JE"QQFBS @BOJNBUFE#PPM \ TVQFSWJFX%JE"QQFBS BOJNBUFE QSJOU TDSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*&EHF*OTFUT
UPQ MFGU CPUUPN SJHIU ɹɹQSJOU TDSPMM7JFXDPOUFOU*OTFU 6*&EHF*OTFUT UPQ MFGU CPUUPN SJHIU TDSPMM7JFXDPOUFOU*OTFU6*&EHF*OTFUT UPQ MFGU CPUUPN SJHIU QSJOU TDSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*&EHF*OTFUT UPQ MFGU CPUUPN SJHIU ^
TDSPMM7JFX%JE$IBOHF"EKVTUFE$POUFOU*OTFU @ w ઌఔͷBEKVTUFE$POUFOU*OTFUͷ͕ॻ͖ΘΔͱݺΕΔ
6*5BCMF7JFX
JOTFUT$POUFOU7JFXT5P4BGF"SFB w ηϧͷDPOUFOU7JFX͕TBGF"SFBΛߟྀͨ͠ྖҬʹදࣔ͞ΕΔ͔ܾΊΒΕΔ w σϑΥϧτUSVFͰDPOUFOU7JFXTBGF"SFBͷӨڹΛड͚Δ
JOTFUT$POUFOU7JFXT5P4BGF"SFB UBCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFBGBMTF UBCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFBUSVF
6*$PMMFDUJPO7JFX'MPX-BZPVU
TFDUJPO*OTFU3FGFSFODF w 6*$PMMFDUJPO7JFX'MPX-BZPVUͷTFDUJPO*OTFUTʹରͯ͠ɺTBGF"SFB -BZPVU.BSHJO $POUFOU*OTFUTͷͲΕΛߟྀͯ͠ઃఆ͢Δ͔ܾΊΒΕΔ w GSPN$POUFOU*OTFU GSPN4BGF"SFB GSPN-BZPVU.BSHJOTͷFOVNͰߏ
͞ΕΔ w σϑΥϧτGSPN$POUFOU*OTFUͰɺTFDUJPO*OTFUTDPOUFOU*OTFUTͷӨ ڹΛड͚Δ
TFDUJPO*OTFU3FGFSFODF JGMFUMBZPVUDPMMFDUJPO7JFXDPMMFDUJPO7JFX-BZPVUBT 6*$PMMFDUJPO7JFX'MPX-BZPVU\ MBZPVUTFDUJPO*OTFU3FGFSFODFʜ͜͜ͷΛม͑Δ ^ GSPN$POUFOU*OTFU GSPN-BZPVU.BSHJOT GSPN4BGF"SFB
·ͱΊ w ҙ֎ͱ4BGF"SFBབྷΈͷ"1*%J⒎ଟ͔ͬͨ w ݩʑෳࡶͩͬͨϚʔδϯབྷΈͷϨΠΞτ͕ߋʹෳࡶʹͳ͖͍ͬͯͯΔҹ w υΩϡϝϯτΛಡΜͰԿ͕ى͖Δͷ͔ΠϚΠν͔ͭΈʹ͘͘ɺ࣮ࡍʹಈ͔͠ ͯΈͳ͍ͱΘ͔Βͳ͔ͬͨ w ϓϩύςΟͷΛมߋ͢ΔͱԿ͕ى͖Δͷ͔
w ϥΠϑαΠΫϧͲͷλΠϛϯάͰಈ͍ͯɺ͕Ͳ͏มΘΔͷ͔
αϯϓϧʹͬͨΞϓϦ ͪ͜Βஔ͍͍ͯ·͢ IUUQTHJUIVCDPNLB[VIJSP4BGF"SFB4BNQMF
ࢀߟࢿྉ w 6*,JU"QQMF%FWFMPQFS w IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJU w #VJMEJOH"QQTGPSJ1IPOF9 w IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZGBMM w
%FTJHOJOHGPSJ1IPOF9 w IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZGBMM w 6QEBUJOH:PVS"QQGPSJ04 w IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED w 6*,JUJ04UP"1*%J⒎FSFODFT w IUUQDPEFXPSLTIPQOFUPCKDEJ⒎TELEJ⒎TJPT6*,JUIUNM