Agent Bucket: Триллиондық деңгейдегі Agent-тің түпнұсқалық сақтау себеті
Неліктен агент әзірлеушілерінің объектілік сақтау орнындағы кейбір қарапайым сұраныстары «ауыр» болып көрінеді? Мұның себебін тереңірек зерттесек, қазіргі бұлттық архитектурада S3 сияқты «объектілік сақтау» мен дәстүрлі «файлдық жүйе» арасында үлкен бос орын бар. Объектілік сақтау (S3/TOS) мәні «жалпақ», алғашқы мақсаты - үлкен көлемді деректерді қарапайым сақтау, ол үлкен қоймаға ұқсайды, сыйымдылығы шексіз болғанымен, логикалық құрылымы өте қарапайым. Онда жоғары деңгейлі каталогты басқару, түйіршікті метадеректерді басқару және нақты жалға алушыны сезіну жетіспейді. Әзірлеушілер «жалпақ» S3-те алдыңғы қосымшаларды қатты кодтау арқылы «көп өлшемді» көп жалға алушы файлдық жүйесін модельдеуге тырысқанда, біз іс жүзінде «каталогтық семантикасы, күшті оқшаулауы бар» агент қосымшасының файлға қатынау әдісін «статикалық KV сақтау» арқылы жүзеге асырамыз. Яғни, агент файлдарды басқару және көп жалға алушы құқықтары мен оқшаулауды басқару үшін қосымша токендерді тұтынуы керек. Бұл қосымша токендер S3 анықтаған қарапайым сақтау қызметінің агент үшін жеткілікті қарапайым емес екенін көрсетеді.
2025 жылғы S3 блогы «Amazon S3-тегі көп жалға алушы қатынауды басқаруға арналған дизайн үлгілері» S3 Access Point-ті одан әрі түсіндіреді. Бұл бірнеше виртуалды желілік кіру нүктелерін жасауға және әрбір кіру нүктесі үшін реттелетін кіру нүктесі саясатын конфигурациялауға болатынын білдіреді, бұл көп жалға алушы сценарийлері үшін желілік жоспарлау деңгейінде кейбір шешімдерге ие.
Agent Wonderland
Агент әзірлеушісі AI Agent-ті әзірлеу кезінде «Agent SDK + сақтау + MaaS қызметі» негізінде толығымен serverless агентін құра алады:
- Агент толығымен serverless режимінде жұмыс істей алады
- Vibe Coding арқылы агентті құру үшін қолданыстағы өнім мүмкіндіктерін біріктіруге болады
- Тек «ADK» python сценарийін қолдау жеткілікті
- Сақтау объектілік сақтауды пайдаланады
- AI мүмкіндіктері Doubao-ны пайдаланады
- Теориялық тұрғыдан алғанда, ECS немесе басқа даналық өнімдер жоқ
Сонымен қатар, сақтау келесі мүмкіндіктерді ұсынуы керек:
- Агентте объектілік семантикалық сақтау (файлдарды сақтау) болуы мүмкін, ол көп жалға алушыға қосылу мүмкіндігін, миллиондағаннан бастап, миллиардқа дейін кеңейтуге болады
- Агент әрбір пайдаланушыға тәуелсіз орын ұсына алады (бірнеше қызмет арасында, қызмет немесе uid қайталанады)
- Агент әрбір пайдаланушының өткізу қабілетін тікелей конфигурациялай алады, пайдаланушы объектісінің жалпы көлемінің жоғарғы шегін конфигурациялай алады
- Агент пайдаланушыға есепшот, мониторинг және бақылау жүргізе алады
- Агент әрбір пайдаланушының файлы үшін қатынау саясатын конфигурациялай алады
Agent Bucket: AI Agent-ке «көп жалға алушының тума» генін енгізу
Бұл мәселені түбегейлі шешу үшін біз объектілік сақтаудың жаңа парадигмасын ұсынамыз - Agent Bucket. Оның негізгі жаңалығы - дәстүрлі «шелек» пен «объект» арасында жаңа тума ресурс деңгейін енгізу: объектілер жиынтығы.
Бұл дизайнның негізгі идеясы өте қарапайым: әрбір соңғы пайдаланушыңыз үшін арнайы ObjectSet сәйкестендіріңіз. ObjectSet-ті әрбір пайдаланушы үшін жасалған «деректер сейфі» немесе «бұлттық жеке кеңістік» ретінде елестете аласыз. Ол логикалық тұрғыдан сіздің (әзірлеушінің) Bucket-ке жатады, бірақ физикалық және басқару тұрғысынан ол өзінің тәуелсіз «жеке басына» және «өмірлік цикліне» ие.
## ObjectSet дизайны - Agent-ке ыңғайлы мүмкіндіктер Agent Bucket-тегі ObjectSet жай ғана деңгейді арттырып қана қоймайды, сонымен қатар көп жалға алушы сценарийіндегі ең қиын қажеттіліктерді дайын мүмкіндіктерге айналдырады. Деректерге меншік құқығы ObjectSet деңгейінде анықталғаннан кейін, бұрын жүзеге асыру қиын болған бірқатар мүмкіндіктер өздігінен пайда болады. - Түпнұсқалық оқшаулау: ObjectSet деңгейінде сіз әрбір пайдаланушы үшін тәуелсіз QPS, өткізу қабілетін шектеу және сыйымдылық квотасын орната аласыз. Ақылы пайдаланушылардың тәжірибесі қамтамасыз етіледі, ал тегін пайдаланушылардың қалыптан тыс әрекеттері басқаларға әсер етпейді. Бұл нағыз ақаулық аймағын оқшаулау, "көршілердің" бір-біріне кедергі келтірмеуіне мүмкіндік береді. - Түпнұсқалық рұқсат: Әрбір ObjectSet-тің тәуелсіз домені болуы мүмкін. Бұл сіз пайдаланушы A-ға бүкіл сақтау шелегінің доменін ашпай, user-a.yourapp.com эксклюзивті кіру мекенжайын бере аласыз дегенді білдіреді. Одан да тапқыр "екі құлып" дизайны: бірінші құлып - бұл бұлттық қызмет провайдері шығарған уақытша кіру куәлігі (STS), ол қолданба деңгейіндегі кіру рұқсаттарын басқарады; екінші құлып - ObjectSet-тің тәуелсіз домені, ол желі деңгейіндегі кіру сұрауларын пайдаланушының жеке деректер кеңістігінде құлыптайды. Бұл деректердің қауіпсіздігін айтарлықтай арттырады. - Түпнұсқалық мониторинг: Мониторинг тақтасында сіз енді бүкіл шелектің жалпы деректерін ғана көре алмайсыз. Сіз мониторинг диаграммаларын by-ObjectSet бойынша бөліп, қай соңғы пайдаланушының көп кіруін анық көре аласыз, осылайша дәл операциялық және оңтайландыру шешімдерін қабылдай аласыз. - Түпнұсқалық мүмкіндіктерді төмендету: Бұрын шелек деңгейінде ғана орнатылатын саясаттарды енді әрбір пайдаланушыға төмендетуге болады. Сіз әртүрлі деңгейдегі пайдаланушылар үшін әртүрлі деректердің өмірлік циклін орната аласыз немесе әрбір ObjectSet үшін әртүрлі шифрлау кілттерін пайдалана аласыз, осылайша деректерді дәлірек және қауіпсіз басқаруға мүмкіндік береді. - Түпнұсқалық өлшеу: Әрбір пайдаланушы қанша сақтау орнын алатынын білгіңіз келе ме? Сақтау құнын әрбір пайдаланушыға дәл бөлгіңіз келе ме? Енді бұл оңай. Agent Bucket әрбір ObjectSet-тің сыйымдылығы мен пайдалануын автоматты түрде есептейді, осылайша сіздің есеп айырысуыңыз бен бөлісуіңіз анық болады. - Түпнұсқалық есеп айырысу: Әзірлеушілер шығындарды оңай бөліп, сақтаудан түскен шығындарды әрбір соңғы пайдаланушыға дәл қайтара алады. Мысалы, A, B және C әртүрлі пайдаланушылардың нақты шығын пропорцияларына сәйкес сараланған төлемдерді жүргізіңіз, Agent-тің коммерцияландырылуына деректерді қолдауды қамтамасыз етіңіз. - Түпнұсқалық сыйымдылық шегі: Agent-тің операциялық шығындарын бақылау үшін сіз әрбір ObjectSet үшін квота (сыйымдылық шегі) орната аласыз. Алдын ала белгіленген мәнге жеткеннен кейін жүйе осы пайдаланушының жаңа файлдар жасауын шектейді, осылайша көп жалға алушы сценарийіндегі ресурстарды теріс пайдалануды түп тамырынан болдырмайды. - Түпнұсқалық интеллект: Agent Bucket Agent-ке дәстүрлі файлдарды жай ғана "сақтау" шектеуінен шығуға мүмкіндік береді, Object-ке түпнұсқалық интеллект береді және Agent-тің бір терезелі әзірлемесін тиімдірек қолдайды. ObjectSet Agent-ке түпнұсқалық ыңғайлы көп модальды сұрақ-жауап мүмкіндігін қамтамасыз ету үшін бір түймені басу арқылы интеллектуалды индекстеуді қоса алады, дәстүрлі Object CRUD-тің механикалық жұмысын алмастырады; тіпті Agentself режимін бір түймені басу арқылы қосуды, векторларды, білімді, модельдерді және prompt-ты тізбектейді, тікелей көріністік қосалқы Agent функцияларын көрсетеді, осылайша жоғарғы деңгейдегі Agent әзірлеушілері негізгі бизнес жұмыс ағынын жасауға назар аударады және интеллектуалды ақша табу тиімділігін толық шығарады. ## Қолданба ауқымының жарылысынан туындаған техникалық қиындықтар Agent Bucket ObjectSet деген түпнұсқалық ұғымды енгізу арқылы қолданба әзірлеушілеріне жүздеген миллион соңғы пайдаланушы деректерін басқарудың талғампаз және тиімді тәсілін ұсынады. Әрбір пайдаланушының сандық активтері олардың эксклюзивті ObjectSet-інде қауіпсіз сақталады, бұл оқшаулауды, есеп айырысуды және квоталарды басқаруды табиғи түрде жүзеге асырады. Қолданба ауқымының күрт кеңеюімен Set-тің үлкен көлемін басқарудың күрделілігі, оқшаулау қиындығы және физикалық кедергілер бір уақытта пайда болады: - Пайдаланушыларды жаппай жіктеуді басқару мәселесі: Қолданба әртүрлі деңгейдегі көптеген пайдаланушылардың ресурстары мен мүмкіндіктерін сараланған түрде басқарған кезде, пайдаланушыларды жіктеу метадеректерін өз бетінше жобалап, жүзеге асыруы және объектілерді сақтау мүмкіндіктерінің қосқыштарымен байланыстыруы керек. Set-тің түпнұсқалық ұғымында әзірлеушілерге пайдаланушыларды жіктеуді талғампаз басқаруға көмектесу қолданбаны іске қосуды жеделдетудің маңызды бөлігі болып табылады.- Бір кластерлік сыйымдылықтың шектеуі: Agent Bucket логикалық тұрғыдан шексіз кеңейтілуі мүмкін болса да, оның метадеректері әдепкі бойынша бір физикалық кластерде сақталады. Шелектегі нысандардың жалпы саны жүздеген миллиардқа немесе тіпті триллионға жеткенде, бір кластердің физикалық сыйымдылығы шектеу болып табылады. - Қатынас нүктесін бөлісу мәселесі: Агенттің бизнес әртүрлілігі және үлкен көлемдегі пайдаланушылар қатынас нүктесінің өзіне үлкен қауіпсіздік тәуекелдері мен жарылыс радиусын әкеледі. Көптеген әртүрлі бизнес пен пайдаланушылардың айырмашылықтарына сәйкес динамикалық жоспарлауды қалай жүзеге асыруға болады, айырмашылықты қауіпсіздік, оқшаулау және жеделдету мүмкіндіктерін жүзеге асыру қиын мәселе болып табылады. ## Set Tagging: Пайдаланушыларды жіктеуді тегтеу арқылы басқару ObjectSet агент әзірлеушілеріне пайдаланушыларды жіктеуді басқаруды аяқтау үшін set tagging мүмкіндігін оңай пайдалануға мүмкіндік беретін жергілікті тегтеуді басқару әдісін ұсынады; әзірлеушілер әрбір анықталған пайдаланушы деңгейіне тег сәйкестендіре алады және әрбір тег үшін әртүрлі квоталар мен мүмкіндіктерді қоса алады, осы тегпен белгіленген барлық ObjectSet сәйкес квоталар мен мүмкіндіктерді қолданады. V1, V2 және V3 үш деңгейі мысал ретінде: - V1: Әдепкі деңгей, тегін пайдаланушы, барлық ObjectSet әдепкі тегі, ең көбі 1GiB деректерді сақтауға конфигурациялануы мүмкін, жалпыға ортақ желіде тарату 100mbps өткізу қабілетінен аспауы керек, бір ағынды жүктеу жылдамдығы 1mbps-ке дейін бақыланады; - V2: Бастапқы деңгейдегі ақылы мүше, ең көбі 10GiB деректерді сақтауға конфигурацияланған, жалпыға ортақ желіде тарату 10gbps өткізу қабілетінен аспауы керек, бір ағынды жүктеу жылдамдығы 10mbps-ке дейін бақыланады; - V3: Жоғары деңгейдегі ақылы мүше, үлкенірек сақтау және жалпыға ортақ желіде тарату квоталарын ұсынудан басқа, қосымша жалпыға ортақ желінің әлсіз желіні жеделдету және жоғары өнімді ортаны жеделдету мүмкіндіктерін қосуды қолдайды; Агент әзірлеушілері әртүрлі пайдаланушылардың әртүрлі даму кезеңдеріне бағытталған, осы пайдаланушылар пайдалана алатын ресурстар мен қосымша мүмкіндіктерді басқару үшін V1/V2/V3 tagging-ді икемді пайдалана алады.  ## Set Slice: Үлкен көлемдегі пайдаланушы деректерін жергілікті оқшаулау Агент Bucket ішіндегі Set саны жүз миллионға жеткенде, нысандар саны жүздеген миллиардқа, триллионға жеткенде, "бір Bucket барлық метадеректері бір KV кластерінде шоғырланған" деген фактінің өзі сыйымдылық пен өнімділіктің қос тәуекелін тудырады. Set Slice "логикалық бөлшектемеу, физикалық бөлшектеу" идеясын ұсынады: - Логикалық тұрғыдан сіз әлі де бір ғана Agent Bucket басқарасыз. - Физикалық тұрғыдан Set және Set ішіндегі нысан атауларының ауқымына сәйкес метадеректер бірнеше Slice (тілімдер) бөлінеді, әрбір Slice әртүрлі кластерлерде сақталуы мүмкін, көптеген Set табиғи түрде оқшауланған, бір Set көлденеңінен кеңейтіледі.  Set Slice ObjectSet мүмкіндігінің одан әрі кеңейтілуі мен қамтамасыз етілуі болып табылады, ол астыңғы қабатта физикалық сыйымдылықты шексіз кеңейту мәселесін шешеді, сонымен бірге жоғарғы ObjectSet басқару моделінің тұрақтылығы мен біркелкілігін қамтамасыз етеді. - Басқару шекарасы тұрақты: Agent Bucket деректері бірнеше физикалық кластерді қамтыса да, ObjectSet әлі де рұқсаттардың, квоталардың, есептеудің және мониторингтің жалғыз негізгі бірлігі болып табылады. Әзірлеушілер ObjectSet үшін конфигурациялаған саясаттар (мысалы, қатынасуды басқару, сыйымдылық шегі) барлық қатысты Slices автоматты түрде күшіне енеді, астыңғы деректердің таралуына алаңдаудың қажеті жоқ. - Бір Set сызықты түрде кеңейтілуі мүмкін: Белгілі бір ObjectSet деректер көлемі жылдам өскенде, оның деректері бірнеше Slices табиғи түрде таратылады. Жалпы кластердің кеңеюімен бірге осы ObjectSet сыйымдылығы да үздіксіз, сызықты түрде өседі, әзірлеушілер осы ObjectSet өзін бөлшектеу немесе көшіру сияқты бұзушылық әрекеттерін жасаудың қажеті жоқ. - Set арасындағы ресурс оқшаулауы: Әртүрлі ауқымдағы нысандарды әртүрлі физикалық кластерлерге тарату арқылы SetSlice ресурс оқшаулауының жоғары өлшемін жүзеге асырады. ObjectSet квотасын басқарумен бірге белгілі бір "өте үлкен" ObjectSet деректерінің өсуі бір кластердің барлық ресурстарын ығыстырып, басқа ObjectSet тұрақтылығына әсер етуінің алдын алуға болады, осылайша жалпы сыйымдылық тәуекелін бақылауға болады.- Логикалық біркелкілік және үйлесімділік: бизнес және әзірлеушілер үшін қанша Slice болса да, олар әрқашан логикалық біркелкі Agent Bucket-пен бетпе-бет келеді. Шелектерге, ObjectSet-терге және объектілерге қатысты барлық операциялық әдістер өзгеріссіз қалады, бұл жоғарғы деңгейдегі қолданбалар үшін физикалық кеңейтудің толықтай мөлдірлігін жүзеге асырады. ## Set AccessPoint: Әрбір пайдаланушының кіру нүктесін оқшаулау Agent Bucket әрбір ObjectSet үшін тәуелсіз кіру нүктесін (тәуелсіз домендік атау) қосуды қолдайды және кіру нүктесінде әртүрлі қауіпсіздік, оқшаулау және жылдамдату мүмкіндіктерін кеңейтеді. Осыған байланысты жүйе миллиардтаған тәуелсіз кіру нүктелерін жоспарлауды және әртүрлі конфигурациялау мүмкіндіктерін қолдауы керек. Тәуелсіз кіру домені {$apid}.tos-objectset-ap.volces.com: екі деңгейлі қауіпсіздік қорғанысы - Бірінші деңгей Obscurity (жасырындық): Пайдаланушы/ObjectSet бойынша тәуелсіз субдомен, apid жоғары энтропиялық хэштеу, өте төмен соқтығысу ықтималдығы, кіру домені тұрғысынан нақты пайдаланушы кіруін болжау және толықтыру мүмкін емес; - Екінші деңгей Containment (шектеу): Agent әзірлеушілері ObjectSet деңгейіндегі кіру рұқсатын тарату үшін sts пайдаланады, тіпті sts ағып кетсе де, оның кіру ауқымын белгілі бір ObjectSet-тің шектеулі жарамдылық мерзімі ішінде шектеуге болады; Эвристикалық жоспарлау жүйесі: миллиардтық деңгейдегі домендік атауларды жоспарлау стратегиясын есептеу - Пайдаланушы/ObjectSet:tag бойынша әртүрлі кіру стратегиясы - Көптеген пайдаланушылар/ObjectSet әртүрлі жалпыға ортақ кіру нүктелерінде автоматты түрде таратылады, бір кіру нүктесінің ақауы пайдаланушылардың бақыланатын санын әсер етеді - Толық аймақтық серпімді жоспарлау, кез келген бір кіру нүктесінің ақауы/артық жүктемесі трафикті орауды және жылжытуды автоматты түрде аяқтайды - Жалпыға ортақ желіні жылдамдатуды тарататын пайдаланушы, жалпыға ортақ желі арқылы беруді жылдамдату тегін белгілейді, автоматты түрде жылдамдату кіруін жоспарлайды - Жалпыға ортақ желідегі қауіпті пайдаланушы, қауіп тегін белгілейді, жалпыға ортақ желіні оқшаулау кіруін автоматты түрде жоспарлайды және жалпыға ортақ желінің өткізу қабілетінің квотасын азайтады - Ішкі желідегі кросс-домендік пайдаланушы, кросс-домендік тегін белгілейді, ішкі желінің арнайы желісін жылдамдату жолын автоматты түрде жоспарлайды - Жергілікті аймақтық жылдамдатқыш пайдаланушы, жылдамдатқыш тегін белгілейді, жергілікті аймақтық жылдамдатқышты автоматты түрде орнатады  ## Бағдарламалау көмекшісінен AI бұлтты дискіне дейін, Agent Bucket-тің шексіз мүмкіндіктері Agent Bucket Agent үшін толық шешімдерді ұсынады және ObjectSet дизайнының қолданылу сценарийлері бұнымен шектелмейді, оны жаппай соңғы пайдаланушыларға қызмет көрсетуді қажет ететін барлық қолданбаларға оңай кеңейтуге болады: - Код қоймасы: Бұрын кәсіпорындар немесе жеке тұлғалар кодты бұлтта орналастырған кезде, есептік жазбаны оқшаулауды және рұқсаттарды басқаруды жүзеге асыру үшін объектілерді сақтаудың үстіне «жалға алушы жүйесін» құру қажет болды. Енді әрбір әзірлеушіге эксклюзивті ObjectSet бөлуге болады, код қоймасын, құрастыру артефактілерін және тәуелділіктерді біріктіруге болады. Agent Skills сонымен қатар ObjectSet-ке табиғи түрде бейімделген, Skills жүктеу және тарату ObjectSet арқылы күшті оқшаулауды қамтамасыз етеді, Agent жұмыс уақытында көршілерді мазалаудан аулақ болады. - Кәсіпорын фотоальбомының желілік дискі: Дәстүрлі фотоальбом немесе желілік дискі қызметтері әдетте барлық пайдаланушылардың фотосуреттерін бір шелекке араластырады, пайдаланушыларды ажырату үшін префикстерді пайдаланады, бұл басқаруды қиындатып қана қоймайды, сонымен қатар «көршілік әсері» пайда болуы мүмкін. ObjectSet негізінде әрбір пайдаланушының фотосуреттері мен бейнелері өз Set-інде орналасады, кіру шыңы бір-біріне кедергі келтірмейді, сонымен қатар пайдаланушылар бойынша сыйымдылық шегін, сақтық көшірмелеу саясатын және шифрлау әдістерін орнатуға болады, бұл шынымен де «әркімнің қауіпсіз, басқарылатын бұлттық фотоальбомы» болуын қамтамасыз етеді. - Hadoop деректер қоймасы: Кәсіпорынның деректер қоймасында әртүрлі бизнес желілері, әртүрлі дерекқорлар көбінесе бірдей негізгі сақтау орнында ресурстарды бөліседі, әрбір дерекқорды ObjectSet ретінде картаға түсіру арқылы кәсіпорын бірыңғай сақтау орнында дерекқор бойынша оқшаулауды және квоталарды басқаруды жүзеге асыра алады. Әсіресе, ObjectSet TOS-та қосымша рұқсат деңгейін қамтамасыз етеді, TOS-та сақталған Database және Tables үшін ағымдағы Proton on TOS-ты өзгертпестен оқшаулауды және рұқсаттарды басқаруды қамтамасыз етеді. - Модельді хостинг платформасы: Үлкен модельді хостинг сценарийлерінде әрбір модель көлемді ғана емес, сонымен қатар әртүрлі нұсқаларға, салмақтарға және қорытынды конфигурацияларға сәйкес келуі мүмкін. Әрбір модель үшін ObjectSet жасау модель салмақтарын, Tokenizer, конфигурация файлдарын және тиісті бағалау деректерін бір кеңістікте пакеттеп, хостингке орналастыруға мүмкіндік береді. Операциялық жағы әртүрлі модельдер үшін әртүрлі шифрлау саясатын, резервтік саясатын және өткізу қабілетін басқаруды орната алады, сонымен қатар әрбір модельдің нақты пайдалану құнын есептеу үшін жергілікті өлшеу мүмкіндіктерін пайдалана алады, модель өлшемі бойынша есептеу және ресурстарды жоспарлау үшін негіз жасайды. - Деректер SaaS қызметі: Көптеген соңғы пайдаланушыларға арналған деректерді тарату платформасы көбінесе көптеген деректер провайдерлерімен байланысуды қажет етеді, бір жағынан әр тараптың деректер шекарасының анық болуын қамтамасыз ету керек, екінші жағынан "бір үлкен бөшке барлығын сүйреп апарады" деген өнімділік қаупінен аулақ болу керек. Agent Bucket көмегімен әрбір деректер провайдері өзінің ObjectSet-іне ие бола алады, бастапқы деректерді және өңдеу нәтижелерін бірыңғай басқара алады, содан кейін тәуелсіз домен атауы және өткізу қабілеті, QPS квотасы арқылы әртүрлі провайдерлерге қызмет көрсетуді қамтамасыз ету және трафикті шектеу арқылы "бір платформа, бірнеше провайдер, бір-бірінен оқшауланған және бақыланатын ынтымақтастық" деректерді тарату инфрақұрылымын жүзеге асыруға болады. Reference: - https://aws.amazon.com/cn/blogs/apn/partitioning-and-isolating-multi-tenant-saas-data-with-amazon-s3/ - https://aws.amazon.com/cn/blogs/storage/design-patterns-for-multi-tenant-access-control-on-amazon-s3/




