6b9f7b9f8b9f9b9fab9fbb9fcb9fdb9feb9ffb900ba01ba02ba03ba04ba05ba06ba07ba08ba09ba0aba0bba0cba0dba0eba0fba10ba11ba12ba13ba14ba15ba16ba17ba18ba19ba1aba1bba1cba1dba1eba1fba20ba21ba22ba23ba24ba25ba26ba27ba28ba29ba2aba2bba2cba2dba2eba2fba30ba31ba32ba33ba34ba35ba36ba37ba38ba39ba3aba3bba3cba3dba3eba3fba40ba41ba42ba43ba44ba45ba46ba47ba48ba49ba4aba4bba4cba4dba4eba4fba50ba51ba52ba53ba54ba55ba56ba57ba58ba59ba5aba5bba5cba5dba5eba5fba60ba61ba62ba63ba64ba65ba66ba67ba68ba69ba6aba6bba6cba6dba6eba6fba70ba71ba72ba73ba74ba75ba76ba77ba78ba79ba7aba7bba7cba7dba7eba7fba80ba81ba82ba83ba84ba85ba86ba87ba88ba89ba8aba8bba8cba8dba8eba8fba90ba91ba92ba93ba94ba95ba96ba97ba98ba99ba9aba9bba9cba9dba9eba9fbaa0baa1baa2baa3baa4baa5baa6baa7baa8baa9baaabaabbaacbaadbaaebaafbab0bab1bab2bab3bab4bab5bab6bab7bab8bab9babababbbabcbabdbabebabfbac0bac1bac2bac3bac4bac5bac6bac7bac8bac9bacabacbbaccbacdbacebacfbad0bad1bad2bad3bad4bad5bad6bad7bad8bad9badabadbbadcbaddbadebadfbae0bae1bae2bae3bae4bae5bae6bae7bae8bae9baeabaebbaecbaedbaeebaefbaf0baf1baf2baf3baf4baf5baf6baf7baf8baf9bafabafbbafcbafdbafebaffba00bb01bb02bb03bb04bb05bb06bb07bb08bb09bb0abb0bbb0cbb0dbb0ebb0fbb10bb11bb12bb13bb14bb15bb16bb17bb18bb19bb1abb1bbb1cbb1dbb1ebb1fbb20bb21bb22bb23bb24bb25bb26bb27bb28bb29bb2abb2bbb2cbb2dbb2ebb2fbb30bb31bb32bb33bb34bb35bb36bb37bb38bb39bb3abb3bbb3cbb3dbb3ebb3fbb40bb41bb42bb43bb44bb45bb46bb47bb48bb49bb4abb4bbb4cbb4dbb4ebb4fbb50bb51bb52bb53bb54bb55bb56bb57bb58bb59bb5abb5bbb5cbb5dbb5ebb5fbb60bb61bb62bb63bb64bb65bb66bb67bb68bb69bb6abb6bbb6cbb6dbb6ebb6fbb70bb71bb72bb73bb74bb75bb76bb77bb78bb79bb7abb7bbb7cbb7dbb7ebb7fbb80bb81bb82bb83bb84bb85bb86bb87bb88bb89bb8abb8bbb8cbb8dbb8ebb8fbb90bb91bb92bb93bb94bb95bb96bb97bb98bb99bb9abb9bbb9cbb9dbb9ebb9fbba0bba1bba2bba3bba4bba5bba6bba7bba8bba9bbaabbabbbacbbadbbaebbafbbb0bbb1bbb2bbb3bbb4bbb5bbb6bbb7bbb8bbb9bbbabbbbbbbcbbbdbbbebbbfbbc0bbc1bbc2bbc3bbc4bbc5bbc6bbc7bbc8bbc9bbcabbcbbbccbbcdbbcebbcfbbd0bbd1bbd2bbd3bbd4bbd5bbd6bbd7bbd8bbd9bbdabbdbbbdcbbddbbdebbdfbbe0bbe1bbe2bbe3bbe4bbe5bbe6bbe7bbe8bbe9bbeabbebbbecbbedbbeebbefbbf0bbf1bbf2bbf3bbf4bbf5bbf6bbf7bbf8bbf9bbfabbfbbbfcbbfdbbfebbffbb00bc01bc02bc03bc04bc05bc06bc07bc08bc09bc0abc0bbc0cbc0dbc0ebc0fbc10bc11bc12bc13bc14bc15bc16bc17bc18bc19bc1abc1bbc1cbc1dbc1ebc1fbc20bc21bc22bc23bc24bc25bc26bc27bc28bc29bc2abc2bbc2cbc2dbc2ebc2fbc30bc31bc32bc33bc34bc35bc36bc37bc38bc39bc3abc3bbc3cbc3dbc3ebc3fbc40bc41bc42bc43bc44bc45bc46bc47bc48bc49bc4abc4bbc4cbc4dbc4ebc4fbc50bc51bc52bc53bc54bc55bc56bc57bc58bc59bc5abc5bbc5cbc5dbc5ebc5fbc60bc61bc62bc63bc64bc65bc66bc67bc68bc69bc6abc6bbc6cbc6dbc6ebc6fbc70bc71bc72bc73bc74bc75bc76bc77bc78bc79bc7abc7bbc7cbc7dbc7ebc7fbc80bc81bc82bc83bc84bc85bc86bc87bc88bc89bc8abc8bbc8cbc8dbc8ebc8fbc90bc91bc92bc93bc94bc95bc96bc97bc98bc99bc9abc9bbc9cbc9dbc9ebc9fbca0bca1bca2bca3bca4bca5bca6bca7bca8bca9bcaabcabbcacbcadbcaebcafbcb0bcb1bcb2bcb3bcb4bcb5bcb6bcb7bcb8bcb9bcbabcbbbcbcbcbdbcbebcbfbcc0bcc1bcc2bcc3bcc4bcc5bcc6bcc7bcc8bcc9bccabccbbcccbccdbccebccfbcd0bcd1bcd2bcd3bcd4bcd5bcd6bcd7bcd8bcd9bcdabcdbbcdcbcddbcdebcdfbce0bce1bce2bce3bce4bce5bce6bce7bce8bce9bceabcebbcecbcedbceebcefbcf0bcf1bcf2bcf3bcf4bcf5bcf6bcf7bcf8bcf9bcfabcfbbcfcbcfdbcfebcffbc00bd01bd02bd03bd04bd05bd06bd07bd08bd09bd0abd0bbd0cbd0dbd0ebd0fbd10bd11bd12bd13bd14bd15bd16bd17bd18bd19bd1abd1bbd1cbd1dbd1ebd1fbd20bd21bd22bd23bd24bd25bd26bd27bd28bd29bd2abd2bbd2cbd2dbd2ebd2fbd30bd31bd32bd33bd34bd35bd36bd37bd38bd39bd3abd3bbd3cbd3dbd3ebd3fbd40bd41bd42bd43bd44bd45bd46bd47bd48bd49bd4abd4bbd4cbd4dbd4ebd4fbd50bd51bd52bd53bd54bd55bd56bd57bd58bd59bd5abd5bbd5cbd5dbd5ebd5fbd60bd61bd62bd63bd64bd65bd66bd67bd68bd69bd6abd6bbd6cbd6dbd6ebd6fbd70bd71bd72bd73bd74bd75bd76bd77bd78bd79bd7abd7bbd7cbd7dbd7ebd7fbd80bd81bd82bd83bd84bd85bd86bd87bd88bd89bd8abd8bbd8cbd8dbd8ebd8fbd90bd91bd92bd93bd94bd95bd96bd97bd98bd99bd9abd9bbd9cbd9dbd9ebd9fbda0bda1bda2bda3bda4bda5bda6bda7bda8bda9bdaabdabbdacbdadbdaebdafbdb0bdb1bdb2bdb3bdb4bdb5bdb6bdb7bdb8bdb9bdbabdbbbdbcbdbdbdbebdbfbdc0bdc1bdc2bdc3bdc4bdc5bdc6bdc7bdc8bdc9bdcabdcbbdccbdcdbdcebdcfbdd0bdd1bdd2bdd3bdd4bdd5bdd6bdd7bdd8bdd9bddabddbbddcbdddbddebddfbde0bde1bde2bde3bde4bde5bde6bde7bde8bde9bdeabdebbdecbdedbdeebdefbdf0bdf1bdf2bdf3bdf4bdf5bdf6bdf7bdf8bdf9bdfabdfbbdfcbdfdbdfebdffbd00be01be02be03be04be05be06be07be08be09be0abe0bbe0cbe0dbe0ebe0fbe10be11be12be13be14be15be16be17be18be19be1abe1bbe1cbe1dbe1ebe1fbe20be21be22be23be24be25be26be27be28be29be2abe2bbe2cbe2dbe2ebe2fbe30be31be32be33be34be35be36be37be38be39be3abe3bbe3cbe3dbe3ebe3fbe40be41be42be43be44be45be46be47be48be49be4abe4bbe4cbe4dbe4ebe4fbe50be51be52be53be54be55be56be57be58be59be5abe5bbe5cbe5dbe5ebe5fbe60be61be62be63be64be65be66be67be68be69be6abe6bbe6cbe6dbe6ebe6fbe70be71be72be73be74be75be76be77be78be79be7abe7bbe7cbe7dbe7ebe7fbe80be81be82be83be84be85be86be87be88be89be8abe8bbe8cbe8dbe8ebe8fbe90be91be92be93be94be95be96be97be98be99be9abe9bbe9cbe9dbe9ebe9fbea0bea1bea2bea3bea4bea5bea6bea7bea8bea9beaabeabbeacbeadbeaebeafbeb0beb1beb2beb3beb4beb5beb6beb7beb8beb9bebabebbbebcbebdbebebebfbec0bec1bec2bec3bec4bec5bec6bec7bec8bec9becabecbbeccbecdbecebecfbed0bed1bed2bed3bed4bed5bed6bed7bed8bed9bedabedbbedcbeddbedebedfbee0bee1bee2bee3bee4bee5bee6bee7bee8bee9beeabeebbeecbeedbeeebeefbef0bef1bef2bef3bef4bef5bef6bef7bef8bef9befabefbbefcbefdbefebeffbe00bf01bf02bf03bf04bf05bf06bf07bf08bf09bf0abf0bbf0cbf0dbf0ebf0fbf10bf11bf12bf13bf14bf15bf16bf17bf18bf19bf1abf1bbf1cbf1dbf1ebf1fbf20bf21bf22bf23bf24bf25bf26bf27bf28bf29bf2abf2bbf2cbf2dbf2ebf2fbf30bf31bf32bf33bf34bf35bf36bf37bf38bf39bf3abf3bbf3cbf3dbf3ebf3fbf40bf41bf42bf43bf44bf45bf46bf47bf48bf49bf4abf4bbf4cbf4dbf4ebf4fbf50bf51bf52bf53bf54bf55bf56bf57bf58bf59bf5abf5bbf5cbf5dbf5ebf5fbf60bf61bf62bf63bf64bf65bf66bf67bf68bf69bf6abf6bbf6cbf6dbf6ebf6fbf70bf71bf72bf73bf74bf75bf76bf77bf78bf79bf7abf7bbf7cbf7dbf7ebf7fbf80bf81bf82bf83bf84bf85bf86bf87bf88bf89bf8abf8bbf8cbf8dbf8ebf8fbf90bf91bf92bf93bf94bf95bf96bf97bf98bf99bf9abf9bbf9cbf9dbf9ebf9fbfa0bfa1bfa2bfa3bfa4bfa5bfa6bfa7bfa8bfa9bfaabfabbfacbfadbfaebfafbfb0bfb1bfb2bfb3bfb4bfb5bfb6bfb7bfb8bfb9bfbabfbbbfbcbfbdbfbebfbfbfc0bfc1bfc2bfc3bfc4bfc5bfc6bfc7bfc8bfc9bfcabfcbbfccbfcdbfcebfcfbfd0bfd1bfd2bfd3bfd4bfd5bfd6bfd7bfd8bfd9bfdabfdbbfdcbfddbfdebfdfbfe0bfe1bfe2bfe3bfe4bfe5bfe6bfe7bfe8bfe9bfeabfebbfecbfedbfeebfefbff0bff1bff2bff3bff4bff5bff6bff7bff8bff9bffabffbbffcbffdbffebfffbf00c001c002c003c004c005c006c007c008c009c00ac00bc00cc00dc00ec00fc010c011c012c013c014c015c016c017c018c019c01ac01bc01cc01dc01ec01fc020c021c022c023c024c025c026c027c028c029c02ac02bc02cc02dc02ec02fc030c031c032c033c034c035c036c037c038c039c03ac03bc03cc03dc03ec03fc040c041c042c043c044c045c046c047c048c049c04ac04bc04cc04dc04ec04fc050c051c052c053c054c055c056c057c058c059c05ac05bc05cc05dc05ec05fc060c061c062c063c064c065c066c067c068c069c06ac06bc06cc06dc06ec06fc070c071c072c073c074c075c076c077c078c079c07ac07bc07cc07dc07ec07fc080c081c082c083c084c085c086c087c088c089c08ac08bc08cc08dc08ec08fc090c091c092c093c094c095c096c097c098c099c09ac09bc09cc09dc09ec09fc0a0c0a1c0a2c0a3c0a4c0a5c0a6c0a7c0a8c0a9c0aac0abc0acc0adc0aec0afc0b0c0b1c0b2c0b3c0b4c0b5c0b6c0b7c0b8c0b9c0bac0bbc0bcc0bdc0bec0bfc0c0c0c1c0c2c0c3c0c4c0c5c0c6c0c7c0c8c0c9c0cac0cbc0ccc0cdc0cec0cfc0d0c0d1c0d2c0d3c0d4c0d5c0d6c0d7c0d8c0d9c0dac0dbc0dcc0ddc0dec0dfc0e0c0e1c0e2c0e3c0e4c0e5c0e6c0e7c0e8c0e9c0eac0ebc0ecc0edc0eec0efc0f0c0f1c0f2c0f3c0f4c0f5c0f6c0f7c0f8c0f9c0fac0fbc0fcc0fdc0fec0ffc000c101c102c103c104c105c106c107c108c109c10ac10bc10cc10dc10ec10fc110c111c112c113c114c115c116c117c118c119c11ac11bc11cc11dc11ec11fc120c121c122c123c124c125c126c127c128c129c12ac12bc12cc12dc12ec12fc130c131c132c133c134c135c136c137c138c139c13ac13bc13cc13dc13ec13fc140c141c142c143c144c145c146c147c148c149c14ac14bc14cc14dc14ec14fc150c151c152c153c154c155c156c157c158c159c15ac15bc15cc15dc15ec15fc160c161c162c163c164c165c166c167c168c169c16ac16bc16cc16dc16ec16fc170c171c172c173c174c175c176c177c178c179c17ac17bc17cc17dc17ec17fc180c181c182c183c184c185c186c187c188c189c18ac18bc18cc18dc18ec18fc190c191c192c193c194c195c196c197c198c199c19ac19bc19cc19dc19ec19fc1a0c1a1c1a2c1a3c1a4c1a5c1a6c1a7c1a8c1a9c1aac1abc1acc1adc1aec1afc1b0c1b1c1b2c1b3c1b4c1b5c1b6c1b7c1b8c1b9c1bac1bbc1bcc1bdc1bec1bfc1c0c1c1c1c2c1c3c1c4c1c5c1c6c1c7c1c8c1c9c1cac1cbc1ccc1cdc1cec1cfc1d0c1d1c1d2c1d3c1d4c1d5c1d6c1d7c1d8c1d9c1dac1dbc1dcc1ddc1dec1dfc1e0c1e1c1e2c1e3c1e4c1e5c1e6c1e7c1e8c1e9c1eac1ebc1ecc1edc1eec1efc1f0c1f1c1f2c1f3c1f4c1f5c1f6c1f7c1f8c1f9c1fac1fbc1fcc1fdc1fec1ffc100c201c202c203c204c205c206c207c208c209c20ac20bc20cc20dc20ec20fc210c211c212c213c214c215c216c217c218c219c21ac21bc21cc21dc21ec21fc220c221c222c223c224c225c226c227c228c229c22ac22bc22cc22dc22ec22fc230c231c232c233c234c235c236c237c238c239c23ac23bc23cc23dc23ec23fc240c241c242c243c244c245c246c247c248c249c24ac24bc24cc24dc24ec24fc250c251c252c253c254c255c256c257c258c259c25ac25bc25cc25dc25ec25fc260c261c262c263c264c265c266c267c268c269c26ac26bc26cc26dc26ec26fc270c271c272c273c274c275c276c277c278c279c27ac27bc27cc27dc27ec27fc280c281c282c283c284c285c286c287c288c289c28ac28bc28cc28dc28ec28fc290c291c292c293c294c295c296c297c298c299c29ac29bc29cc29dc29ec29fc2a0c2a1c2a2c2a3c2a4c2a5c2a6c2a7c2a8c2a9c2aac2abc2acc2adc2aec2afc2b0c2b1c2b2c2b3c2b4c2b5c2b6c2b7c2b8c2b9c2bac2bbc2bcc2bdc2bec2bfc2c0c2c1c2c2c2c3c2c4c2c5c2c6c2c7c2c8c2c9c2cac2cbc2ccc2cdc2cec2cfc2d0c2d1c2d2c2d3c2d4c2d5c2d6c2d7c2d8c2d9c2dac2dbc2dcc2ddc2dec2dfc2e0c2e1c2e2c2e3c2e4c2e5c2e6c2e7c2e8c2e9c2eac2ebc2ecc2edc2eec2efc2f0c2f1c2f2c2f3c2f4c2f5c2f6c2f7c2f8c2f9c2fac2fbc2fcc2fdc2fec2ffc200c301c302c303c304c305c306c307c308c309c30ac30bc30cc30dc30ec30fc310c311c312c313c314c315c316c317c318c319c31ac31bc31cc31dc31ec31fc320c321c322c323c324c325c326c327c328c329c32ac32bc32cc32dc32ec32fc330c331c332c333c334c335c336c337c338c339c33ac33bc33cc33dc33ec33fc340c341c342c343c344c345c346c347c348c349c34ac34bc34cc34dc34ec34fc350c351c352c353c354c355c356c357c358c359c35ac35bc35cc35dc35ec35fc360c361c362c363c364c365c366c367c368c369c36ac36bc36cc36dc36ec36fc370c371c372c373c374c375c376c377c378c379c37ac37bc37cc37dc37ec37fc380c381c382c383c384c385c386c387c388c389c38ac38bc38cc38dc38ec38fc390c391c392c393c394c395c396c397c398c399c39ac39bc39cc39dc39ec39fc3a0c3a1c3a2c3a3c3a4c3a5c3a6c3a7c3a8c3a9c3aac3abc3acc3adc3aec3afc3b0c3b1c3b2c3b3c3b4c3b5c3b6c3b7c3b8c3b9c3bac3bbc3bcc3bdc3bec3bfc3c0c3c1c3c2c3c3c3c4c3c5c3c6c3c7c3c8c3c9c3cac3cbc3ccc3cdc3cec3cfc3d0c3d1c3d2c3d3c3d4c3d5c3d6c3d7c3d8c3d9c3dac3dbc3dcc3ddc3dec3dfc3e0c3e1c3e2c3e3c3e4c3e5c3e6c3e7c3e8c3e9c3eac3ebc3ecc3edc3eec3efc3f0c3f1c3f2c3f3c3f4c3f5c3f6c3f7c3f8c3f9c3fac3fbc3fcc3fdc3fec3ffc300c401c402c403c404c405c406c407c408c409c40ac40bc40cc40dc40ec40fc410c411c412c413c414c415c416c417c418c419c41ac41bc41cc41dc41ec41fc420c421c422c423c424c425c426c427c428c429c42ac42bc42cc42dc42ec42fc430c431c432c433c434c435c436c437c438c439c43ac43bc43cc43dc43ec43fc440c441c442c443c444c445c446c447c448c449c44ac44bc44cc44dc44ec44fc450c451c452c453c454c455c456c457c458c459c45ac45bc45cc45dc45ec45fc460c461c462c463c464c465c466c467c468c469c46ac46bc46cc46dc46ec46fc470c471c472c473c474c475c476c477c478c479c47ac47bc47cc47dc47ec47fc480c481c482c483c484c485c486c487c488c489c48ac48bc48cc48dc48ec48fc490c491c492c493c494c495c496c497c498c499c49ac49bc49cc49dc49ec49fc4a0c4a1c4a2c4a3c4a4c4a5c4a6c4a7c4a8c4a9c4aac4abc4acc4adc4aec4afc4b0c4b1c4b2c4b3c4b4c4b5c4b6c4b7c4b8c4b9c4bac4bbc4bcc4bdc4bec4bfc4c0c4c1c4c2c4c3c4c4c4c5c4c6c4c7c4c8c4c9c4cac4cbc4ccc4cdc4cec4cfc4d0c4d1c4d2c4d3c4d4c4d5c4d6c4d7c4d8c4d9c4dac4dbc4dcc4ddc4dec4dfc4e0c4e1c4e2c4e3c4e4c4e5c4e6c4e7c4e8c4e9c4eac4ebc4ecc4edc4eec4efc4f0c4f1c4f2c4f3c4f4c4f5c4f6c4f7c4f8c4f9c4fac4fbc4fcc4fdc4fec4ffc400c501c502c503c504c505c506c507c508c509c50ac50bc50cc50dc50ec50fc510c511c512c513c514c515c516c517c518c519c51ac51bc51cc51dc51ec51fc520c521c522c523c524c525c526c527c528c529c52ac52bc52cc52dc52ec52fc530c531c532c533c534c535c536c537c538c539c53ac53bc53cc53dc53ec53fc540c541c542c543c544c545c546c547c548c549c54ac54bc54cc54dc54ec54fc550c551c552c553c554c555c556c557c558c559c55ac55bc55cc55dc55ec55fc560c561c562c563c564c565c566c567c568c569c56ac56bc56cc56dc56ec56fc570c571c572c573c574c575c576c577c578c579c57ac57bc57cc57dc57ec57fc580c581c582c583c584c585c586c587c588c589c58ac58bc58cc58dc58ec58fc590c591c592c593c594c595c596c597c598c599c59ac59bc59cc59dc59ec59fc5a0c5a1c5a2c5a3c5a4c5a5c5a6c5a7c5a8c5a9c5aac5abc5acc5adc5aec5afc5b0c5b1c5b2c5b3c5b4c5b5c5b6c5b7c5b8c5b9c5bac5bbc5bcc5bdc5bec5bfc5c0c5c1c5c2c5c3c5c4c5c5c5c6c5c7c5c8c5c9c5cac5cbc5ccc5cdc5cec5cfc5d0c5d1c5d2c5d3c5d4c5d5c5d6c5d7c5d8c5d9c5dac5dbc5dcc5ddc5dec5dfc5e0c5e1c5e2c5e3c5e4c5e5c5e6c5e7c5e8c5e9c5eac5ebc5ecc5edc5eec5efc5f0c5f1c5f2c5f3c5f4c5f5c5f6c5f7c5f8c5f9c5fac5fbc5fcc5fdc5fec5ffc500c601c602c603c604c605c606c607c608c609c60ac60bc60cc60dc60ec60fc610c611c612c613c614c615c616c617c618c619c61ac61bc61cc61dc61ec61fc620c621c622c623c624c625c626c627c628c629c62ac62bc62cc62dc62ec62fc630c631c632c633c634c635c636c637c638c639c63ac63bc63cc63dc63ec63fc640c641c642c643c644c645c646c647c648c649c64ac64bc64cc64dc64ec64fc650c651c652c653c654c655c656c657c658c659c65ac65bc65cc65dc65ec65fc660c661c662c663c664c665c666c667c668c669c66ac66bc66cc66dc66ec66fc670c671c672c673c674c675c676c677c678c679c67ac67bc67cc67dc67ec67fc680c681c682c683c684c685c686c687c688c689c68ac68bc68cc68dc68ec68fc690c691c692c693c694c695c696c697c698c699c69ac69bc69cc69dc69ec69fc6a0c6a1c6a2c6a3c6a4c6a5c6a6c6a7c6a8c6a9c6aac6abc6acc6adc6aec6afc6b0c6b1c6b2c6b3c6b4c6b5c6b6c6b7c6b8c6b9c6bac6bbc6bcc6bdc6bec6bfc6c0c6c1c6c2c6c3c6c4c6c5c6c6c6c7c6c8c6c9c6cac6cbc6ccc6cdc6cec6cfc6d0c6d1c6d2c6d3c6d4c6d5c6d6c6d7c6d8c6d9c6dac6dbc6dcc6ddc6dec6dfc6e0c6e1c6e2c6e3c6e4c6e5c6e6c6e7c6e8c6e9c6eac6ebc6ecc6edc6eec6efc6f0c6f1c6f2c6f3c6f4c6f5c6f6c6f7c6f8c6f9c6fac6fbc6fcc6fdc6fec6ffc600c701c702c703c704c705c706c707c708c709c70ac70bc70cc70dc70ec70fc710c711c712c713c714c715c716c717c718c719c71ac71bc71cc71dc71ec71fc720c721c722c723c724c725c726c727c728c729c72ac72bc72cc72dc72ec72fc730c731c732c733c734c735c736c737c738c739c73ac73bc73cc73dc73ec73fc740c741c742c743c744c745c746c747c748c749c74ac74bc74cc74dc74ec74fc750c751c752c753c754c755c756c757c758c759c75ac75bc75cc75dc75ec75fc760c761c762c763c764c765c766c767c768c769c76ac76bc76cc76dc76ec76fc770c771c772c773c774c775c776c777c778c779c77ac77bc77cc77dc77ec77fc780c781c782c783c784c785c786c787c788c789c78ac78bc78cc78dc78ec78fc790c791c792c793c794c795c796c797c798c799c79ac79bc79cc79dc79ec79fc7a0c7a1c7a2c7a3c7a4c7a5c7a6c7a7c7a8c7a9c7aac7abc7acc7adc7aec7afc7b0c7b1c7b2c7b3c7b4c7b5c7b6c7b7c7b8c7b9c7bac7bbc7bcc7bdc7bec7bfc7c0c7c1c7c2c7c3c7c4c7c5c7c6c7c7c7c8c7c9c7cac7cbc7ccc7cdc7cec7cfc7d0c7d1c7d2c7d3c7d4c7d5c7d6c7d7c7d8c7d9c7dac7dbc7dcc7ddc7dec7dfc7e0c7e1c7e2c7e3c7e4c7e5c7e6c7e7c7e8c7e9c7eac7ebc7ecc7edc7eec7efc7f0c7f1c7f2c7f3c7f4c7f5c7f6c7f7c7f8c7f9c7fac7fbc7fcc7fdc7fec7ffc700c801c802c803c804c805c806c807c808c809c80ac80bc80cc80dc80ec80fc810c811c812c813c814c815c816c817c818c819c81ac81bc81cc81dc81ec81fc820c821c822c823c824c825c826c827c828c829c82ac82bc82cc82dc82ec82fc830c831c832c833c834c835c836c837c838c839c83ac83bc83cc83dc83ec83fc840c841c842c843c844c845c846c847c848c849c84ac84bc84cc84dc84ec84fc850c851c852c853c854c855c856c857c858c859c85ac85bc85cc85dc85ec85fc860c861c862c863c864c865c866c867c868c869c86ac86bc86cc86dc86ec86fc870c871c872c873c874c875c876c877c878c879c87ac87bc87cc87dc87ec87fc880c881c882c883c884c885c886c887c888c889c88ac88bc88cc88dc88ec88fc890c891c892c893c894c895c896c897c898c899c89ac89bc89cc89dc89ec89fc8a0c8a1c8a2c8a3c8a4c8a5c8a6c8a7c8a8c8a9c8aac8abc8acc8adc8aec8afc8b0c8b1c8b2c8b3c8b4c8b5c8b6c8b7c8b8c8b9c8bac8bbc8bcc8bdc8bec8bfc8c0c8c1c8c2c8c3c8c4c8c5c8c6c8c7c8c8c8c9c8cac8cbc8ccc8cdc8cec8cfc8d0c8d1c8d2c8d3c8d4c8d5c8d6c8d7c8d8c8d9c8dac8dbc8dcc8ddc8dec8dfc8e0c8e1c8e2c8e3c8e4c8e5c8e6c8e7c8e8c8e9c8eac8ebc8ecc8edc8eec8efc8f0c8f1c8f2c8f3c8f4c8f5c8f6c8f7c8f8c8f9c8fac8fbc8fcc8fdc8fec8ffc800c901c902c903c904c905c906c907c908c909c90ac90bc90cc90dc90ec90fc910c911c912c913c914c915c916c917c918c919c91ac91bc91cc91dc91ec91fc920c921c922c923c924c925c926c927c928c929c92ac92bc92cc92dc92ec92fc930c931c932c933c934c935c936c937c938c939c93ac93bc93cc93dc93ec93fc940c941c942c943c944c945c946c947c948c949c94ac94bc94cc94dc94ec94fc950c951c952c953c954c955c956c957c958c959c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966c967c968c969c96ac96bc96cc96dc96ec96fc970c971c972c973c974c975c976c977c978c979c97ac97bc97cc97dc97ec97fc980c981c982c983c984c985c986c987c988c989c98ac98bc98cc98dc98ec98fc990c991c992c993c994c995c996c997c998c999c99ac99bc99cc99dc99ec99fc9a0c9a1c9a2c9a3c9a4c9a5c9a6c9a7c9a8c9a9c9aac9abc9acc9adc9aec9afc9b0c9b1c9b2c9b3c9b4c9b5c9b6c9b7c9b8c9b9c9bac9bbc9bcc9bdc9bec9bfc9c0c9c1c9c2c9c3c9c4c9c5c9c6c9c7c9c8c9c9c9cac9cbc9ccc9cdc9cec9cfc9d0c9d1c9d2c9d3c9d4c9d5c9d6c9d7c9d8c9d9c9dac9dbc9dcc9ddc9dec9dfc9e0c9e1c9e2c9e3c9e4c9e5c9e6c9e7c9e8c9e9c9eac9ebc9ecc9edc9eec9efc9f0c9f1c9f2c9f3c9f4c9f5c9f6c9f7c9f8c9f9c9fac9fbc9fcc9fdc9fec9ffc900ca01ca02ca03ca04ca05ca06ca07ca08ca09ca0aca0bca0cca0dca0eca0fca10ca11ca12ca13ca14ca15ca16ca17ca18ca19ca1aca1bca1cca1dca1eca1fca20ca21ca22ca23ca24ca25ca26ca27ca28ca29ca2aca2bca2cca2dca2eca2fca30ca31ca32ca33ca34ca35ca36ca37ca38ca39ca3aca3bca3cca3dca3eca3fca40ca41ca42ca43ca44ca45ca46ca47ca48ca49ca4aca4bca4cca4dca4eca4fca50ca51ca52ca53ca54ca55ca56ca57ca58ca59ca5aca5bca5cca5dca5eca5fca60ca61ca62ca63ca64ca65ca66ca67ca68ca69ca6aca6bca6cca6dca6eca6fca70ca71ca72ca73ca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7eca7fca80ca81ca82ca83ca84ca85ca86ca87ca88ca89ca8aca8bca8cca8dca8eca8fca90ca91ca92ca93ca94ca95ca96ca97ca98ca99ca9aca9bca9cca9dca9eca9fcaa0caa1caa2caa3caa4caa5caa6caa7caa8caa9caaacaabcaaccaadcaaecaafcab0cab1cab2cab3cab4cab5cab6cab7cab8cab9cabacabbcabccabdcabecabfcac0cac1cac2cac3cac4cac5cac6cac7cac8cac9cacacacbcacccacdcacecacfcad0cad1cad2cad3cad4cad5cad6cad7cad8cad9cadacadbcadccaddcadecadfcae0cae1cae2cae3cae4cae5cae6cae7cae8cae9caeacaebcaeccaedcaeecaefcaf0caf1caf2caf3caf4caf5caf6caf7caf8caf9cafacafbcafccafdcafecaffca00cb01cb02cb03cb04cb05cb06cb07cb08cb09cb0acb0bcb0ccb0dcb0ecb0fcb10cb11cb12cb13cb14cb15cb16cb17cb18cb19cb1acb1bcb1ccb1dcb1ecb1fcb20cb21cb22cb23cb24cb25cb26cb27cb28cb29cb2acb2bcb2ccb2dcb2ecb2fcb30cb31cb32cb33cb34cb35cb36cb37cb38cb39cb3acb3bcb3ccb3dcb3ecb3fcb40cb41cb42cb43cb44cb45cb46cb47cb48cb49cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54cb55cb56cb57cb58cb59cb5acb5bcb5ccb5dcb5ecb5fcb60cb61cb62cb63cb64cb65cb66cb67cb68cb69cb6acb6bcb6ccb6dcb6ecb6fcb70cb71cb72cb73cb74cb75cb76cb77cb78cb79cb7acb7bcb7ccb7dcb7ecb7fcb80cb81cb82cb83cb84cb85cb86cb87cb88cb89cb8acb8bcb8ccb8dcb8ecb8fcb90cb91cb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cba1cba2cba3cba4cba5cba6cba7cba8cba9cbaacbabcbaccbadcbaecbafcbb0cbb1cbb2cbb3cbb4cbb5cbb6cbb7cbb8cbb9cbbacbbbcbbccbbdcbbecbbfcbc0cbc1cbc2cbc3cbc4cbc5cbc6cbc7cbc8cbc9cbcacbcbcbcccbcdcbcecbcfcbd0cbd1cbd2cbd3cbd4cbd5cbd6cbd7cbd8cbd9cbdacbdbcbdccbddcbdecbdfcbe0cbe1cbe2cbe3cbe4cbe5cbe6cbe7cbe8cbe9cbeacbebcbeccbedcbeecbefcbf0cbf1cbf2cbf3cbf4cbf5cbf6cbf7cbf8cbf9cbfacbfbcbfccbfdcbfecbffcb00cc01cc02cc03cc04cc05cc06cc07cc08cc09cc0acc0bcc0ccc0dcc0ecc0fcc10cc11cc12cc13cc14cc15cc16cc17cc18cc19cc1acc1bcc1ccc1dcc1ecc1fcc20cc21cc22cc23cc24cc25cc26cc27cc28cc29cc2acc2bcc2ccc2dcc2ecc2fcc30cc31cc32cc33cc34cc35cc36cc37cc38cc39cc3acc3bcc3ccc3dcc3ecc3fcc40cc41cc42cc43cc44cc45cc46cc47cc48cc49cc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54cc55cc56cc57cc58cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68cc69cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 0x20000, 0x88000}, {&(0x7f0000039c40)="46494c453000050000000000000000000100010040000100a0010000000800000000000000000000040000000000000003000000000000000000000000000000100000006000000000001800000000004800000018000000801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd80100d800000000000000d80000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000007e00000000000000400000000000000000f803000000000000f803000000000000f8030000000000117f080000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000008000000000000100000000000000010000000000000001101040000000000ffffffff00000000", 0x1a0, 0xff800}, {&(0x7f0000039de0)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0xff9e0}, {&(0x7f0000039e00)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0xffbe0}, {&(0x7f0000039e20)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0xffde0}, {&(0x7f0000039e40)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000008000000000000080000000000000008000000000000001101040000000000ffffffff0000030046494c45300005000000000000000000010001004000010060010000000800000000000000000000030000000100000002000000000000000000000000000000100000006000000000001800000000004800000018000000801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd801060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd801002000000000000000200000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000020000000000000002000000000000000200000000000002104ff0100000000ffffffff00000000", 0x1c0, 0xfffa0}, {&(0x7f000003a000)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f000003a020)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1003e0}, {&(0x7f000003a040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1005e0}, {&(0x7f000003a060)="000000000000000000000000000000000000000000000000000000000000020046494c45300005000000000000000000020001004000010060010000000800000000000000000000030000000200000002000000000000000000000000000000100000006000000000001800000000004800000018000000801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd801060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000007f0000000000000040000000000000000000040000000000000004000000000000000400000000002280000302000000ffffffff00000000", 0x180, 0x1007e0}, {&(0x7f000003a1e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1009e0}, {&(0x7f000003a200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x100be0}, {&(0x7f000003a220)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x100de0}, {&(0x7f000003a240)="000000000000000000000000000000000000000000000000000000000000020046494c453000050000000000000000000300010040000100e8010000000800000000000000000000060000000300000004000000000000000000000000000000100000004800000000001800000000003000000018000000801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd801060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff00000000000000000000000000000000000000000000000000000400", 0x220, 0x100fe0}, {&(0x7f000003a460)="0000000000000000000000000000000000000000000000000000000000000400", 0x20, 0x1013e0}, {&(0x7f000003a480)="0000000000000000000000000000000000000000000000000000000000000400", 0x20, 0x1015e0}, {&(0x7f000003a4a0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x40020, 0x1017e0}, {&(0x7f000007a4c0)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x181000}, {&(0x7f000007a8e0)='syzkallers\x00'/32, 0x20, 0x181800}, {&(0x7f000007a900)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x184800}, {&(0x7f000007a980)="eb52904e5446532020202000080100000000000000f8000000000000000000000000000080008000ff030000000000000800000000000000ff010000000000000100000002000000015f1c32890d2820000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0, 0x1ff800}, {&(0x7f000007aa60)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1ff9e0}], 0x0, &(0x7f000007aa80)) 07:52:44 executing program 1: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) setsockopt(r0, 0x84, 0x81, &(0x7f00000002c0)="0100000002000000", 0x8) 07:52:44 executing program 0: mkdir(&(0x7f0000000100)='./file0\x00', 0x0) open(&(0x7f0000000000)='./file0\x00', 0x38d040, 0x82) mount(0x0, &(0x7f0000027000)='./file0\x00', &(0x7f00000000c0)='sysfs\x00', 0x0, 0x0) mount(0x0, &(0x7f0000000200)='./file0/bus\x00', &(0x7f00000001c0)='sysfs\x00', 0x0, 0x0) chroot(&(0x7f0000000040)='./file0/bus\x00') pivot_root(&(0x7f0000000080)='./file0\x00', &(0x7f0000000140)='./file0\x00') r0 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r1, 0x0) syz_mount_image$omfs(&(0x7f0000000180), &(0x7f0000000240)='./file0\x00', 0x1c, 0x1, &(0x7f0000000340)=[{&(0x7f0000000280)="da1805b4b38c25ef8901a2b569a32f4bdeb32795e2ea958bb6b40247f569e8200e7c5edc8674468cddc6de190c336bb7d55a5929ff430f82b2ea70571b464d6183ddb1002f28570b848e21f573c61d30752f27d9dd97f39e5ff1c78b883b69823f9d9ea5da4cbc1b3faded3df5a7907145f4818632c1a306ae93b752adbad31256a8c5af8e4be12dd813f2a8f327a1ccbf1e6b7586dd575820983d7080125e720a4ef944781a92b9ad5b24d9050e2f95a563a61c35648f7d", 0xb8, 0xf257}], 0x91200a, &(0x7f0000000380)={[{}, {'G,^&'}, {'sysfs\x00'}, {'sysfs\x00'}, {'][['}, {'/'}, {}], [{@fsmagic={'fsmagic', 0x3d, 0x5}}, {@euid_lt={'euid<', r1}}, {@appraise}, {@obj_role={'obj_role', 0x3d, '*\'.|'}}, {@smackfshat={'smackfshat', 0x3d, 'sysfs\x00'}}, {@permit_directio}]}) 07:52:44 executing program 2: syz_clone(0x8000000, 0x0, 0x0, 0x0, 0x0, &(0x7f0000001280)="55809e3cd6e46c56c26baa60bcf20da8415b1c5a4ba490bb35e64b860a8b6080a922194198aca5d7ef7d4ca5aa79ca7969af642396d57d05bf98ff2aa30be85782e0594974e236a99ea6cf991171dce91a1e7ed3d32334a56f98cdfefa0300274987ed5a9c08a873dab2f705efdf0aabd85f27a07d1d73fc531c66bc6d253e921f13de82f25dc01e936376b13162728f15efc5f0e914f7fcbed8c34f3803decac5a751b2f7ac8d185e8b5544d97d93b816417d315014a0f6dcd9f34f5288a42cf681f9bfcda8692d482eeb32f2c6d248dc203d0a5aeea4e8ef38accc4e590667bc2101bf16f6d65349bdae25374e98a13f8015c806dc41469f593a63058593d89b8dc6c1f13a8d183dfd8171148e86bb2f24a4b4d38b0cd53954a29775ef6dc5cfd11c8b71f8684fa79ff8e9b034c75a5a36c0f6a5804d691610935744669d16256ed5118cab4936a7884fd988678c6139fbddd1ee0bf0cdc85e6874fc808644377049acf2b153c6c8128fcbddc716badd3260dbbcc0d6b6f36f0fd9bedc4bc54cb0ae023c0302be6449f8ad031fba8de1a5105c69a6daf798e39b1cfcbde25347fc90aa991b51da77d19749a408a0a51a8c67273a9ddbe9703b6baf1036f8dcde854abb9a4c5b64eea12a9a9395356126e14f1a6ef8e2682a535b97d0e0724c6e38e8cd0087ff4b9197bfad2f2d8c0176f03342c4409ce3da6f0bed58f3ede91d0928f89aebc9182b7177135d136017b3abe7362b0052225bdf359c30dd19ef1a85c60757da1bdc2ad69e5a8243485d15bf7586d9892e64b956456b861a291e6a4bec5223eb260038411a0194cd2f1b7f4f82e792a70b500a01f9b55234e7e2e1d737b3b55a61b23872be25670a29c8a054ca9550836d89ad149899573e48bfdcf674f9876298c6333f14b9528956b474b0d445d8ba09c25664749bb8ec773d6e3bef843ea04f789d687dac8dd9a6fc71c6cf64cdcec0c07244cf914ca52fea2d08e7042fe210b69b68405a8f1ae2d13c0625c7d90d48ae80545e97c0d2285575046341772f1676cca1048df94270873b3328d2e2f883bd2455e6f8b10df751a8c8a22bee5159fa6f30b3e56aebac042b9a3a790d3ae1a5f21fc0c99b023f5699ac6bb5df942e9b51471227630326f50f589021f6fbc30b15d6a2ecb388ab047f177e8b7cafdd7821687c7cba1ebb699f7f13f32e6531c65a73a41f8727a6caa94610732120bf494d8b730e43d9f01706868b0b3ec1309b07db0a3414d4cff999bddf3c8db9d21428a5fe48ce1e98a2f59ded1a7ad5cbaed6c796581fef9f7c2349c160f122f0b14aa63dfd02454db0384b0cdd902f6d18d606dd7a2d141edd6dbb72c216219489d20210ad59625f0d1c8ee3a4c405980325aa41ff37dadf2e82eb0962cbdcccadf8790262b77b6009fb8561cde85226af5a67bd014adc96b884ccdec1ed33d2fa8fbb9e8b0051b312de0fefdcc8ca3bc936dadfc31c63c88b897556d4c5689ed0471cba545ed1646537e8c6d9adc2fd59eeacdee208d54f942df72591a8f54755a2d584d2193f8a22f5b25943cc1993b8e72d55d470a808d872c777addff87e5d37d1860232e73f5a76917c3c7473431b288328a3ec5cc80b9dcd8de3e65a9e5b72a5358d785d32e5b80f44b8c6bc1d8c6b6e118463f83d02ede2ef1005a1d503eff0c82a264f0b1fcba5305408fc72fab2435b8f32ea272e8870ffc138f2e1a68b952c448456dcbf313750c34583aa429d6b9c67eba1223c0491886b065ccbcc43396394888e8f54df5630e11dd59e23116d15bb4e2eb8ce45ea0aa06e37cac418d7144adaf0d8077e5330ac8fadf4453f5f4dea30303ce11ac6131fbfd880d63177346fdefe350492af3d2fe20e171f24a6b37b268726d96a9b2a3e09c439c9fbf33ad825795d8bc855c908892cb36caa88cd35df119132ea97de4795251402e89b12bfbf1dac3373ac4084e8c19d707cf89b2105723dd807e1475cd0a30e94633aab8ba61251d7632dee84dfaa65b4311491e8162362b1fc379bc167a4343ff4e7ebcca31f61dc8101d51e763767307694105052cd1ab566dc195174c845c08625529f6923022eb4147c3e83698ee98196c941195450767c1074dd7c1898d2e89cb46a86834317d9f1ab0240d10ba293da918284280ab29ea1b721040d86e8c94e6a18009cdff11a51c89bcfdc50a1cbf552415ef9cd46c3f11646cd2436c747500ca64d8f3d5870fe6ad82558dca68172766b49be2db7ef9b12090cafbc0f9927086af68690215fcb6912902f739330b8f584b4bb31e157a617b63b5c2642284814cd8693237042da74a612d0ee4bdcc85f2f2388a935a9ca8106ed8791e58d374cfaf269d875c1cdbbf41ecefcfd41411db360f6a67fcf88be977927ff0889b5e6ab28a0455764557a67dafb5c1c6c49bb5b74acf8d3a4f9afb516f4949f01fd96433891279047e3188dc5b7e36e44afc83efc312e9ffb42f7629921c4008fb623419f4c390885c0c83b999aa50341fa201763c48531fac902b0a416d5fa935c04b8d29048d558cff5bf1e7608382c24de9c0228cb67611a13018db182db36f83ad6983bb8ff7e13b45bca7767d433e3b8f7476fcb41eaf8697035f1241fe0e407fef9d9120d0e207c2fdeaad2cd7dafe25799af55d60c696bd74a5af48c6b4403cf748dc2b0348852a76430a166a1753344fec2743e3656f9347f93a61fc211373d2d588c3be5e7f9641504a7b68b40b2738119424211ec0cc4b85897f7f07b1a422cbd816fd4989048c32c93aa9156ebc6bdb9d32fef439d0f8ceffd44b77f097b7921e06b80e57d9776b46511979c1e9bb576692e718e3fe930d44c46a8ef3a6f504e0991cdeac6d70cffd5f615219e3a6501fe353f208230dfced999ea2cc7c436c4a10732cfe778e70c464c8ea4ad5685ec46aeb17120698863378f5e7ec447c005567f7cdd58966a1c9a03710039542ae8b2350ff2f03074624a5070e74e3f7b8b87a53295fbaa414093b8f972678c27048bb0aec542803d65939c1ce7c7e3f478a07027d4053ab49bfcbf81bd8662c942d385a14acf20cc9bf8e9b6ae1b81d43b1be53ca02e1e8d5b392892387d81fc5b107cd6f7f10614d11440dd94aba8f9123ba10d7bff9df42cebc8b0e500cefd5e9ed916ec4fcca4ea6fbbf3a5237159e129150a64e9b0df7b3ada0d17ae2d0423578a3502ec6a1f0899f248e49611048eec2bfc2c835eb72cd18e88c6a39b65f7cdd81a8c8140fe0c075eacfbcdc7dbaa59638bba885c2b3bea46e3a6883b712e984500e285fe6d7cab474925e7e5e7ac7c8e91cafee6216bd27b3e26bdc079eea451c27340f2b82e1c29ba9542d9a064f038f6d82d8acb19668c4a91feb10300bd816e35469fc0173b2715fe2a391c6fdae47fa38560f7459dc0c1fa84ca0bbfe0018a3bd593eb367632b7bc941e9e8141519955a6999833702bcc6fa663f09f7d06dda610640fb27b1a0d9937775a0e681e9c5326cfb0e69f91f0c0eb44574fe8470b79534af7e9b8570db4b5745cc00ed3616993b3fd4551113026e92134ce1f606b03986843869afcec4555dc86905e3c722f67016fc6be2433fa57172a47d0fd1709f13cb64e24c209a308d058e667a170abd4446c91b698b597c28a80aeda48a629c9144c2980a2c6ed22015d519a192b7e7afbb2d28d43e467c19d5b51dbee1dd0b32eba6db27b6b78960d0e827f713b894b4cf18e25314b59d0a7da9f99305978080c58a5b351b811563476a408f05155ad2dab0763cacbc255af26631d8c55a00d0dc42fd5fc3f854244cf613f5cdee3d140af863ae833f110bf0650b751448a861bfce383e1121bae21ee7844b09bd95052a4a36a758c74265e7be6bf16e4ded463344482bb78b7a3e0bdf7c00f1c10b407e5f4a83a1593167fb72f46af1e31895f4ff62e07bf4ca8bd5d50b45c009a2225c47dae2c3569c65137960c353463357bd383079cb8dea3512965e9de7917a6e668a217d4a80972062ef7c07d8dc078782fdc4daa3dd8091c6baac4e4ad90d9a99086048db9741a2624b4dccf1b17e999034bc4d5287a78c52b477cd81ba02f6a5b8bfb3b410e13fb05db5b99fdbdc94959f8edd12d1820ab52340225eae1d5344843eb96f8404dc8630eea08d2d6531aa9574facefb2a73d5ca2f1ae5654872f7996ab1323fc45bc3274b301d01ed58a6fcbb0f57e76cab123f689ad2971145134636fce7311cdb122acfab3e5e2781169e0ca7f74b6ae42cd55ca3fba693fcca9d20443b6fd82af9f9df94b4af2a3a03e5c2760f6a9b1b501f981e005c5cb2293bf21fb7765b0985dda56920210ff32d73f97bbc66de02160a0b4a9885a32e6627215f75ca423faa111adf458cc619ecf21f924885e7ecec73dcb21e6217375be80ed7ed127fa3eeb8b0b30e746f81d302a83f0d30f51a0b783f04eff83185860c270f8d07f92a30dfc4594e10cdde5b9804e05de49de6ce26c7dcb44d10236da1091a268efa2a15a2c7da94fb3f6215ec8e5b1831a41aa19fd2715864cd206ed379a3314b050028e38910e7f0a82419d2c11168cb90a533fb2e6ef8b1b6bc61994fcfb4e4e1ea550bd27e226327e6df6e8b427e0c94643562a9c4b0892102418ccaa9541c966d5a6ebe120e0c77703fb7ece43c8f9415210defad82e1c32522679455a520769b705b84ac56a8be0c70517a0341725879f11a28af26b5363a3d542b52330edcb5c0820b698875cbe672ae42d8eaf0084e1f26121c9050cd44792785b0eb79fdd36fe0dede9527080c36bed88adca79e5588e9fe70bcb0a6cbd9adf57b95a9a618936c4b824b135feebdc675e28d673d0bc08f6dbbeab88f34688d154f60f51500d64a2e90b8c") 07:52:44 executing program 5: r0 = openat$vmci(0xffffffffffffff9c, &(0x7f0000000a00), 0x2, 0x0) ioctl$IOCTL_VMCI_VERSION2(r0, 0x7a7, &(0x7f0000000a40)=0x80000) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a0, &(0x7f0000000180)={@hyper}) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a4, 0x0) 07:52:45 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000040), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000380)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_SET_MCAST_RATE(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000180)={0x1c, r1, 0x3, 0x0, 0x0, {{}, {@val={0x8, 0x3, r3}, @void}}}, 0x1c}}, 0x0) 07:52:45 executing program 0: mkdir(&(0x7f0000000100)='./file0\x00', 0x0) open(&(0x7f0000000000)='./file0\x00', 0x38d040, 0x82) (async) mount(0x0, &(0x7f0000027000)='./file0\x00', &(0x7f00000000c0)='sysfs\x00', 0x0, 0x0) (async) mount(0x0, &(0x7f0000000200)='./file0/bus\x00', &(0x7f00000001c0)='sysfs\x00', 0x0, 0x0) chroot(&(0x7f0000000040)='./file0/bus\x00') (async) pivot_root(&(0x7f0000000080)='./file0\x00', &(0x7f0000000140)='./file0\x00') (async) r0 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r1, 0x0) syz_mount_image$omfs(&(0x7f0000000180), &(0x7f0000000240)='./file0\x00', 0x1c, 0x1, &(0x7f0000000340)=[{&(0x7f0000000280)="da1805b4b38c25ef8901a2b569a32f4bdeb32795e2ea958bb6b40247f569e8200e7c5edc8674468cddc6de190c336bb7d55a5929ff430f82b2ea70571b464d6183ddb1002f28570b848e21f573c61d30752f27d9dd97f39e5ff1c78b883b69823f9d9ea5da4cbc1b3faded3df5a7907145f4818632c1a306ae93b752adbad31256a8c5af8e4be12dd813f2a8f327a1ccbf1e6b7586dd575820983d7080125e720a4ef944781a92b9ad5b24d9050e2f95a563a61c35648f7d", 0xb8, 0xf257}], 0x91200a, &(0x7f0000000380)={[{}, {'G,^&'}, {'sysfs\x00'}, {'sysfs\x00'}, {'][['}, {'/'}, {}], [{@fsmagic={'fsmagic', 0x3d, 0x5}}, {@euid_lt={'euid<', r1}}, {@appraise}, {@obj_role={'obj_role', 0x3d, '*\'.|'}}, {@smackfshat={'smackfshat', 0x3d, 'sysfs\x00'}}, {@permit_directio}]}) 07:52:45 executing program 2: syz_clone(0x8000000, 0x0, 0x0, 0x0, 0x0, &(0x7f0000001280)="55809e3cd6e46c56c26baa60bcf20da8415b1c5a4ba490bb35e64b860a8b6080a922194198aca5d7ef7d4ca5aa79ca7969af642396d57d05bf98ff2aa30be85782e0594974e236a99ea6cf991171dce91a1e7ed3d32334a56f98cdfefa0300274987ed5a9c08a873dab2f705efdf0aabd85f27a07d1d73fc531c66bc6d253e921f13de82f25dc01e936376b13162728f15efc5f0e914f7fcbed8c34f3803decac5a751b2f7ac8d185e8b5544d97d93b816417d315014a0f6dcd9f34f5288a42cf681f9bfcda8692d482eeb32f2c6d248dc203d0a5aeea4e8ef38accc4e590667bc2101bf16f6d65349bdae25374e98a13f8015c806dc41469f593a63058593d89b8dc6c1f13a8d183dfd8171148e86bb2f24a4b4d38b0cd53954a29775ef6dc5cfd11c8b71f8684fa79ff8e9b034c75a5a36c0f6a5804d691610935744669d16256ed5118cab4936a7884fd988678c6139fbddd1ee0bf0cdc85e6874fc808644377049acf2b153c6c8128fcbddc716badd3260dbbcc0d6b6f36f0fd9bedc4bc54cb0ae023c0302be6449f8ad031fba8de1a5105c69a6daf798e39b1cfcbde25347fc90aa991b51da77d19749a408a0a51a8c67273a9ddbe9703b6baf1036f8dcde854abb9a4c5b64eea12a9a9395356126e14f1a6ef8e2682a535b97d0e0724c6e38e8cd0087ff4b9197bfad2f2d8c0176f03342c4409ce3da6f0bed58f3ede91d0928f89aebc9182b7177135d136017b3abe7362b0052225bdf359c30dd19ef1a85c60757da1bdc2ad69e5a8243485d15bf7586d9892e64b956456b861a291e6a4bec5223eb260038411a0194cd2f1b7f4f82e792a70b500a01f9b55234e7e2e1d737b3b55a61b23872be25670a29c8a054ca9550836d89ad149899573e48bfdcf674f9876298c6333f14b9528956b474b0d445d8ba09c25664749bb8ec773d6e3bef843ea04f789d687dac8dd9a6fc71c6cf64cdcec0c07244cf914ca52fea2d08e7042fe210b69b68405a8f1ae2d13c0625c7d90d48ae80545e97c0d2285575046341772f1676cca1048df94270873b3328d2e2f883bd2455e6f8b10df751a8c8a22bee5159fa6f30b3e56aebac042b9a3a790d3ae1a5f21fc0c99b023f5699ac6bb5df942e9b51471227630326f50f589021f6fbc30b15d6a2ecb388ab047f177e8b7cafdd7821687c7cba1ebb699f7f13f32e6531c65a73a41f8727a6caa94610732120bf494d8b730e43d9f01706868b0b3ec1309b07db0a3414d4cff999bddf3c8db9d21428a5fe48ce1e98a2f59ded1a7ad5cbaed6c796581fef9f7c2349c160f122f0b14aa63dfd02454db0384b0cdd902f6d18d606dd7a2d141edd6dbb72c216219489d20210ad59625f0d1c8ee3a4c405980325aa41ff37dadf2e82eb0962cbdcccadf8790262b77b6009fb8561cde85226af5a67bd014adc96b884ccdec1ed33d2fa8fbb9e8b0051b312de0fefdcc8ca3bc936dadfc31c63c88b897556d4c5689ed0471cba545ed1646537e8c6d9adc2fd59eeacdee208d54f942df72591a8f54755a2d584d2193f8a22f5b25943cc1993b8e72d55d470a808d872c777addff87e5d37d1860232e73f5a76917c3c7473431b288328a3ec5cc80b9dcd8de3e65a9e5b72a5358d785d32e5b80f44b8c6bc1d8c6b6e118463f83d02ede2ef1005a1d503eff0c82a264f0b1fcba5305408fc72fab2435b8f32ea272e8870ffc138f2e1a68b952c448456dcbf313750c34583aa429d6b9c67eba1223c0491886b065ccbcc43396394888e8f54df5630e11dd59e23116d15bb4e2eb8ce45ea0aa06e37cac418d7144adaf0d8077e5330ac8fadf4453f5f4dea30303ce11ac6131fbfd880d63177346fdefe350492af3d2fe20e171f24a6b37b268726d96a9b2a3e09c439c9fbf33ad825795d8bc855c908892cb36caa88cd35df119132ea97de4795251402e89b12bfbf1dac3373ac4084e8c19d707cf89b2105723dd807e1475cd0a30e94633aab8ba61251d7632dee84dfaa65b4311491e8162362b1fc379bc167a4343ff4e7ebcca31f61dc8101d51e763767307694105052cd1ab566dc195174c845c08625529f6923022eb4147c3e83698ee98196c941195450767c1074dd7c1898d2e89cb46a86834317d9f1ab0240d10ba293da918284280ab29ea1b721040d86e8c94e6a18009cdff11a51c89bcfdc50a1cbf552415ef9cd46c3f11646cd2436c747500ca64d8f3d5870fe6ad82558dca68172766b49be2db7ef9b12090cafbc0f9927086af68690215fcb6912902f739330b8f584b4bb31e157a617b63b5c2642284814cd8693237042da74a612d0ee4bdcc85f2f2388a935a9ca8106ed8791e58d374cfaf269d875c1cdbbf41ecefcfd41411db360f6a67fcf88be977927ff0889b5e6ab28a0455764557a67dafb5c1c6c49bb5b74acf8d3a4f9afb516f4949f01fd96433891279047e3188dc5b7e36e44afc83efc312e9ffb42f7629921c4008fb623419f4c390885c0c83b999aa50341fa201763c48531fac902b0a416d5fa935c04b8d29048d558cff5bf1e7608382c24de9c0228cb67611a13018db182db36f83ad6983bb8ff7e13b45bca7767d433e3b8f7476fcb41eaf8697035f1241fe0e407fef9d9120d0e207c2fdeaad2cd7dafe25799af55d60c696bd74a5af48c6b4403cf748dc2b0348852a76430a166a1753344fec2743e3656f9347f93a61fc211373d2d588c3be5e7f9641504a7b68b40b2738119424211ec0cc4b85897f7f07b1a422cbd816fd4989048c32c93aa9156ebc6bdb9d32fef439d0f8ceffd44b77f097b7921e06b80e57d9776b46511979c1e9bb576692e718e3fe930d44c46a8ef3a6f504e0991cdeac6d70cffd5f615219e3a6501fe353f208230dfced999ea2cc7c436c4a10732cfe778e70c464c8ea4ad5685ec46aeb17120698863378f5e7ec447c005567f7cdd58966a1c9a03710039542ae8b2350ff2f03074624a5070e74e3f7b8b87a53295fbaa414093b8f972678c27048bb0aec542803d65939c1ce7c7e3f478a07027d4053ab49bfcbf81bd8662c942d385a14acf20cc9bf8e9b6ae1b81d43b1be53ca02e1e8d5b392892387d81fc5b107cd6f7f10614d11440dd94aba8f9123ba10d7bff9df42cebc8b0e500cefd5e9ed916ec4fcca4ea6fbbf3a5237159e129150a64e9b0df7b3ada0d17ae2d0423578a3502ec6a1f0899f248e49611048eec2bfc2c835eb72cd18e88c6a39b65f7cdd81a8c8140fe0c075eacfbcdc7dbaa59638bba885c2b3bea46e3a6883b712e984500e285fe6d7cab474925e7e5e7ac7c8e91cafee6216bd27b3e26bdc079eea451c27340f2b82e1c29ba9542d9a064f038f6d82d8acb19668c4a91feb10300bd816e35469fc0173b2715fe2a391c6fdae47fa38560f7459dc0c1fa84ca0bbfe0018a3bd593eb367632b7bc941e9e8141519955a6999833702bcc6fa663f09f7d06dda610640fb27b1a0d9937775a0e681e9c5326cfb0e69f91f0c0eb44574fe8470b79534af7e9b8570db4b5745cc00ed3616993b3fd4551113026e92134ce1f606b03986843869afcec4555dc86905e3c722f67016fc6be2433fa57172a47d0fd1709f13cb64e24c209a308d058e667a170abd4446c91b698b597c28a80aeda48a629c9144c2980a2c6ed22015d519a192b7e7afbb2d28d43e467c19d5b51dbee1dd0b32eba6db27b6b78960d0e827f713b894b4cf18e25314b59d0a7da9f99305978080c58a5b351b811563476a408f05155ad2dab0763cacbc255af26631d8c55a00d0dc42fd5fc3f854244cf613f5cdee3d140af863ae833f110bf0650b751448a861bfce383e1121bae21ee7844b09bd95052a4a36a758c74265e7be6bf16e4ded463344482bb78b7a3e0bdf7c00f1c10b407e5f4a83a1593167fb72f46af1e31895f4ff62e07bf4ca8bd5d50b45c009a2225c47dae2c3569c65137960c353463357bd383079cb8dea3512965e9de7917a6e668a217d4a80972062ef7c07d8dc078782fdc4daa3dd8091c6baac4e4ad90d9a99086048db9741a2624b4dccf1b17e999034bc4d5287a78c52b477cd81ba02f6a5b8bfb3b410e13fb05db5b99fdbdc94959f8edd12d1820ab52340225eae1d5344843eb96f8404dc8630eea08d2d6531aa9574facefb2a73d5ca2f1ae5654872f7996ab1323fc45bc3274b301d01ed58a6fcbb0f57e76cab123f689ad2971145134636fce7311cdb122acfab3e5e2781169e0ca7f74b6ae42cd55ca3fba693fcca9d20443b6fd82af9f9df94b4af2a3a03e5c2760f6a9b1b501f981e005c5cb2293bf21fb7765b0985dda56920210ff32d73f97bbc66de02160a0b4a9885a32e6627215f75ca423faa111adf458cc619ecf21f924885e7ecec73dcb21e6217375be80ed7ed127fa3eeb8b0b30e746f81d302a83f0d30f51a0b783f04eff83185860c270f8d07f92a30dfc4594e10cdde5b9804e05de49de6ce26c7dcb44d10236da1091a268efa2a15a2c7da94fb3f6215ec8e5b1831a41aa19fd2715864cd206ed379a3314b050028e38910e7f0a82419d2c11168cb90a533fb2e6ef8b1b6bc61994fcfb4e4e1ea550bd27e226327e6df6e8b427e0c94643562a9c4b0892102418ccaa9541c966d5a6ebe120e0c77703fb7ece43c8f9415210defad82e1c32522679455a520769b705b84ac56a8be0c70517a0341725879f11a28af26b5363a3d542b52330edcb5c0820b698875cbe672ae42d8eaf0084e1f26121c9050cd44792785b0eb79fdd36fe0dede9527080c36bed88adca79e5588e9fe70bcb0a6cbd9adf57b95a9a618936c4b824b135feebdc675e28d673d0bc08f6dbbeab88f34688d154f60f51500d64a2e90b8c") 07:52:45 executing program 5: r0 = openat$vmci(0xffffffffffffff9c, &(0x7f0000000a00), 0x2, 0x0) ioctl$IOCTL_VMCI_VERSION2(r0, 0x7a7, &(0x7f0000000a40)=0x80000) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a0, &(0x7f0000000180)={@hyper}) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a4, 0x0) 07:52:45 executing program 4: r0 = syz_io_uring_setup(0x184, &(0x7f00000002c0), &(0x7f0000148000/0x3000)=nil, &(0x7f0000ffc000/0x2000)=nil, &(0x7f0000000340)=0x0, &(0x7f0000000140)=0x0) syz_io_uring_submit(r1, r2, &(0x7f00000000c0)=@IORING_OP_CLOSE={0x13, 0x4}, 0x38a0) syz_io_uring_submit(r1, r2, &(0x7f0000000080)=@IORING_OP_FSYNC={0x3, 0x0, 0x0, @fd_index, 0x0, 0x0, 0x0, 0x2}, 0x0) io_uring_enter(r0, 0x6fc2, 0x0, 0x0, 0x0, 0x0) 07:52:45 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000400)={0x26, 'rng\x00', 0x0, 0x0, 'drbg_nopr_ctr_aes192\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) close(r0) close(r1) 07:52:45 executing program 0: mkdir(&(0x7f0000000100)='./file0\x00', 0x0) (async) open(&(0x7f0000000000)='./file0\x00', 0x38d040, 0x82) (async, rerun: 64) mount(0x0, &(0x7f0000027000)='./file0\x00', &(0x7f00000000c0)='sysfs\x00', 0x0, 0x0) (rerun: 64) mount(0x0, &(0x7f0000000200)='./file0/bus\x00', &(0x7f00000001c0)='sysfs\x00', 0x0, 0x0) chroot(&(0x7f0000000040)='./file0/bus\x00') pivot_root(&(0x7f0000000080)='./file0\x00', &(0x7f0000000140)='./file0\x00') (async) r0 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r1, 0x0) (async, rerun: 64) syz_mount_image$omfs(&(0x7f0000000180), &(0x7f0000000240)='./file0\x00', 0x1c, 0x1, &(0x7f0000000340)=[{&(0x7f0000000280)="da1805b4b38c25ef8901a2b569a32f4bdeb32795e2ea958bb6b40247f569e8200e7c5edc8674468cddc6de190c336bb7d55a5929ff430f82b2ea70571b464d6183ddb1002f28570b848e21f573c61d30752f27d9dd97f39e5ff1c78b883b69823f9d9ea5da4cbc1b3faded3df5a7907145f4818632c1a306ae93b752adbad31256a8c5af8e4be12dd813f2a8f327a1ccbf1e6b7586dd575820983d7080125e720a4ef944781a92b9ad5b24d9050e2f95a563a61c35648f7d", 0xb8, 0xf257}], 0x91200a, &(0x7f0000000380)={[{}, {'G,^&'}, {'sysfs\x00'}, {'sysfs\x00'}, {'][['}, {'/'}, {}], [{@fsmagic={'fsmagic', 0x3d, 0x5}}, {@euid_lt={'euid<', r1}}, {@appraise}, {@obj_role={'obj_role', 0x3d, '*\'.|'}}, {@smackfshat={'smackfshat', 0x3d, 'sysfs\x00'}}, {@permit_directio}]}) (rerun: 64) 07:52:45 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) setsockopt$netlink_NETLINK_TX_RING(r0, 0x10e, 0xc, &(0x7f0000000000)={0xe4}, 0x10) sendmsg$nl_route(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000280)=@getlink={0x20, 0x12, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x800}}, 0x20}}, 0x0) 07:52:46 executing program 5: r0 = openat$vmci(0xffffffffffffff9c, &(0x7f0000000a00), 0x2, 0x0) ioctl$IOCTL_VMCI_VERSION2(r0, 0x7a7, &(0x7f0000000a40)=0x80000) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a0, &(0x7f0000000180)={@hyper}) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a4, 0x0) 07:52:46 executing program 2: syz_clone(0x8000000, 0x0, 0x0, 0x0, 0x0, &(0x7f0000001280)="55809e3cd6e46c56c26baa60bcf20da8415b1c5a4ba490bb35e64b860a8b6080a922194198aca5d7ef7d4ca5aa79ca7969af642396d57d05bf98ff2aa30be85782e0594974e236a99ea6cf991171dce91a1e7ed3d32334a56f98cdfefa0300274987ed5a9c08a873dab2f705efdf0aabd85f27a07d1d73fc531c66bc6d253e921f13de82f25dc01e936376b13162728f15efc5f0e914f7fcbed8c34f3803decac5a751b2f7ac8d185e8b5544d97d93b816417d315014a0f6dcd9f34f5288a42cf681f9bfcda8692d482eeb32f2c6d248dc203d0a5aeea4e8ef38accc4e590667bc2101bf16f6d65349bdae25374e98a13f8015c806dc41469f593a63058593d89b8dc6c1f13a8d183dfd8171148e86bb2f24a4b4d38b0cd53954a29775ef6dc5cfd11c8b71f8684fa79ff8e9b034c75a5a36c0f6a5804d691610935744669d16256ed5118cab4936a7884fd988678c6139fbddd1ee0bf0cdc85e6874fc808644377049acf2b153c6c8128fcbddc716badd3260dbbcc0d6b6f36f0fd9bedc4bc54cb0ae023c0302be6449f8ad031fba8de1a5105c69a6daf798e39b1cfcbde25347fc90aa991b51da77d19749a408a0a51a8c67273a9ddbe9703b6baf1036f8dcde854abb9a4c5b64eea12a9a9395356126e14f1a6ef8e2682a535b97d0e0724c6e38e8cd0087ff4b9197bfad2f2d8c0176f03342c4409ce3da6f0bed58f3ede91d0928f89aebc9182b7177135d136017b3abe7362b0052225bdf359c30dd19ef1a85c60757da1bdc2ad69e5a8243485d15bf7586d9892e64b956456b861a291e6a4bec5223eb260038411a0194cd2f1b7f4f82e792a70b500a01f9b55234e7e2e1d737b3b55a61b23872be25670a29c8a054ca9550836d89ad149899573e48bfdcf674f9876298c6333f14b9528956b474b0d445d8ba09c25664749bb8ec773d6e3bef843ea04f789d687dac8dd9a6fc71c6cf64cdcec0c07244cf914ca52fea2d08e7042fe210b69b68405a8f1ae2d13c0625c7d90d48ae80545e97c0d2285575046341772f1676cca1048df94270873b3328d2e2f883bd2455e6f8b10df751a8c8a22bee5159fa6f30b3e56aebac042b9a3a790d3ae1a5f21fc0c99b023f5699ac6bb5df942e9b51471227630326f50f589021f6fbc30b15d6a2ecb388ab047f177e8b7cafdd7821687c7cba1ebb699f7f13f32e6531c65a73a41f8727a6caa94610732120bf494d8b730e43d9f01706868b0b3ec1309b07db0a3414d4cff999bddf3c8db9d21428a5fe48ce1e98a2f59ded1a7ad5cbaed6c796581fef9f7c2349c160f122f0b14aa63dfd02454db0384b0cdd902f6d18d606dd7a2d141edd6dbb72c216219489d20210ad59625f0d1c8ee3a4c405980325aa41ff37dadf2e82eb0962cbdcccadf8790262b77b6009fb8561cde85226af5a67bd014adc96b884ccdec1ed33d2fa8fbb9e8b0051b312de0fefdcc8ca3bc936dadfc31c63c88b897556d4c5689ed0471cba545ed1646537e8c6d9adc2fd59eeacdee208d54f942df72591a8f54755a2d584d2193f8a22f5b25943cc1993b8e72d55d470a808d872c777addff87e5d37d1860232e73f5a76917c3c7473431b288328a3ec5cc80b9dcd8de3e65a9e5b72a5358d785d32e5b80f44b8c6bc1d8c6b6e118463f83d02ede2ef1005a1d503eff0c82a264f0b1fcba5305408fc72fab2435b8f32ea272e8870ffc138f2e1a68b952c448456dcbf313750c34583aa429d6b9c67eba1223c0491886b065ccbcc43396394888e8f54df5630e11dd59e23116d15bb4e2eb8ce45ea0aa06e37cac418d7144adaf0d8077e5330ac8fadf4453f5f4dea30303ce11ac6131fbfd880d63177346fdefe350492af3d2fe20e171f24a6b37b268726d96a9b2a3e09c439c9fbf33ad825795d8bc855c908892cb36caa88cd35df119132ea97de4795251402e89b12bfbf1dac3373ac4084e8c19d707cf89b2105723dd807e1475cd0a30e94633aab8ba61251d7632dee84dfaa65b4311491e8162362b1fc379bc167a4343ff4e7ebcca31f61dc8101d51e763767307694105052cd1ab566dc195174c845c08625529f6923022eb4147c3e83698ee98196c941195450767c1074dd7c1898d2e89cb46a86834317d9f1ab0240d10ba293da918284280ab29ea1b721040d86e8c94e6a18009cdff11a51c89bcfdc50a1cbf552415ef9cd46c3f11646cd2436c747500ca64d8f3d5870fe6ad82558dca68172766b49be2db7ef9b12090cafbc0f9927086af68690215fcb6912902f739330b8f584b4bb31e157a617b63b5c2642284814cd8693237042da74a612d0ee4bdcc85f2f2388a935a9ca8106ed8791e58d374cfaf269d875c1cdbbf41ecefcfd41411db360f6a67fcf88be977927ff0889b5e6ab28a0455764557a67dafb5c1c6c49bb5b74acf8d3a4f9afb516f4949f01fd96433891279047e3188dc5b7e36e44afc83efc312e9ffb42f7629921c4008fb623419f4c390885c0c83b999aa50341fa201763c48531fac902b0a416d5fa935c04b8d29048d558cff5bf1e7608382c24de9c0228cb67611a13018db182db36f83ad6983bb8ff7e13b45bca7767d433e3b8f7476fcb41eaf8697035f1241fe0e407fef9d9120d0e207c2fdeaad2cd7dafe25799af55d60c696bd74a5af48c6b4403cf748dc2b0348852a76430a166a1753344fec2743e3656f9347f93a61fc211373d2d588c3be5e7f9641504a7b68b40b2738119424211ec0cc4b85897f7f07b1a422cbd816fd4989048c32c93aa9156ebc6bdb9d32fef439d0f8ceffd44b77f097b7921e06b80e57d9776b46511979c1e9bb576692e718e3fe930d44c46a8ef3a6f504e0991cdeac6d70cffd5f615219e3a6501fe353f208230dfced999ea2cc7c436c4a10732cfe778e70c464c8ea4ad5685ec46aeb17120698863378f5e7ec447c005567f7cdd58966a1c9a03710039542ae8b2350ff2f03074624a5070e74e3f7b8b87a53295fbaa414093b8f972678c27048bb0aec542803d65939c1ce7c7e3f478a07027d4053ab49bfcbf81bd8662c942d385a14acf20cc9bf8e9b6ae1b81d43b1be53ca02e1e8d5b392892387d81fc5b107cd6f7f10614d11440dd94aba8f9123ba10d7bff9df42cebc8b0e500cefd5e9ed916ec4fcca4ea6fbbf3a5237159e129150a64e9b0df7b3ada0d17ae2d0423578a3502ec6a1f0899f248e49611048eec2bfc2c835eb72cd18e88c6a39b65f7cdd81a8c8140fe0c075eacfbcdc7dbaa59638bba885c2b3bea46e3a6883b712e984500e285fe6d7cab474925e7e5e7ac7c8e91cafee6216bd27b3e26bdc079eea451c27340f2b82e1c29ba9542d9a064f038f6d82d8acb19668c4a91feb10300bd816e35469fc0173b2715fe2a391c6fdae47fa38560f7459dc0c1fa84ca0bbfe0018a3bd593eb367632b7bc941e9e8141519955a6999833702bcc6fa663f09f7d06dda610640fb27b1a0d9937775a0e681e9c5326cfb0e69f91f0c0eb44574fe8470b79534af7e9b8570db4b5745cc00ed3616993b3fd4551113026e92134ce1f606b03986843869afcec4555dc86905e3c722f67016fc6be2433fa57172a47d0fd1709f13cb64e24c209a308d058e667a170abd4446c91b698b597c28a80aeda48a629c9144c2980a2c6ed22015d519a192b7e7afbb2d28d43e467c19d5b51dbee1dd0b32eba6db27b6b78960d0e827f713b894b4cf18e25314b59d0a7da9f99305978080c58a5b351b811563476a408f05155ad2dab0763cacbc255af26631d8c55a00d0dc42fd5fc3f854244cf613f5cdee3d140af863ae833f110bf0650b751448a861bfce383e1121bae21ee7844b09bd95052a4a36a758c74265e7be6bf16e4ded463344482bb78b7a3e0bdf7c00f1c10b407e5f4a83a1593167fb72f46af1e31895f4ff62e07bf4ca8bd5d50b45c009a2225c47dae2c3569c65137960c353463357bd383079cb8dea3512965e9de7917a6e668a217d4a80972062ef7c07d8dc078782fdc4daa3dd8091c6baac4e4ad90d9a99086048db9741a2624b4dccf1b17e999034bc4d5287a78c52b477cd81ba02f6a5b8bfb3b410e13fb05db5b99fdbdc94959f8edd12d1820ab52340225eae1d5344843eb96f8404dc8630eea08d2d6531aa9574facefb2a73d5ca2f1ae5654872f7996ab1323fc45bc3274b301d01ed58a6fcbb0f57e76cab123f689ad2971145134636fce7311cdb122acfab3e5e2781169e0ca7f74b6ae42cd55ca3fba693fcca9d20443b6fd82af9f9df94b4af2a3a03e5c2760f6a9b1b501f981e005c5cb2293bf21fb7765b0985dda56920210ff32d73f97bbc66de02160a0b4a9885a32e6627215f75ca423faa111adf458cc619ecf21f924885e7ecec73dcb21e6217375be80ed7ed127fa3eeb8b0b30e746f81d302a83f0d30f51a0b783f04eff83185860c270f8d07f92a30dfc4594e10cdde5b9804e05de49de6ce26c7dcb44d10236da1091a268efa2a15a2c7da94fb3f6215ec8e5b1831a41aa19fd2715864cd206ed379a3314b050028e38910e7f0a82419d2c11168cb90a533fb2e6ef8b1b6bc61994fcfb4e4e1ea550bd27e226327e6df6e8b427e0c94643562a9c4b0892102418ccaa9541c966d5a6ebe120e0c77703fb7ece43c8f9415210defad82e1c32522679455a520769b705b84ac56a8be0c70517a0341725879f11a28af26b5363a3d542b52330edcb5c0820b698875cbe672ae42d8eaf0084e1f26121c9050cd44792785b0eb79fdd36fe0dede9527080c36bed88adca79e5588e9fe70bcb0a6cbd9adf57b95a9a618936c4b824b135feebdc675e28d673d0bc08f6dbbeab88f34688d154f60f51500d64a2e90b8c") syz_clone(0x8000000, 0x0, 0x0, 0x0, 0x0, &(0x7f0000001280)="55809e3cd6e46c56c26baa60bcf20da8415b1c5a4ba490bb35e64b860a8b6080a922194198aca5d7ef7d4ca5aa79ca7969af642396d57d05bf98ff2aa30be85782e0594974e236a99ea6cf991171dce91a1e7ed3d32334a56f98cdfefa0300274987ed5a9c08a873dab2f705efdf0aabd85f27a07d1d73fc531c66bc6d253e921f13de82f25dc01e936376b13162728f15efc5f0e914f7fcbed8c34f3803decac5a751b2f7ac8d185e8b5544d97d93b816417d315014a0f6dcd9f34f5288a42cf681f9bfcda8692d482eeb32f2c6d248dc203d0a5aeea4e8ef38accc4e590667bc2101bf16f6d65349bdae25374e98a13f8015c806dc41469f593a63058593d89b8dc6c1f13a8d183dfd8171148e86bb2f24a4b4d38b0cd53954a29775ef6dc5cfd11c8b71f8684fa79ff8e9b034c75a5a36c0f6a5804d691610935744669d16256ed5118cab4936a7884fd988678c6139fbddd1ee0bf0cdc85e6874fc808644377049acf2b153c6c8128fcbddc716badd3260dbbcc0d6b6f36f0fd9bedc4bc54cb0ae023c0302be6449f8ad031fba8de1a5105c69a6daf798e39b1cfcbde25347fc90aa991b51da77d19749a408a0a51a8c67273a9ddbe9703b6baf1036f8dcde854abb9a4c5b64eea12a9a9395356126e14f1a6ef8e2682a535b97d0e0724c6e38e8cd0087ff4b9197bfad2f2d8c0176f03342c4409ce3da6f0bed58f3ede91d0928f89aebc9182b7177135d136017b3abe7362b0052225bdf359c30dd19ef1a85c60757da1bdc2ad69e5a8243485d15bf7586d9892e64b956456b861a291e6a4bec5223eb260038411a0194cd2f1b7f4f82e792a70b500a01f9b55234e7e2e1d737b3b55a61b23872be25670a29c8a054ca9550836d89ad149899573e48bfdcf674f9876298c6333f14b9528956b474b0d445d8ba09c25664749bb8ec773d6e3bef843ea04f789d687dac8dd9a6fc71c6cf64cdcec0c07244cf914ca52fea2d08e7042fe210b69b68405a8f1ae2d13c0625c7d90d48ae80545e97c0d2285575046341772f1676cca1048df94270873b3328d2e2f883bd2455e6f8b10df751a8c8a22bee5159fa6f30b3e56aebac042b9a3a790d3ae1a5f21fc0c99b023f5699ac6bb5df942e9b51471227630326f50f589021f6fbc30b15d6a2ecb388ab047f177e8b7cafdd7821687c7cba1ebb699f7f13f32e6531c65a73a41f8727a6caa94610732120bf494d8b730e43d9f01706868b0b3ec1309b07db0a3414d4cff999bddf3c8db9d21428a5fe48ce1e98a2f59ded1a7ad5cbaed6c796581fef9f7c2349c160f122f0b14aa63dfd02454db0384b0cdd902f6d18d606dd7a2d141edd6dbb72c216219489d20210ad59625f0d1c8ee3a4c405980325aa41ff37dadf2e82eb0962cbdcccadf8790262b77b6009fb8561cde85226af5a67bd014adc96b884ccdec1ed33d2fa8fbb9e8b0051b312de0fefdcc8ca3bc936dadfc31c63c88b897556d4c5689ed0471cba545ed1646537e8c6d9adc2fd59eeacdee208d54f942df72591a8f54755a2d584d2193f8a22f5b25943cc1993b8e72d55d470a808d872c777addff87e5d37d1860232e73f5a76917c3c7473431b288328a3ec5cc80b9dcd8de3e65a9e5b72a5358d785d32e5b80f44b8c6bc1d8c6b6e118463f83d02ede2ef1005a1d503eff0c82a264f0b1fcba5305408fc72fab2435b8f32ea272e8870ffc138f2e1a68b952c448456dcbf313750c34583aa429d6b9c67eba1223c0491886b065ccbcc43396394888e8f54df5630e11dd59e23116d15bb4e2eb8ce45ea0aa06e37cac418d7144adaf0d8077e5330ac8fadf4453f5f4dea30303ce11ac6131fbfd880d63177346fdefe350492af3d2fe20e171f24a6b37b268726d96a9b2a3e09c439c9fbf33ad825795d8bc855c908892cb36caa88cd35df119132ea97de4795251402e89b12bfbf1dac3373ac4084e8c19d707cf89b2105723dd807e1475cd0a30e94633aab8ba61251d7632dee84dfaa65b4311491e8162362b1fc379bc167a4343ff4e7ebcca31f61dc8101d51e763767307694105052cd1ab566dc195174c845c08625529f6923022eb4147c3e83698ee98196c941195450767c1074dd7c1898d2e89cb46a86834317d9f1ab0240d10ba293da918284280ab29ea1b721040d86e8c94e6a18009cdff11a51c89bcfdc50a1cbf552415ef9cd46c3f11646cd2436c747500ca64d8f3d5870fe6ad82558dca68172766b49be2db7ef9b12090cafbc0f9927086af68690215fcb6912902f739330b8f584b4bb31e157a617b63b5c2642284814cd8693237042da74a612d0ee4bdcc85f2f2388a935a9ca8106ed8791e58d374cfaf269d875c1cdbbf41ecefcfd41411db360f6a67fcf88be977927ff0889b5e6ab28a0455764557a67dafb5c1c6c49bb5b74acf8d3a4f9afb516f4949f01fd96433891279047e3188dc5b7e36e44afc83efc312e9ffb42f7629921c4008fb623419f4c390885c0c83b999aa50341fa201763c48531fac902b0a416d5fa935c04b8d29048d558cff5bf1e7608382c24de9c0228cb67611a13018db182db36f83ad6983bb8ff7e13b45bca7767d433e3b8f7476fcb41eaf8697035f1241fe0e407fef9d9120d0e207c2fdeaad2cd7dafe25799af55d60c696bd74a5af48c6b4403cf748dc2b0348852a76430a166a1753344fec2743e3656f9347f93a61fc211373d2d588c3be5e7f9641504a7b68b40b2738119424211ec0cc4b85897f7f07b1a422cbd816fd4989048c32c93aa9156ebc6bdb9d32fef439d0f8ceffd44b77f097b7921e06b80e57d9776b46511979c1e9bb576692e718e3fe930d44c46a8ef3a6f504e0991cdeac6d70cffd5f615219e3a6501fe353f208230dfced999ea2cc7c436c4a10732cfe778e70c464c8ea4ad5685ec46aeb17120698863378f5e7ec447c005567f7cdd58966a1c9a03710039542ae8b2350ff2f03074624a5070e74e3f7b8b87a53295fbaa414093b8f972678c27048bb0aec542803d65939c1ce7c7e3f478a07027d4053ab49bfcbf81bd8662c942d385a14acf20cc9bf8e9b6ae1b81d43b1be53ca02e1e8d5b392892387d81fc5b107cd6f7f10614d11440dd94aba8f9123ba10d7bff9df42cebc8b0e500cefd5e9ed916ec4fcca4ea6fbbf3a5237159e129150a64e9b0df7b3ada0d17ae2d0423578a3502ec6a1f0899f248e49611048eec2bfc2c835eb72cd18e88c6a39b65f7cdd81a8c8140fe0c075eacfbcdc7dbaa59638bba885c2b3bea46e3a6883b712e984500e285fe6d7cab474925e7e5e7ac7c8e91cafee6216bd27b3e26bdc079eea451c27340f2b82e1c29ba9542d9a064f038f6d82d8acb19668c4a91feb10300bd816e35469fc0173b2715fe2a391c6fdae47fa38560f7459dc0c1fa84ca0bbfe0018a3bd593eb367632b7bc941e9e8141519955a6999833702bcc6fa663f09f7d06dda610640fb27b1a0d9937775a0e681e9c5326cfb0e69f91f0c0eb44574fe8470b79534af7e9b8570db4b5745cc00ed3616993b3fd4551113026e92134ce1f606b03986843869afcec4555dc86905e3c722f67016fc6be2433fa57172a47d0fd1709f13cb64e24c209a308d058e667a170abd4446c91b698b597c28a80aeda48a629c9144c2980a2c6ed22015d519a192b7e7afbb2d28d43e467c19d5b51dbee1dd0b32eba6db27b6b78960d0e827f713b894b4cf18e25314b59d0a7da9f99305978080c58a5b351b811563476a408f05155ad2dab0763cacbc255af26631d8c55a00d0dc42fd5fc3f854244cf613f5cdee3d140af863ae833f110bf0650b751448a861bfce383e1121bae21ee7844b09bd95052a4a36a758c74265e7be6bf16e4ded463344482bb78b7a3e0bdf7c00f1c10b407e5f4a83a1593167fb72f46af1e31895f4ff62e07bf4ca8bd5d50b45c009a2225c47dae2c3569c65137960c353463357bd383079cb8dea3512965e9de7917a6e668a217d4a80972062ef7c07d8dc078782fdc4daa3dd8091c6baac4e4ad90d9a99086048db9741a2624b4dccf1b17e999034bc4d5287a78c52b477cd81ba02f6a5b8bfb3b410e13fb05db5b99fdbdc94959f8edd12d1820ab52340225eae1d5344843eb96f8404dc8630eea08d2d6531aa9574facefb2a73d5ca2f1ae5654872f7996ab1323fc45bc3274b301d01ed58a6fcbb0f57e76cab123f689ad2971145134636fce7311cdb122acfab3e5e2781169e0ca7f74b6ae42cd55ca3fba693fcca9d20443b6fd82af9f9df94b4af2a3a03e5c2760f6a9b1b501f981e005c5cb2293bf21fb7765b0985dda56920210ff32d73f97bbc66de02160a0b4a9885a32e6627215f75ca423faa111adf458cc619ecf21f924885e7ecec73dcb21e6217375be80ed7ed127fa3eeb8b0b30e746f81d302a83f0d30f51a0b783f04eff83185860c270f8d07f92a30dfc4594e10cdde5b9804e05de49de6ce26c7dcb44d10236da1091a268efa2a15a2c7da94fb3f6215ec8e5b1831a41aa19fd2715864cd206ed379a3314b050028e38910e7f0a82419d2c11168cb90a533fb2e6ef8b1b6bc61994fcfb4e4e1ea550bd27e226327e6df6e8b427e0c94643562a9c4b0892102418ccaa9541c966d5a6ebe120e0c77703fb7ece43c8f9415210defad82e1c32522679455a520769b705b84ac56a8be0c70517a0341725879f11a28af26b5363a3d542b52330edcb5c0820b698875cbe672ae42d8eaf0084e1f26121c9050cd44792785b0eb79fdd36fe0dede9527080c36bed88adca79e5588e9fe70bcb0a6cbd9adf57b95a9a618936c4b824b135feebdc675e28d673d0bc08f6dbbeab88f34688d154f60f51500d64a2e90b8c") (async) 07:52:46 executing program 4: r0 = openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/transaction_log\x00', 0x0, 0x0) syz_clone3(&(0x7f0000000200)={0x204a02000, 0x0, 0x0, 0x0, {}, 0x0, 0x0, 0x0, 0x0, 0x0, {r0}}, 0x58) 07:52:46 executing program 3: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) getsockopt$inet6_tcp_int(r0, 0x6, 0x5, 0x0, &(0x7f00000000c0)) 07:52:46 executing program 5: r0 = openat$vmci(0xffffffffffffff9c, &(0x7f0000000a00), 0x2, 0x0) ioctl$IOCTL_VMCI_VERSION2(r0, 0x7a7, &(0x7f0000000a40)=0x80000) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a0, &(0x7f0000000180)={@hyper}) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a4, 0x0) 07:52:46 executing program 0: syz_mount_image$ntfs(&(0x7f0000000080), &(0x7f00000000c0)='./file0\x00', 0x0, 0x0, &(0x7f0000000200), 0x0, &(0x7f0000000240)={[{@nls={'nls', 0x3d, 'none'}}]}) 07:52:46 executing program 1: r0 = socket(0x15, 0x5, 0x0) r1 = openat$autofs(0xffffffffffffff9c, &(0x7f00000001c0), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r1, 0xc0189375, &(0x7f00000000c0)={{0x1, 0x1, 0x18, r0}, './file0/../file0\x00'}) 07:52:47 executing program 4: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPSET_CMD_PROTOCOL(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)={0x14, 0x1, 0x6, 0x101}, 0x14}}, 0x0) 07:52:47 executing program 2: syz_emit_ethernet(0x7e, &(0x7f00000000c0)={@random="d7d5c0c8b6e7", @local, @void, {@ipv6={0x86dd, @generic={0x0, 0x6, '\a_i', 0x48, 0x0, 0x0, @dev, @private0, {[@srh={0x0, 0x8, 0xc2, 0x4, 0x0, 0x0, 0x0, [@dev, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @ipv4={'\x00', '\xff\xff', @dev}]}]}}}}}, 0x0) 07:52:47 executing program 3: prctl$PR_SCHED_CORE(0x3e, 0x0, 0x0, 0x0, 0x0) write$6lowpan_enable(0xffffffffffffffff, &(0x7f0000000000)='0', 0xfffffd2c) r0 = syz_io_uring_setup(0x3ede, &(0x7f00000000c0), &(0x7f0000002000/0x2000)=nil, &(0x7f0000003000/0x4000)=nil, &(0x7f0000000040)=0x0, &(0x7f0000000180)=0x0) r3 = syz_open_dev$sndpcmp(&(0x7f0000000000), 0x0, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000000)=@IORING_OP_READ=@pass_buffer={0x16, 0x0, 0x0, @fd=r3, 0x0, 0x0}, 0x0) sendmmsg(0xffffffffffffffff, &(0x7f0000002040)=[{{&(0x7f0000001380)=@nfc, 0x80, 0x0}}], 0x1, 0x0) io_uring_enter(r0, 0x2ff, 0x0, 0x0, 0x0, 0x0) 07:52:47 executing program 5: syz_clone3(&(0x7f0000000680)={0x164100500, 0x0, 0x0, 0x0, {}, 0x0, 0x0, 0x0, 0x0}, 0x58) syz_genetlink_get_family_id$batadv(0x0, 0xffffffffffffffff) sendmsg$SEG6_CMD_DUMPHMAC(0xffffffffffffffff, 0x0, 0x0) 07:52:47 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f00000013c0)=@ipv4_newroute={0x24, 0x1a, 0x1, 0x0, 0x0, {}, [@RTA_SRC={0x8, 0x3, @local}]}, 0x24}}, 0x0) 07:52:47 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller1\x00', 0x2}) poll(&(0x7f0000000080)=[{r0}], 0x1, 0x0) r1 = socket$kcm(0x2, 0xa, 0x2) ioctl$SIOCSIFHWADDR(r1, 0x8914, &(0x7f0000000140)={'syzkaller1\x00', @random="d96f03004b63"}) 07:52:47 executing program 4: r0 = seccomp$SECCOMP_SET_MODE_FILTER_LISTENER(0x1, 0x8, &(0x7f0000000040)={0x1, &(0x7f0000000140)=[{0x6, 0x0, 0x0, 0x7fc00100}]}) ioctl$SECCOMP_IOCTL_NOTIF_RECV(0xffffffffffffffff, 0xc0502100, 0x0) poll(&(0x7f0000000400)=[{r0}], 0x1, 0x100) ioctl$SECCOMP_IOCTL_NOTIF_RECV(r0, 0xc0502100, &(0x7f0000000480)={0x0}) ioctl$SECCOMP_IOCTL_NOTIF_SEND(r0, 0xc0182101, &(0x7f0000000100)={r1}) ioctl$SECCOMP_IOCTL_NOTIF_RECV(r0, 0xc0502100, &(0x7f0000000080)={0x0}) ioctl$SECCOMP_IOCTL_NOTIF_SEND(r0, 0xc0182101, &(0x7f0000000000)={r2}) 07:52:47 executing program 2: syz_mount_image$reiserfs(&(0x7f00000001c0), &(0x7f0000000200)='./file0\x00', 0x0, 0x0, &(0x7f0000000440), 0x0, &(0x7f00000004c0)=ANY=[@ANYBLOB='notail,commit=0']) 07:52:47 executing program 3: r0 = syz_usb_connect$hid(0x0, 0x36, &(0x7f0000000080)=ANY=[@ANYBLOB="12010000090003206d041cc340000000000109022400010000a00009040000010301010009210000000122050009058103792c"], 0x0) syz_usb_control_io$hid(r0, &(0x7f0000000040)={0x24, &(0x7f0000000100)=ANY=[@ANYBLOB="00000c0000000c00016bdf673bf2d3f6f5154057ad0db3ca1d45eb62"], 0x0, 0x0, 0x0}, 0x0) syz_usb_control_io$hid(r0, 0x0, &(0x7f0000000000)={0x2c, &(0x7f0000000180)=ANY=[], 0x0, 0x0, 0x0, 0x0}) syz_usb_control_io$hid(r0, 0x0, 0x0) syz_usb_control_io(r0, 0x0, 0x0) syz_usb_control_io(r0, 0x0, &(0x7f0000000740)={0x84, 0x0, 0x0, 0x0, &(0x7f0000000400)={0x20, 0x0, 0x4, {0x1}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) syz_usb_control_io$hid(r0, 0x0, &(0x7f0000000440)={0x2c, &(0x7f0000000240)={0x20, 0x0, 0xc, "2dc4c9b196cb0146ee1fa66b"}, 0x0, &(0x7f0000000340)={0x0, 0x8, 0x1}, &(0x7f0000000380), 0x0}) syz_usb_control_io$printer(0xffffffffffffffff, 0x0, &(0x7f0000000940)={0x34, 0x0, &(0x7f00000006c0)={0x0, 0xa, 0x1}, 0x0, 0x0, 0x0, 0x0}) [ 1058.129418][T13386] device syzkaller1 entered promiscuous mode 07:52:48 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:48 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:48 executing program 2: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:49 executing program 4: mkdir(&(0x7f0000000000)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f0000000940)='tmpfs\x00', 0x0, 0x0) mount$overlay(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f00000000c0), 0x0, &(0x7f0000000240)=ANY=[@ANYBLOB='lowerdir=.:file0']) lgetxattr(&(0x7f0000000900)='./file0\x00', &(0x7f0000001980)=@random={'system.', '\x00'}, 0x0, 0x0) 07:52:49 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller1\x00', 0x2}) poll(&(0x7f0000000080)=[{r0}], 0x1, 0x0) r1 = socket$kcm(0x2, 0xa, 0x2) ioctl$SIOCSIFHWADDR(r1, 0x8914, &(0x7f0000000140)={'syzkaller1\x00', @random="d96f03004b63"}) 07:52:49 executing program 3: r0 = syz_open_dev$vivid(&(0x7f0000000140), 0x0, 0x2) r1 = openat$zero(0xffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$VIDIOC_QUERYBUF_DMABUF(r0, 0xc04c5609, &(0x7f0000000040)={0x0, 0x9, 0x4, 0x0, 0x0, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "03000140"}, 0x0, 0x4, {}, 0x0, 0xf6f36000, r1}) fsopen(&(0x7f0000000100)='bdev\x00', 0x0) [ 1059.508171][T13405] device syzkaller1 entered promiscuous mode 07:52:49 executing program 5: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000180)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb(cipher_null)\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) r2 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r2, 0x1, r1, &(0x7f0000000080)={0x1}) epoll_pwait(r2, &(0x7f00000013c0)=[{}], 0x1, 0x0, 0x0, 0x0) r3 = socket$alg(0x26, 0x5, 0x0) bind$alg(r3, &(0x7f0000000180)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb(cipher_null)\x00'}, 0x58) r4 = accept4(r3, 0x0, 0x0, 0x0) r5 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r5, 0x1, r4, &(0x7f0000000080)={0x1}) epoll_pwait(r5, &(0x7f00000013c0)=[{}], 0x1, 0x0, 0x0, 0x0) 07:52:49 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:49 executing program 2: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:49 executing program 4: r0 = openat$zero(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) preadv2(r0, &(0x7f00000000c0)=[{&(0x7f0000000080)=""/60, 0x3c}], 0x1, 0x0, 0x0, 0x0) 07:52:49 executing program 3: r0 = syz_io_uring_setup(0x8b, &(0x7f0000000140), &(0x7f0000ee4000/0x3000)=nil, &(0x7f0000ee5000/0x1000)=nil, &(0x7f0000000000)=0x0, &(0x7f00000000c0)=0x0) syz_io_uring_setup(0x617f, &(0x7f0000000240), &(0x7f0000eea000/0x2000)=nil, &(0x7f0000eea000/0x4000)=nil, &(0x7f0000000100), &(0x7f00000001c0)=0x0) syz_io_uring_submit(r1, r3, &(0x7f0000000300)=@IORING_OP_REMOVE_BUFFERS, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f00000002c0)={0xffffffffffffffff}) syz_io_uring_setup(0x15b4, &(0x7f0000000080), &(0x7f0000ee9000/0x3000)=nil, &(0x7f0000eea000/0x1000)=nil, &(0x7f0000000000), &(0x7f0000000040)=0x0) syz_io_uring_submit(r1, r5, &(0x7f0000000380)=@IORING_OP_CONNECT={0x10, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0}, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000200)=@IORING_OP_POLL_ADD={0x6, 0x0, 0x0, @fd=r4}, 0x0) io_uring_enter(r0, 0x4510, 0x0, 0x0, 0x0, 0x0) recvmmsg(r4, &(0x7f00000025c0), 0x1, 0x0, 0x0) ppoll(&(0x7f0000000040)=[{r0}], 0x1, 0x0, 0x0, 0x0) shutdown(r4, 0x0) 07:52:50 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:50 executing program 2: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = bpf$BPF_BTF_LOAD(0x12, &(0x7f00000003c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, 0x0, 0x26}, 0x20) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0xd, 0x3, &(0x7f0000000040)=@framed, &(0x7f0000000080)='GPL\x00', 0x5, 0x1f6, &(0x7f00000002c0)=""/168, 0x0, 0x0, '\x00', 0x0, 0x0, r1, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000200), 0x1}, 0x6d) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000001540)={r2, 0x123, &(0x7f0000001480)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x1d, 0x2, &(0x7f0000000000)=@raw=[@map_val], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, r3, r0}, 0x80) 07:52:50 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller1\x00', 0x2}) poll(&(0x7f0000000080)=[{r0}], 0x1, 0x0) r1 = socket$kcm(0x2, 0xa, 0x2) ioctl$SIOCSIFHWADDR(r1, 0x8914, &(0x7f0000000140)={'syzkaller1\x00', @random="d96f03004b63"}) 07:52:50 executing program 5: openat$adsp1(0xffffffffffffff9c, &(0x7f0000000100), 0x4201, 0x0) openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) 07:52:50 executing program 4: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x10000000013, &(0x7f0000d06000)=0x1, 0x4) connect$inet(r0, &(0x7f0000000140)={0x2, 0x0, @private}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000240)=0x1, 0x4) sendmmsg(r0, &(0x7f00000038c0)=[{{0x0, 0x0, &(0x7f0000000040)=[{&(0x7f0000000280)="ee", 0x1}], 0x1}}], 0x1, 0x4008140) 07:52:50 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_GET_ASSOC_NUMBER(r0, 0x84, 0x22, 0x0, &(0x7f0000000100)=0x9b) 07:52:51 executing program 2: syz_open_dev$vcsu(&(0x7f0000000240), 0x8, 0xa1442) syz_clone(0x40000000, &(0x7f0000000040)="01", 0x1, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000340)="d480324e4be8e48b585c2149e9844544aba7b5f1b8da748d25a74b1c71b9f592b0aa3a4edd178d0e2f8eba3f7aaa6595ce74364e655309b2dde16b42238de7a6aefea40ea37aa933ed5fb711470d902cd95a6c308f96cc69aeb63592bc18dbf6edc08fceead7aa2be3cff7d604929474b04f4afe6d9d192b0e022b2a7082b83306a3d97645f9420fd63034643941254aad6e9e07033654c24e664a4f0f7d69b0b192223c73f42e7466f963428ca560f62bb020b43070098509bf0eb1720266fc628dcddfe6c58f4380e5a6669134dd4e8baba8b6421304379dc3bc80d0df") socketpair(0xb, 0xa, 0x20, &(0x7f0000000300)) syz_open_dev$vcsu(&(0x7f0000000000), 0x80000001, 0x1ea01) 07:52:51 executing program 4: r0 = syz_open_dev$sndctrl(&(0x7f0000000000), 0x0, 0x0) ioctl$SNDRV_CTL_IOCTL_ELEM_LIST(r0, 0xc0485510, &(0x7f0000000200)={0x0, 0x13, 0x0, 0x0, &(0x7f0000000040)}) 07:52:51 executing program 3: r0 = syz_io_uring_setup(0x8b, &(0x7f0000000140), &(0x7f0000ee4000/0x3000)=nil, &(0x7f0000ee5000/0x1000)=nil, &(0x7f0000000000)=0x0, &(0x7f00000000c0)=0x0) syz_io_uring_setup(0x617f, &(0x7f0000000240), &(0x7f0000eea000/0x2000)=nil, &(0x7f0000eea000/0x4000)=nil, &(0x7f0000000100), &(0x7f00000001c0)=0x0) syz_io_uring_submit(r1, r3, &(0x7f0000000300)=@IORING_OP_REMOVE_BUFFERS, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f00000002c0)={0xffffffffffffffff}) syz_io_uring_setup(0x15b4, &(0x7f0000000080), &(0x7f0000ee9000/0x3000)=nil, &(0x7f0000eea000/0x1000)=nil, &(0x7f0000000000), &(0x7f0000000040)=0x0) syz_io_uring_submit(r1, r5, &(0x7f0000000380)=@IORING_OP_CONNECT={0x10, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0}, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000200)=@IORING_OP_POLL_ADD={0x6, 0x0, 0x0, @fd=r4}, 0x0) io_uring_enter(r0, 0x4510, 0x0, 0x0, 0x0, 0x0) recvmmsg(r4, &(0x7f00000025c0), 0x1, 0x0, 0x0) ppoll(&(0x7f0000000040)=[{r0}], 0x1, 0x0, 0x0, 0x0) shutdown(r4, 0x0) 07:52:51 executing program 0: openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000140)='cpuacct.stat\x00', 0x0, 0x0) write(0xffffffffffffffff, &(0x7f0000000040)="0f42", 0x2) r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) getsockopt$inet6_opts(0xffffffffffffffff, 0x29, 0x0, &(0x7f0000000580)=""/143, &(0x7f0000000340)=0xfee5) open(&(0x7f0000000300)='.\x00', 0x0, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f0000000100)={0x0, 0x0, 0x0, 0x2000, &(0x7f0000000000/0x2000)=nil}) ioctl$KVM_SET_REGS(r2, 0x4090ae82, &(0x7f0000000200)={[0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xfb, 0x0, 0x0, 0x1ff]}) ioctl$KVM_RUN(r2, 0xae80, 0x0) recvfrom$inet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000440)={0x2, 0x5e20, @local}, 0x10) ioctl$AUTOFS_IOC_SETTIMEOUT(0xffffffffffffffff, 0x80049367, &(0x7f00000002c0)=0x7fff) sendmsg$IPVS_CMD_DEL_DEST(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f00000001c0)={&(0x7f0000000540)=ANY=[]}}, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) openat(0xffffffffffffffff, &(0x7f0000000000)='./file0\x00', 0x0, 0x0) ioctl$KVM_SET_REGS(r2, 0x4090ae82, &(0x7f0000000640)) ioctl$KVM_RUN(r2, 0xae80, 0x0) [ 1061.614124][T13431] device syzkaller1 entered promiscuous mode 07:52:51 executing program 4: r0 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_tx_ring(r0, 0x107, 0x5, &(0x7f0000000080)=@req3={0x8000, 0x6, 0x8000, 0x6}, 0x1c) setsockopt$packet_int(r0, 0x107, 0x11, &(0x7f0000000000)=0xfffffffa, 0x4) r1 = socket$inet_udp(0x2, 0x2, 0x0) bind$inet(r1, &(0x7f0000000280)={0x2, 0x0, @local}, 0x10) setsockopt$sock_int(r1, 0x1, 0x6, &(0x7f0000000100)=0x7, 0x4) connect$inet(r1, &(0x7f0000000200)={0x2, 0x0, @broadcast}, 0x10) r2 = open(&(0x7f00000009c0)='./bus\x00', 0x141042, 0x0) copy_file_range(r2, 0x0, r2, 0x0, 0x0, 0x0) pidfd_getfd(r2, r0, 0x0) r3 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000040)={0x11, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="18010000000004000000000000000000850000000f00000095"], &(0x7f0000000000)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000140)={&(0x7f0000000100)='sys_enter\x00', r3}, 0x10) ioctl$FS_IOC_FSGETXATTR(r3, 0x801c581f, &(0x7f0000000040)={0x150, 0x8, 0x7ff, 0xdd, 0x80000001}) sendmmsg(r1, &(0x7f0000007fc0), 0x3d, 0x0) mmap(&(0x7f0000ff3000/0xc000)=nil, 0xc000, 0xa, 0x10, r1, 0xe6e82000) r4 = open(&(0x7f00000009c0)='./bus\x00', 0x141042, 0x0) copy_file_range(r4, 0x0, r4, 0x0, 0x0, 0x0) bind$inet(r4, &(0x7f00000000c0)={0x2, 0x4e21, @empty}, 0x10) 07:52:52 executing program 5: openat$adsp1(0xffffffffffffff9c, &(0x7f0000000100), 0x4201, 0x0) openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) 07:52:52 executing program 0: syz_read_part_table(0x0, 0x2, &(0x7f00000025c0)=[{0x0, 0x0, 0x80000000}, {&(0x7f00000014c0)="a8e413f7f7a34fc58c60d0d0b76acb4f8b05b96012d4e3004c7d2b081395cbe9acdf78a821bc043a4c33a3c32beeef9d6a6c35a34de0f2fbbd27ca077b1b28dc5d6406fb85023172e2cfb81bc44754fd81cbc91447ad6bc629175ac8da34384bacde170137b217ebdcda8f3b86170d74d4f545311e98235627eed0fe18ecedc3abed4e723f580deba854d07a3365b1b9da46b640443aac1ee22b8d49cb4c73b71b2231dce7001f68515db66f83719aaff8bed2ee1c050ad8feb7020f12face733f7e08d872c879bbe5333a8c616b64805038131f0bcf37642d62da250e94fc5ad02dec1f265fe6c689ba130f49148e913f1faff20f102fa9af84a4f35173f695fff5d28147bcddf9a1714b3b84ea1c12bda5aca25b7cf274dc4604cb63a473764d5ac0e5813bea5888d5d3c08979fbab3c4d16949f56d787633043c3cef369a33395a6d9fbd2152c31369357dbf7a9ba5baa6ba2cd60be32fb86781b7d66ad51bdc3457c90bd41df957e7885be598bb88174ab519515869a89d55b289426469f878bbf2276304cdcfcd8ce91f4af60de384dd77cef9766ef81417cdfd803517decf864279f2256cd9acab32c5e1426d755227104fb29b5be8fd7d0792aed5a9b7961c98d059c7ada6b2c6d0e1341f698b1397caeea9b1e72892d23049e772f5f6e0dbc0931d5f557ed", 0x1e9, 0x5}]) 07:52:53 executing program 3: r0 = syz_io_uring_setup(0x8b, &(0x7f0000000140), &(0x7f0000ee4000/0x3000)=nil, &(0x7f0000ee5000/0x1000)=nil, &(0x7f0000000000)=0x0, &(0x7f00000000c0)=0x0) syz_io_uring_setup(0x617f, &(0x7f0000000240), &(0x7f0000eea000/0x2000)=nil, &(0x7f0000eea000/0x4000)=nil, &(0x7f0000000100), &(0x7f00000001c0)=0x0) syz_io_uring_submit(r1, r3, &(0x7f0000000300)=@IORING_OP_REMOVE_BUFFERS, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f00000002c0)={0xffffffffffffffff}) syz_io_uring_setup(0x15b4, &(0x7f0000000080), &(0x7f0000ee9000/0x3000)=nil, &(0x7f0000eea000/0x1000)=nil, &(0x7f0000000000), &(0x7f0000000040)=0x0) syz_io_uring_submit(r1, r5, &(0x7f0000000380)=@IORING_OP_CONNECT={0x10, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0}, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000200)=@IORING_OP_POLL_ADD={0x6, 0x0, 0x0, @fd=r4}, 0x0) io_uring_enter(r0, 0x4510, 0x0, 0x0, 0x0, 0x0) recvmmsg(r4, &(0x7f00000025c0), 0x1, 0x0, 0x0) ppoll(&(0x7f0000000040)=[{r0}], 0x1, 0x0, 0x0, 0x0) shutdown(r4, 0x0) 07:52:53 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller1\x00', 0x2}) poll(&(0x7f0000000080)=[{r0}], 0x1, 0x0) r1 = socket$kcm(0x2, 0xa, 0x2) ioctl$SIOCSIFHWADDR(r1, 0x8914, &(0x7f0000000140)={'syzkaller1\x00', @random="d96f03004b63"}) 07:52:53 executing program 4: pipe(&(0x7f0000000300)={0xffffffffffffffff, 0xffffffffffffffff}) write$binfmt_misc(r1, &(0x7f0000000080)=ANY=[], 0x4240a2a0) r2 = socket$alg(0x26, 0x5, 0x0) bind$alg(r2, &(0x7f0000000000)={0x26, 'hash\x00', 0x0, 0x0, 'crct10dif\x00'}, 0x58) r3 = accept4(r2, 0x0, 0x0, 0x0) splice(r0, 0x0, r3, 0x0, 0x40008, 0x0) 07:52:53 executing program 2: syz_mount_image$cramfs(&(0x7f0000000200), &(0x7f0000000240)='./file0\x00', 0x0, 0x0, &(0x7f0000000400), 0x0, &(0x7f0000000480)) 07:52:53 executing program 5: openat$adsp1(0xffffffffffffff9c, &(0x7f0000000100), 0x4201, 0x0) openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) 07:52:53 executing program 0: r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000040)='/proc/keys\x00', 0x0, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) sendfile(r1, r0, 0x0, 0x3effffffc) r2 = bpf$MAP_CREATE(0x0, &(0x7f0000000000)=@base={0xe, 0x4, 0x4, 0xbf22}, 0x48) bpf$MAP_UPDATE_ELEM(0x2, &(0x7f0000000380)={r2, &(0x7f0000000cc0)="1c5d1cfa456373482e86c45689afb5c1f490d00eafa8d5fff5711b593445d876f8c24065657a69434054e29a744b67025fda0bfb919638ac6f4f8db027a91a33ed00330806d187c4dbd47dd5e78fd8f6f3f3918c531744e590e843f1f3924e68f789b39f60744fa9a5ca346cc49d3bfa1557062bf53ee82cf7f48cc9d656a1dd6483876d393602b52f049e5d241cc59055e2c0179f8a660bc9c855e8e4370480e0fa56e3995dc899d4055b65005f0c901c1a5075d049547fddc799a564211b629753fa18d8fe24cd5ebf22b0a6a2d7f0497b51bf1f47015d4e61a8d3d9a07ab810cf9c0ba02e7313e04787761ee9ad679e11eac08c616e48afcb13510c675a47c69102ebcb701632a125733839d9b9fae28046f26366f6ea62d4a8348d50cf02528d49e7853860e1f3231de54aeb140f57dc5eab5f4762cd9fb5828bce9fe45da752952b4dfa1dd82a58d1215beac6bb8bb5a35b1ef8e5e8328befa5c47adb1c90b1be52086d2695ec64d4beca79b658f79f4c34e3f4ab76b6c638317dc34f92ee829f9794a3ec4af124b9f171800fa0df67d6f9dbfd8914fb498f2372c89d38a6b8154e56eb362a66c19ecc6b3a", &(0x7f0000000b80)=@buf="41b6d8ba58ad9c8996b6074f0ab4d1b4ada872e02b7c10bfce43ffecc0944b06ac2000000042c9393ae756a95957fa9dc2d847590f5ceb6b07ad384855e5a176c4efdf6d6111d9ba9566b99487ee85cc677aa4819930c0d76e24adaca0a34fc2d55762131759ccb8b0f1e800061b7eeaa31f7647c6c294c4b3144210444c33a35e672c921e0df5707f5a3a4730933a5f5f5a9bacdd685ef1690363524fac072c8e28a0b403140d7c85d7968775c11b41c6714e000000001400"/200}, 0x20) ioctl$sock_ipv6_tunnel_SIOCADDPRL(0xffffffffffffffff, 0x89f5, &(0x7f0000000140)={'sit0\x00', &(0x7f00000000c0)={@rand_addr, 0x0, 0x29, 0x8, 0xf4}}) r3 = socket$netlink(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) r6 = openat$sw_sync_info(0xffffffffffffff9c, &(0x7f0000000200), 0x200000, 0x0) fcntl$setown(r6, 0x8, 0xffffffffffffffff) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000640)={0x11, 0x6, &(0x7f00000006c0)=ANY=[@ANYBLOB="180000008f670000f9ff00003f000000950000000000000085200000020800001554c0ff0000000095000000000000006512ccb9aa326d2fab00c498f5dab48b9ae69b9d3d778f4512c766365430d10b34692a49b5f91336c5f8e0149eecb5f59fe8a3141cdb812fb57338079b17eb198a105bfc9d9e3caa789dd23da866104562169312dd23072bd456a75ace2da2e6919d9335ca3ea14d5c4c8cdeccc37a381c7fb3ca29fd7690c69f4c5836c5b5d6f2e9e6b9e44188921d813fc22877b3d56d70a306a9d1c5426cf5f12cc51bc21d8d1b9bf8a8301cee9b66fd42304d5465291c588cc110e2aba53253df1bd5a95ac3abd9d5f18afd6fe723e625750f0aed8f44daf522303ac2833ccd426a9d8a0a708f4c2034beec66ed7bc2803f371368f2146790644aad7f7ea0f0c1490a502f8591c5a9afb0481d1a3f5f84bdc0cb9ee7cf0133c86b73b7bd03d51d210cb907747eb62654c055be752e0a2a3e800c50b813276fa6f5163f14f69b9e55ae4a0f129df3da377b08e67e14ef7d2669ad83833120c7cfb854b2ba821d6798667f4871cafcd65c4698ecedcf6ba9e9b1cd18d0a681be01784915a1509e3c3d70c500"/442], &(0x7f00000001c0)='syzkaller\x00', 0x9, 0xa2, &(0x7f00000003c0)=""/162, 0x41100, 0x5, '\x00', 0x0, 0x0, r6, 0x8, &(0x7f00000002c0)={0x0, 0x2}, 0x8, 0x10, &(0x7f0000000300)={0x0, 0x5, 0x6, 0x4}, 0x10, 0x0, 0x0, 0x0, &(0x7f0000000480)=[r2]}, 0x80) r7 = dup(r4) fcntl$dupfd(r2, 0x0, r5) accept4$packet(r7, &(0x7f0000000280)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f00000004c0)=0x14, 0x0) r8 = bpf$MAP_CREATE(0x0, &(0x7f0000000000)=@base={0x2, 0x4, 0x3fc, 0x2, 0x0, 0x1}, 0x48) bpf$MAP_LOOKUP_BATCH(0x1a, &(0x7f0000000240)={0x0, 0x0, &(0x7f00000002c0), &(0x7f0000000200), 0xfff, r8}, 0x38) bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f0000000a80)=@bpf_tracing={0x1a, 0xb, &(0x7f0000000880)=@framed={{0x18, 0x0, 0x0, 0x0, 0xfffffff8, 0x0, 0x0, 0x0, 0x4}, [@map_idx_val={0x18, 0xb, 0x6, 0x0, 0xb, 0x0, 0x0, 0x0, 0xd37b}, @map_fd={0x18, 0x8, 0x1, 0x0, r2}, @map_val={0x18, 0x9, 0x2, 0x0, r2, 0x0, 0x0, 0x0, 0x10001}, @map_idx_val={0x18, 0x2, 0x6, 0x0, 0xe}]}, &(0x7f0000000180)='GPL\x00', 0x0, 0xae, &(0x7f0000000900)=""/174, 0x40f00, 0x12, '\x00', 0x0, 0x17, r7, 0x8, &(0x7f00000009c0)={0xfffffffd, 0x1}, 0x8, 0x10, &(0x7f0000000a00)={0x1, 0xc, 0x7fffffff, 0x5}, 0x10, 0x4842, 0xffffffffffffffff, 0x0, &(0x7f0000000a40)=[r6, r7]}, 0x80) getpeername$packet(r7, &(0x7f0000000000)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000040)=0x14) sendmsg$nl_route(r3, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000340)={&(0x7f00000000c0)=@newlink={0x50, 0x10, 0x705, 0x0, 0x0, {}, [@IFLA_MASTER={0x8, 0xa, r9}, @IFLA_LINKINFO={0x28, 0x12, 0x0, 0x1, @sit={{0x8}, {0x1c, 0x2, 0x0, 0x1, [@IFLA_IPTUN_LINK={0x8}, @IFLA_IPTUN_PROTO={0x5, 0x9, 0x4}, @IFLA_IPTUN_LOCAL={0x8, 0x2, @local}]}}}]}, 0x50}, 0x1, 0x4c00000000000000}, 0x0) 07:52:53 executing program 2: bpf$MAP_CREATE(0x0, &(0x7f00000001c0)=@base={0x11, 0x4, 0x4, 0x2, 0x4}, 0x48) 07:52:54 executing program 2: r0 = syz_open_dev$vim2m(&(0x7f0000000000), 0x0, 0x2) ioctl$vim2m_VIDIOC_EXPBUF(r0, 0xc0cc5605, &(0x7f0000000040)={0x2, 0x0, 0x0, 0x3132564e}) 07:52:54 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000300)={0xe, 0x2, &(0x7f0000000100)=@raw=[@ldst={0x1, 0x0, 0x3, 0x0, 0x1}, @jmp={0x5, 0x0, 0x9}], &(0x7f0000000280)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(0xffffffffffffffff, 0xc0189375, &(0x7f00000000c0)=ANY=[@ANYBLOB="010000000100000018000000", @ANYRES32=r0, @ANYBLOB='\x00\x00\x00\x00\x00\x00\x00\x00./fb3J']) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f00000000c0)=ANY=[], 0x88) mmap(&(0x7f0000000000/0x3000)=nil, 0x3000, 0x1, 0x10012, r1, 0x0) bpf$MAP_CREATE(0x0, &(0x7f0000000000), 0x40) 07:52:54 executing program 3: r0 = syz_io_uring_setup(0x8b, &(0x7f0000000140), &(0x7f0000ee4000/0x3000)=nil, &(0x7f0000ee5000/0x1000)=nil, &(0x7f0000000000)=0x0, &(0x7f00000000c0)=0x0) syz_io_uring_setup(0x617f, &(0x7f0000000240), &(0x7f0000eea000/0x2000)=nil, &(0x7f0000eea000/0x4000)=nil, &(0x7f0000000100), &(0x7f00000001c0)=0x0) syz_io_uring_submit(r1, r3, &(0x7f0000000300)=@IORING_OP_REMOVE_BUFFERS, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f00000002c0)={0xffffffffffffffff}) syz_io_uring_setup(0x15b4, &(0x7f0000000080), &(0x7f0000ee9000/0x3000)=nil, &(0x7f0000eea000/0x1000)=nil, &(0x7f0000000000), &(0x7f0000000040)=0x0) syz_io_uring_submit(r1, r5, &(0x7f0000000380)=@IORING_OP_CONNECT={0x10, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0}, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000200)=@IORING_OP_POLL_ADD={0x6, 0x0, 0x0, @fd=r4}, 0x0) io_uring_enter(r0, 0x4510, 0x0, 0x0, 0x0, 0x0) recvmmsg(r4, &(0x7f00000025c0), 0x1, 0x0, 0x0) ppoll(&(0x7f0000000040)=[{r0}], 0x1, 0x0, 0x0, 0x0) shutdown(r4, 0x0) 07:52:54 executing program 4: r0 = syz_open_dev$vbi(&(0x7f0000000000), 0x0, 0x2) ioctl$VIDIOC_G_SLICED_VBI_CAP(r0, 0xc0745645, &(0x7f0000000040)={0x0, [], 0x4}) [ 1064.761637][T13475] device syzkaller1 entered promiscuous mode 07:52:55 executing program 0: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000740)={0x0, 0x0, &(0x7f0000000700)={&(0x7f0000000480)=@allocspi={0xf4, 0x16, 0x1, 0x0, 0x0, {{{@in6=@dev, @in6=@private1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xee01}, {@in=@loopback, 0x0, 0x6c}, @in=@loopback, {}, {}, {}, 0x70bd26, 0x0, 0xa}, 0x0, 0x9}}, 0xf4}}, 0x0) 07:52:55 executing program 5: openat$adsp1(0xffffffffffffff9c, &(0x7f0000000100), 0x4201, 0x0) openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) 07:52:55 executing program 2: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) io_submit(0x0, 0x1, &(0x7f00000005c0)=[&(0x7f0000000100)={0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0xb}]) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='blkio.throttle.io_service_bytes_recursive\x00', 0x275a, 0x0) write$binfmt_script(r2, &(0x7f0000000040)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r2, 0x0) r3 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_CPUID(r3, 0x4008ae8a, &(0x7f00000000c0)=ANY=[@ANYBLOB="03000000390000ff00000000000600007f000600002fbad10fcfce0819ee000001000000000001000000000009aaffe700000000200000000a"]) ioctl$KVM_SET_MSRS(r3, 0x4008ae89, &(0x7f00000001c0)={0x1, 0x0, [{0x186, 0x0, 0xffff8000}]}) 07:52:55 executing program 4: setreuid(0xee01, 0x0) r0 = getuid() setreuid(r0, 0x0) 07:52:55 executing program 0: r0 = openat$drirender128(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ioctl$DRM_IOCTL_GET_CAP(r0, 0xc010640c, &(0x7f00000000c0)) 07:52:56 executing program 4: bpf$PROG_LOAD_XDP(0x5, &(0x7f00000001c0)={0x12, 0x4, &(0x7f0000001300)=@framed={{}, [@ldst={0x1, 0x2, 0x3, 0x0, 0x1, 0x6}]}, &(0x7f0000000040)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x1d, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:52:56 executing program 0: r0 = openat$sysctl(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/tcp_window_scaling\x00', 0x1, 0x0) write$sysctl(r0, 0x0, 0x0) 07:52:56 executing program 2: pkey_mprotect(&(0x7f0000000000/0x5000)=nil, 0x5000, 0x1, 0xffffffffffffffff) r0 = socket$inet_tcp(0x2, 0x1, 0x0) getsockopt$inet_mreqn(r0, 0x0, 0x20, 0x0, &(0x7f0000000100)) 07:52:56 executing program 0: r0 = openat$sysctl(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/tcp_window_scaling\x00', 0x1, 0x0) write$sysctl(r0, 0x0, 0x0) 07:52:57 executing program 1: syz_clone(0x40000000, &(0x7f0000000080), 0x0, 0x0, 0x0, 0x0) syz_open_procfs(0x0, 0x0) syz_open_procfs(0x0, 0x0) ioctl$sock_SIOCSPGRP(0xffffffffffffffff, 0x8902, 0x0) 07:52:57 executing program 3: io_setup(0x1, &(0x7f0000000000)=0x0) r1 = socket$rxrpc(0x21, 0x2, 0x2) io_submit(r0, 0x1, &(0x7f0000001940)=[&(0x7f0000000080)={0x0, 0x0, 0x0, 0x5, 0x0, r1, 0x0}]) 07:52:57 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r1, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000540)=@delchain={0x24}, 0x24}}, 0x0) getsockname(r1, &(0x7f0000000280)=@xdp={0x2c, 0x0, 0x0}, &(0x7f0000000040)=0x80) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)=@newlink={0x34, 0x10, 0x581, 0x0, 0x0, {0x0, 0x0, 0x0, r2}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @bridge={{0xb}, {0x4}}}]}, 0x34}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r3, &(0x7f0000000400)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000380)=@bridge_newvlan={0x30, 0x70, 0x1, 0x0, 0x0, {0x7, 0x0, 0x660c, r2}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x0, 0x2}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x0, 0x3}}}]}, 0x30}, 0x1, 0x5502000000000000}, 0x0) 07:52:57 executing program 2: r0 = syz_io_uring_setup(0x884, &(0x7f0000000080), &(0x7f0000ee7000/0x2000)=nil, &(0x7f00006d3000/0x4000)=nil, &(0x7f0000000000)=0x0, &(0x7f0000000040)=0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000400)=@IORING_OP_SENDMSG={0x9, 0x0, 0x0, r3, 0x0, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0, 0x10}}, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000240)=ANY=[@ANYBLOB="18000000690005b0b9366973cb1804c94580"], 0x18}}, 0x0) io_uring_enter(r0, 0x688c, 0x0, 0x0, 0x0, 0x0) 07:52:58 executing program 5: pipe(&(0x7f00000001c0)={0xffffffffffffffff, 0xffffffffffffffff}) write(r1, &(0x7f0000000000)="b1", 0x1) pipe(&(0x7f0000000140)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setstatus(r1, 0x4, 0x2000) splice(r0, 0x0, r2, 0x0, 0x10000, 0x0) 07:52:58 executing program 0: r0 = openat$sysctl(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/tcp_window_scaling\x00', 0x1, 0x0) write$sysctl(r0, 0x0, 0x0) 07:52:58 executing program 3: seccomp$SECCOMP_SET_MODE_FILTER_LISTENER(0x1, 0x0, &(0x7f0000000040)={0x3, &(0x7f0000000080)=[{0x35, 0x0, 0x0, 0xfffffffb}, {0x44}, {0x6}]}) creat(0x0, 0x0) 07:52:58 executing program 2: r0 = socket$inet6(0xa, 0x2, 0x0) setsockopt$inet6_int(r0, 0x29, 0x19, &(0x7f0000000380)=0x7, 0x4) sendto$inet6(r0, 0x0, 0xfffffffffffffd2f, 0x0, &(0x7f0000000080)={0xa, 0x4e20, 0x0, @mcast2}, 0x1c) recvmsg(r0, &(0x7f0000000140)={0x0, 0x0, 0x0}, 0x2001) 07:52:58 executing program 4: r0 = socket$netlink(0x10, 0x3, 0x0) getsockopt$netlink(r0, 0x10e, 0xb, 0x0, &(0x7f0000000040)) 07:52:58 executing program 5: r0 = openat$vhost_vsock(0xffffffffffffff9c, &(0x7f00000003c0), 0x2, 0x0) ioctl$VHOST_SET_VRING_BASE(r0, 0xaf01, 0x0) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000200)={0x1, 0x0, 0x0, &(0x7f0000000000)=""/30, 0x0}) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000280)={0x0, 0x1, 0x0, &(0x7f0000000980)=""/162, 0x0}) r1 = eventfd(0x0) r2 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r3 = ioctl$KVM_CREATE_VM(r2, 0xae01, 0x0) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)={0x2, 0x0, [{0x0, 0xa5, &(0x7f0000000400)=""/165}, {0x0, 0xd5, &(0x7f00000004c0)=""/213}]}) ioctl$KVM_CREATE_IRQCHIP(r3, 0xae60) ioctl$KVM_IRQFD(r3, 0x4020ae76, &(0x7f0000000080)={r1}) ioctl$VHOST_SET_LOG_FD(r0, 0x4004af07, &(0x7f0000000140)=r1) ioctl$VHOST_VSOCK_SET_RUNNING(r0, 0x4004af61, &(0x7f0000000300)=0x1) 07:52:59 executing program 0: r0 = openat$sysctl(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/tcp_window_scaling\x00', 0x1, 0x0) write$sysctl(r0, 0x0, 0x0) [ 1068.906810][ T24] audit: type=1326 audit(1658303578.965:243): auid=4294967295 uid=0 gid=0 ses=4294967295 subj==unconfined pid=13529 comm="syz-executor.3" exe="/root/syz-executor.3" sig=31 arch=40000003 syscall=240 compat=1 ip=0xf7fe2549 code=0x0 07:52:59 executing program 3: rt_sigprocmask(0x0, &(0x7f0000000100)={[0xfffffffffffe]}, 0x0, 0x8) r0 = gettid() timer_create(0x0, &(0x7f0000000180)={0x0, 0x17, 0x4, @tid=r0}, &(0x7f0000000080)) timer_settime(0x0, 0x0, &(0x7f0000000300)={{0x0, 0x1}, {0x0, 0xe4c}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000340), 0x0) io_setup(0x3, &(0x7f0000000000)=0x0) io_pgetevents(r1, 0x0, 0x0, 0x0, 0x0, &(0x7f00000003c0)={&(0x7f0000000040), 0x8}) 07:53:01 executing program 1: syz_clone(0x40000000, &(0x7f0000000080), 0x0, 0x0, 0x0, 0x0) syz_open_procfs(0x0, 0x0) syz_open_procfs(0x0, 0x0) ioctl$sock_SIOCSPGRP(0xffffffffffffffff, 0x8902, 0x0) 07:53:01 executing program 2: mkdirat(0xffffffffffffff9c, &(0x7f0000002040)='./file0\x00', 0x0) r0 = openat$fuse(0xffffffffffffff9c, &(0x7f0000002080), 0x42, 0x0) mount$fuse(0x0, &(0x7f00000020c0)='./file0\x00', &(0x7f0000002100), 0x1, &(0x7f0000002140)={{'fd', 0x3d, r0}, 0x2c, {'rootmode', 0x3d, 0x4000}}) read$FUSE(r0, &(0x7f00000021c0)={0x2020, 0x0, 0x0}, 0x2020) write$FUSE_INIT(r0, &(0x7f0000004200)={0x50, 0x0, r1}, 0x50) r2 = openat(0xffffffffffffff9c, &(0x7f0000004280)='./file0\x00', 0x0, 0x0) syz_fuse_handle_req(r0, &(0x7f00000042c0), 0x2000, &(0x7f00000062c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000006340)={0x20, 0x0, 0x0, {0x0, 0x1a}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) stat(&(0x7f0000006700)='./file0\x00', 0x0) getdents(r2, 0x0, 0x27c6) getdents64(r2, 0x0, 0x0) syz_fuse_handle_req(r0, &(0x7f000000b7c0)="f36f62f9789c36c5207671353cfc45985925f2efe60d482e43fa302fb68589a1871b2ccd641e836cfd2fcd840bd1b496ecca185efc94588ab6ded85c73f9feba1bd6a7841f27c3f87c390d53ccb1b5c3999ce95bfe0cf5cfaae4cf84f41fcc2745418b0e9509499e4c4a05e04d2247f3a18d8daf5c63a18498f164d3c94ebac02a73e1de264aa323beefad8e25bda600f953b81de64aa112aad59d14d7617cad958cbbd1cb91c7cce73b39aa8549a49a406994fde4c1d7c905fbaa70a3d454a1f16c665d2e536bf07aa87181aa864d6c98d38da6c39ffadb0a317ef324c5debfb7c232cab2dc9c14241bbea75849b8f829fe661af9fcd52db60ceaad4df79c4e2f02c3fc289f1605f3e051c99a6ff36970e487a4fb1f334203b4129f7ce9ea0fe4db6bd47bc25153ea95f264ffc2c83eda71a2381d8e89d58256df0dc8a584544c8392b7433287739d1e8aaf07d3e26acab3e18a85c31b6dd7cdc1509de79e781195e4ce89c61cb749b18a8b497cfc1e9a240fb578f2936656d847dcd88d62ea55cc10368e74be7218fbdd1a915a21d2709b84fddbe4b101a1f28c4f815fe3c77d30f9e392c6b8cdae208b9e6a40e89f11bb67a68c65ffa4dbee124678817532f21a17b496147f74d4b7ee6b0946f3b60d512677c389ae81a81ccbd1b589026bbbcce0d8946be2d4ed79b8fcdcb959dfb564e1127a2c96c8e6f4a4ff4c3d1876a5c5cc21b12ee25886d3765e86d52d998ccf78d8cb290e30e411ffa0ce704925cceb395c08cd0d3119ebcad63a5a335cd475e5390460062a8c6fe4e8e356ed19319c54555841ab33a1481c588967989d74bd47c004bf7a4ec1d411e586825ed5d92dac5926bb883be44803fd4de380f79d0484cbdcd2f45fb17ae04110d21d833ac7f274d3fb5e9096235d52ad8d244fb56d2a0ccae6fe7551f15750148f153ca9171fa4249edc2d3aaf45590037227d63668bf8ef889563b17da480bd37672ee09dc9fdb0d6044cefe0ce6069c07417c07fc9731737981766388bb8b9c4071e29ef2f4dc167ac6c7056abf08e5b89fcbf73eac722357e8daa8b8e905e5867ef6b7036aca442f87e031f9e2a49f0d758df3ac2b0e289f8e85431431a33da771e06f32ca72b361988d95593a9261cdde1f85a91fdfb02a8186397deee9b181aea1e063f9816a0752b464b173c319c4f161897b64e522d6e61408bf6694f25b5c89f38b96f5f1bc46d2f139eab5479eccfba61d1a7795afd8bf0f7e880e637f364d308d8008e2e25def5a4dfe004d910f8f5dd000f035cd1e1e7753125f831e170d248256e3f525a9b93dba15f24f6fae0ef8aa2a5673f0cb4fbfc00e3409eaf3412483515be0b3fdf153c08eefcb9560253f05241f0433d5b2436bda7eecbabcae4d1b558e8d6aab11344531c13db9677b9aeec0a3172694e5ffda52d507222062cb8577c8edb022dad3529f9d046f879aad317c312a3e6d46c166617abbe23c972f6ee59c562fdcd9f439d4c602790846f2c6af030dab7c2a5a4274833298899aed9322568ded796911b94baa8f5f8cf4f0018bac4ac695b1fea4a637a4912f5dbe4b8687d3586f534b7ea7c3f7cbe4197181085996e4ba97f2eb36d1c9e9eb8baf4bdd974868b1776bacd22da1a93c7dab942dd609458b24dd98cc237f1f242944a325851ae90732903ceba8c91ce552d1a082a2db9a01c70a4c127e283ccd40d9be4c960ef7bf1fdfef94dc6c1964c38971312e7b26bf15af57d19c01a3d91ca4565263d4fd4d37f81886a34121a61380ede803fe64bfba36b9567ac2817408fd85210a90ea0a4fea456a66472f0866db7b04705243fb4aa51b5e7303775d91673d1c79916efd5b53b76cfd81fd6e4493b6a06905e7a63052afb56106845b9739e792b57dd4627195195b6a3bc25470d98a1555be76b812120acf2130fe4634085acbcfdbd2b6c7bbe14935352a2f12f9e959bf1761dda2778d11d56b69ac434c4bf3cbbb3f725fe12d7da89f97f97134bf1b9dc1c9eeeaf55a8693bf505b2cd1a51587ed5c09efd6416be5e86080ad94b988486c010d1ff206d1de041596e8ee7896846f227cf2f0e5015a0ce528635de435d235e7a6be8e67ee084b92569551097a2400c90619639d682f2d112336eca5568830f30bc49b0a7819c1682eda95d7d1dd29a82dfd644cbb95ea60807ca317db94fb6c39ba0fe88974513a602cea3cd6e53440454f0b340b2a1873ac8c969b5c10bd771140c72e2659b84eabab5ff9452dd3a108ea858470e32a7dfff6860a9ab9dc02ca524be7ee529c6c351ff64152f315e1418b74b197c390b888e375748be60e3919882e1d5bf52771c14e81df75afdef43bd1dc4c43244e73b09f19eb4f01673759dca265b0b0311922d7046715a97b3b2300a4310505e33c454b2e6d41605e731e08947c79008707be4ef92b316ba0cb54589e99cad999f83f1869e6c23d6929ba7fde37b6cb33f870c7bf3b8b7e4af76f125b60859fa1881ff2398edf83699bfde3b23fb0d74e513a77da023a61614825abf176b34126b6cb007b188aad772b6f283976bad3d2a7b16a3affbdea8caa7c09a9a4b4f58db60de9ae2b5b421be365e4a6ecd00ccdf18040e2e8ff310dfabf09595dd1777b5e522c9937fd3392836b3f93dc0f4374ae76fd8ba7052ba3d642a4a7b65e258194c3109b0ab1a537012bf6a6c334ab4afe49e02091fe2d54fb946d4f9b1aedf285b6550532388b9785348e8191bd59a8aa0afa86bc90bce5c9b8eee5fdcfec829599fc6119bcc410235d450b6362360439704d95fa3d1d33153ac9e9ddb1be3aa62ab83842da48cd7e7dcbd5a07f3633463b7b546da28d6ceb79ab9d5bd056533d69a586cac94d4829d2546ce1f444e00cb4f1975f06bcdf738bc4251e15a947cefedf21625a96727e5817a2c354b766bd9fa98911ace9dff42e500d3ad0c7c8fb1b1f5e60d1e3d233690a6197ad0097d45b6ef3284f6c1b120cc9720f0bfd2df1286ce64971202419cf4a13d16792dfaa38e8046b1526dbb070df8c5f61e9a4051b2a05673c0097dd80529d312abf6fe1c1ad4d61efe5f57c50273aa1fd5d1ee77ae07b8ca2ab94663c6b9b65e4c32c9e21064e4a600c3c906fba12f284d7d7a89080f521667ccfa02bf4d6c4506c58b7b5804db41cc2a561aec2069336f2fe8d1cf5b221e03b565c9d68e745c2d92ffbe4bc87bdf2b93cf9404a1828d4bda9f3e55566936f09c4c6b81c114e0c117f86147e0cac7434887b2a869571f7e7813547e35ee8bf652fed7c1040ae2eaca1061df7fa52ce0b61c6c6e6b17daceeaf95c609805b4f06038a640c97c3f614b039c2ca4ad9ef1cdb3155b46af7275e98a7d684fdd2abb8f808f5bef932e64a5e5869027f20bae27849b5b0c0c7128e499aaab4008f188c524ad8ba4647233481656f5629c341c8bb03d729f74226a8657ddb6fd8a8b3fbd96b5107140abebb4e9f286dd97abdb0a6437f95b96ced60117ebaba4e4b8e029f97c003861235f9765e961c380a5d0a431254d3bb34f9d1f11bd8408aff5943d3d15855954b3e71e1486d4d87b04f3536fab9ed03f223c56ee640e9fec0398a3e7187c1ebc5727d57b4ee6c02075054d37db59e19e13a9eb709827597c9708467d5c035f9f7a7fc10f172eded9c05f27a6ab755edf26c5952dbbe464ad4ab9b79df929c9720a3d024eb111a6732d8bbf17d35f158682a595229ef598514273746bd85c2a66f3c176b5da97dd3f48f7b2c73dd2acd1edc2e194d279a64d9b72d50d0616884158e793bd93423c5ad78e88070aae5f5270eec3f9c74cdc70ba723fc140e48c1a452ce8cc0ecce981804cf1dd624d3061007dcbc770c1eb75aaad1ca659d836710ffbd0a5a66cf25536269b310674c52e80be9fe9188ab73740ae4e7d364f214d5e469c3c2c925b27ae55ec033f882f782985d696c28e8ca3a5be3ab63665552f8b550539ffc9f345edc762a9e2baac460ad4a25e845e39d787410050f729c627a4d83566c99c039a49c25f606a7d6c920faa6793de7350fddc76c4f17d39eabb0db9c55478836044d8de884ca29bab56bde5dd41a4077bdd63cad72a999474f648999ef66a7fbf5f948afa261441b349e56bd4ca330f8569369bf6898841dc8fbcb7d24274521ed22d528f417c712d621043e1f01e2c47f14b37c72e47d32a9eb4bcf25f256bfa7a618825541c8794fe902eb765355da9133c0fcd803952e05fc6a563515798b3f623d132b80266e5a89af3947a50e674e3defb4a49bdabd93762c8d5f6de7a26ec53cb5e8cf0d5c344b7e59d79f2291ce6676beba113b0c9da64dd6fc91da026387eb02372af91fb23058d6df1e4a3adab2517c1dfaa1a1bd0a5a13a8bc047dedea82c73269e32dc16c5c4eaf2ead14bf82f87ff74e5c4d1207a2ebeee67b7ee55f12fe6708f4d790df763a72963177064dd7cc5a1c8c057027e93602b276428f0e2b101b3847a32889f330a361ec4fb5668db08562a73e12ec8a67becf812e946c85d42a2ffe621035551e58d27d8ff698be5ef896a45e338a013919201c49f757d0a4f9b8e5d59ad4449df9154bebd3cedd5f4feb146ed87c006e391fd139df20befd70a53e524ce21a73a35cbfde54f69f9df38ce8aa83d902eb128bd8d414b71660354f71cfe492626c29c43baeae15e938c9f707cf00870a0b1ac46dbab9d3258494eef4412c9582fa4df8b0915d0e59b567c4ae6030a1ed532135dd6f9e4d1c149c7546f499b8f458a5215777e1e8cf6a9a975bf7f3a5c6100178445f9fa4e1b8a3efd153dfaa650c5817df45a94132be61cd5e47c0462fd9ca6f3565d5e2b3f26a75b750761d720f2e48a613baf32e202f8dc4ba2d760d499d3d2215f4518c73b73d39706f0d8303a5a5f490fc6bc8d4ec0dce9a12ebc1aa65d11871dd84714319224169ca11d7e54369a7da2033f5534e92f0254a247e23f4910141e52c7e8fc08406490d2f395d017a1827dd38e02785f4b3075e086f4eaaf88ead013a1f83a5ba9fcedb880711ecf54057e8c8339944a2722bab2061986e8083d344c6a84e8a926047b80372705e709f0efe8adffd982a1d0a3d86fbb81fc783eff39a2185359e3308f9efeb35082fad2bad7df1c0b06732da6ab64643c69cd3b63d1e9eb829a7f38033720fadbf341a12b606639bd9defc6f0a1d81519e222a32cd944369e96aed0078291cfee814aa1028375ec1ed0c17745ac0312acb22b683fe3dca509a02ab861679b4bc784a51e1a8ecc173c2137a4b7801e971ea2114e9e00f6a3fdde0d55f699926344097582ebfa550cb6fa537b191b357daa7c9ac26d84b44008b963628af3d651185d0e0c6a872dcf3e267c219259796f81c9298ac94531d1a478466c33ca326b82118888535cf89181a5a08d348ecc12042094f37bfc96d2d422a881cffffbe5aadaa7c57a22215e8299f0148c3b861ab802faa7e3fad784092c68c59ec480aaf14cf95e8e6932815022e48b6d1fccb0dc0e0f3b1e2c3de27102227276cdd227008023b71dc264758af3176f4174d7d1a621cfec3e5eb8af88ace2029048d17df5a4eb377412749bb3e97db1db2658c4e24c584385d445beb4723f0b13d4f28e64c12aaa86ccda864f7e60a9f3bdc89b634cca9e1868aa56563937749f5dd0e4199b966be2b22cdcbfd2c38a5a59962f0a3760d3e017397bb412705addf13c286134ddd672a067b639e4040639ebc87025eb7f6d51824f694212bd82126a89b3c9e113385086d27f918161e89befe5d8c99399a5609a712a24a5bc3d2f510c21489e9d36f7ba51cbbb0425fc2417e13b2fbbeec517410a1e67c3fd80e680d157325985777b71fc50e3555cdea624b96a597936ca7130626ddcfa1ed144ee91ea8030138ec7a165d22d9825dd247de7580f09bd580487464d1fb0f792f0799bddb9b012bed5ec5e9232297d85daff0353796de3eb70172bc8f496190c4fd9daa846dd1f121b64f050c4289fe6b677392ff731fd8e7c70b75c20cfb763e013b7a48ea4eef5ff7ea267f4460027167773eac63b3fc34427e9ca736da3ca0dec2885b055d862565504584c7689b507e103e8db8d9c1dba4e467057639c656dd43790f4cb0999fb1d9a8b8b7ab775023102a855da2fb1394629d05e9fd658812d5329e23e15859fb6a727257721d55964cfb69de3600bbbabfb59851f66b0f0fa69fa993dc7594d44114944e4e58fd960ef52215be34fbdac43a1c82ac28fa8d98f3b7ce1018a266ac2e4137d8852601000950a14248e8b5e743af5d51af5dc20629233b6ce387a25e5c9e60fc484ce769354dfb457f5b9ac7068be9bef1b4a5aa9f4a072cb7255a3987bead821872c1b8ab6b756183d3e59476153e69a16b4899e39af1ae91a50e1e6424f373ef9d8b8e55dc65d912c54b72e2a14d648906fe8f4688fb272b3d6b9c29cb3f01f7ef165b00bd109995e369b14b8cb8b819c8af96f67aa053823e994d496efb70c902336709adcbe6a2201a574f0c5c2ef56d3d3151b44ec4612646523e8a2212a31b1175c5d614211f69dd9315b3a95d1ffc6958d30ea7bb9d2ab2362343d8926a09bb96a8ee518aa19dc9cae545b0266f7fa6314b833349434d5902cd4222a125d7e8eb158cf168662259895e689cfbbb7a46c314934a74b1b49dc2a303e1ad23f0cbe5c924d227ce67985434d8ce38fab049fcec5ae652cd367b5fc54bd1b79953f03c4036dd63c3da2b710757609aa6675be060ae7cbe5e0dfa42b75fa78c4bf939be1ae436d72eda2962e05f247ca2e7274959e0ed81c6619b24a6154915c2290723b6dd5739ee3ca0181b733cdfd6e58cb0ef7e8f11cb4c327ecd9e16a723813c4296699a893b494a1f1f565a61aeda3dadafe3fcab469a1a40d6937c5e906ce46bedc5683b08a394e30965546ec371dda9c0db33aa4684ca1327ed1c34ad8e0c97e68be87987421f294b998daef9375d3495f5aefb2a636762839ce13786929fd0b6a9363e6cd7bfe608a74f982948ad1b79497e49b2618ccc0ba5eaba4141c7323cf2c95b206c74536af50a5cbc23975b8f5d0157bc92b8ace88317273690cf3f2ef2192b4ea7fab57c47e7faa226ecf3f41e46f6163a7649b23f3fe5c0a777654101f0c5a703f53de214b156ea0dff62d146411a5ed13875f1415b7cb98a506c8755365ced513891a08fc43aca67d3a67dbe0a1e5f486637d6b8f5554298ae282c54d002e5b0d0a893fc07b8127c1b2fed98182c3e3957ae3412da49ff3a58838a15cd0f70821cfce21407f5659eec3af4e8ec9368644fbeae48775c4dd9ccde56e174c98db04605afd0a535fd5d24f31296df6aa8208f5898370a46b12cae56d251dc411b34cab67edfbbe694b3d3e184f56d9754a339ee703ab9e2a34ace72f19d6a9db39004a28fa4f30ab6baaa9a40d4ae6675e2a297a74397646667ba4049e0e7b2e5765d9de2a8b98696ecd20ac2523b6c68a7aab7f7aee91dd29b020280e576ad286fb3c4b25f3afb50077a8bf88b86a28a34d69841d3c1d547a5f3b887b36e1f81f7256d5ecf8a463cf3874cb76da7f38368b0fddd82376d8ecaa423dd5b21dde88ab97d8f37539bbc9e790ed6a9033e10eff398084b8843b14c2a2604147f46f657ac380d688f7d311673b274679783710ba6b3122b39ca1e6cc293185c12dad0187c5b21eb184e31ca9aac4ce5f33005b03f0393b687c8b7399fcb6cad101aa3f24faebee298b920eeca4e4acf0d22db25759159eb3e5c43892fb1a6fd30664ae9864353d4997d5470f48f5e2537b1127da32c8fabd9a088b3429116395e35a8851bee3124e2809bb39c5045e8dc02165ce8e12ad3d0301936bd98b3f8909834289db35f373712567fb68b4bff2f391eb53bbf6a9d198c4d2749a78ec1d6b71efe98319d4c207e08ef018315990b1aa23a941df075e6c0e6fc32a63ed098f69b8e1e2d45c57ce9947bce9832144138186ec47bbccf1d144323f3ba10c76eba32062de5acc9926251a0bf0b6c553ede182eddad8958e548f791730b07aac484d4a99d5732e6560431f2033041126a72134640431427306ad6eff2b7012cf8e8e0e668c2ffab7e9a34c2697d5374c94e540b9083b1892c87e38972445407de7da4e82267b551d093eb3fb4149a9380a8da8aa8348bcb20e757114f4b70c2fec5715873430d24d1d6fdbdb66527f5a4066637eda4153b7ba3ad3a1a7ea22229f746d11357b0d6ba74f3fd18429e118fe54b7e170dfe1919ea6d14f2b818b68cd2c91357cb646d97c036e7b19a8c2d285ca9b1963f7524a086e5c33f4b63fd4be0910fc886b6b9fc8dadc906f5087a3cf19e463615dc2ed34f84967e4f7da8c179a7cc3386cae7ba7d1bbdbffc459779e8ff18ae6fb96e9eea18456936beda64b0c54d9c2c6d03af123c7ede3a78afae57fd95977ad97a43e4cee615e08b72f042fcdcb3df8a67c2fcf95ffec960145b09c8e47e610e87ef2fe66ee86d91d2bbcfa5f033adec40f66d9e673be6bbfb9b4f895b9b3492ef2bff00adc2cc60bd6e60b156e5da1fa41962b1f1cd9c317402f475a05c170984fd89009d891302481057f8a5d69c96ade49c826788553dbf44f51ccc726d42ff330dfe23bebf3fce87dacec1b16ae297967e5b51a450ed5077af507c4fe7773e0e20838988d7c3da62d0e1b59fc75467a53c4a72137524400f524d79e0f35a86fa15b46b51baed9902711a3c09955d034139cf4b21ca4eacd1e02ed38b9e23e473f7a465553ebe1c4e98e7874a3babd9dca7c919c88ecfc9e516fb696b9ca243c4960e7f251d0b01a649d60bc2dd305663d8509d8e57f4dcab08b1c148709ea77c0620fd1a0f90cece9d0ff6ca2b3aa0ea30d0957a54c2c0a0d3ee739dbcf6d189fdff0162339170807fe926b2de1af8e36de103ee13eedb2f81a70199f9f1500ee042a4b8ceb92a6cf3eaee635bb2782f325b6a1aec97db96645399298825b325d825f4bbec6d0c2cf9ed3f3427bf13831e3db2485942c067526577064d36038efd8faaad2523dc15e8f7c3bf4d1c59050bee39eea0dd67d0c908cf69a502d00b527654f0c5975e37463350d191da14fbee02ccadefdc7d7e4def213a07be76fdbe5ec1f34a70db8fab0376aeeffbbba4aaef65ffd16be668e84a8dc6cf604c60b27b08653c8c1bba8616c3e012469ed1625f15642d87380344801c219f0c1395e87edeed0bf0c64642d4e5481358591497b3d0e95fa70ab7bda5ae567389c98b027649dc392f377166218aa00ac0a5e3c67ccd4bdae33fc87e0580918c586eedb24406f47986df2e1c6e6ad12461b44d0840417e18d3042435d8595f71e3a1a8059133d7acbf539b3c64873715c91c10c43f61eb77e7f84bb6457873c706db1283cc007eb906b12128a94b4125e14f7630ef4d36ee9926d09b8953eac8d219e215a9675cf0e8edbfd96edf6bf052f77c8dca0eaa2e84dc535412b5be14910d22fa11c18bedbe64584d1fa09c1c9f44e559100312e0aae87ad017436e162e09ec3834683db3bbceb74aadea552b270588ab348e7d897c8b6df80ff7b74aa930b485dda0c051b689b92d7099a17ea25d5d6533a0993ba8d2a6652660836c07dc40b90d191fa76bf593af34ffe9f25d6671541c4ec8abf3144e7cdf8d27424e853bf23591da46dc9979ae89c85dd1d2bc473e4fc25ee95631d7dfedb6db7fcbddca6df55a410ed79191342c92748a12cdd2889b1b98aa6d502789a002443de7531a1fd591957ce8687834dd08568ecffa390397ba246d843642d82a43353275f03fb8e5981be009061abb79fcafad40f14c3d7fb443f4cc7f420362986781b378cf928275eb173aa1d6308346dd6d28142b50ac5a1adebe15c6bdb415fdd2201e3264f3cd3846bcb0d162a3d6907a6f3305da7213091b2b8c97b01a079f57fb32680ef0255404e7b3d1a158d199816fa52ec7527b90accf24d7a85eba915fe5900bbc3736fb1a07388da9ebc5508f27ac77201efcea7b8dd4edee2cfbbf4a4ebe28ec6c717b54b7bdaa5530cfaf6dd12ff78b0799bf518edfde09baab5769f578a4c60d3cce5fbfac84acb525ca23c8d0758e4eeea9f8199f4f46e273160e53add058c26744b7d1eec64914500d04d3db1986dd117c88bcb0e67db56e84aefdadac8d0a8c33bb3cb242a1330b7796f6c2f8700a63a0eef43d3bf314c96e834ee8f6ed715761034857bbb69a99be30add43d0ef47dfdc31f86681bb8f71de4484aa7f7612b13119fef4e7ff8f54bdf21965f21b23aabd16d9d5c5ac68e9f72944148af31cf03f1f8eb66069f7607e25f67c0220daa53d8e13b07f45706e62a9e829f3088de694f011771e748ead720a4cae92bbf4a1795f2821894fd59eb7e8913e4ab985cb0a64a452f8bd88226d65fd7696d7ada0af7d025b5aa4ce81a48ae95a5c53bd7fb75eb37fd5e935c1a09b742ddd866a66877326601ab0d3891c1f0199972975e9615edbd3e8436dc756374c501ec979b1347dc105b95d63b925b8a0fcd4f28a7584912365f60461340576b44ebfc5f697589fd048230580e7b3374b130fdda4b7288709561588589438151216191f909f1de537fe16bb8eed7a583b7e402a099ead63b87cb35140f85ddee814e3fa195889757d2b768b32e27b1cf515f44b9ce2aa4d78848c647663bd063d08eb86385c3d0714aeec89ef707bb6b2efa42a7f8b19e8ab76b9b3b34741e4eb9e33b9a93ad1764c7d5260d46cd074ee73fece8e780d456c3f4bc6b9dd44aa18eee56cea167dc22d205499367da1208b7d65992deeee2abb1c70e7be67979eddd5cf840dc74ca9ab2d04c1934bc0f99c2ff051f61b06fbfb00ffd705db7c97e7749b87f81da23facbab5b8fe616b4219db16e6e12efcaf576658c5575a9737b819ad4e8d808e728f0301a1bad8d35d0000af9292dc9252671b1475622324413fa3f7fec74438c17cfdc53dbab97973f218a34094dc1c3bd19c8f5bbb5e3ab709d4eb1241d22a79722057093a8be837b8b0e58cbd540b559aa83ea743ac52e84c7d159a86abd1ed2037b5d8fb5f97ac96acdf01fc4890c382cf189625d37a58f982dfeb095cbd114e2d314924928cc58e6a15456adb53cf6a337ce1b4915ee9dae08e21784c8fe61a32ebb4b0b00689bea3e1025d29350b788d894cf9b4a3979c8d9d403f6a7d02db3a62e156201080c8d1dd5d6aa1b75e20caa2936e06550ca72eebe5f26f7b2e1c8550d475bdc40dd6322d215202814691a5773eda6cc768b8b0b2c48690acfe0ab10b2746fbe48092146d6bcd45de41f265ed37625a73488bde8719f81a50b8b382cbe8ff7f4325dad6cc6de728a214946540320410f0c6c411e21cf1c859dd418bf9f314e017dab4dec67687c6644ddf6825b93e40019c867876db2316f3dc9dbdaebf8ef6e39dfb5b5aba51ae33db4436c00e6d3475aac3b0cb6fa0192ec8c1998aa7839f2bb5d63aade88ab7bf758d017f7242817074d972652e9df450d1fae1bfaec430ae54ffce2c2b042399076aa69761176eb74391aa291a5e9a3149ba651779bc756a558741b71dcc5853287894ee1529", 0x2000, &(0x7f0000001080)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) syz_fuse_handle_req(r0, &(0x7f000000d7c0)="2177a678c340277ccd22db25c8f3d64bf911fd2721825a12baf2b2074d92731c6c39e4682829bc0aec1a0574ddd8f1a36bee5daf4228fa319b877484608daaa408262439e137d5ee8365df935b705e04377d14e306d48ef41b91330201b1cac913d92dda8a5db07990dc3063e4438840ac5774c340fd7544c6c7125d3403cddc6da72047d6ccb5bcff922ef285cf54761e763153f8a6880dcec689a7468e2e68cae336d015a5cd4d8f3791207e0a848e29f3cbe20c2c0dca4d59f449a269fef404658d537a065430ec11f5774764989cd6c528a4f44c164a5b3b120a8ce948311c71bb32a95524c6967b3992182b3c9968ffc07e1e78c2940b91f19ea570a34e8b7009f90014bc9bc3e69e6ccb67b4c3abb70bd9358fc59d48046ec15c2dbe30f138f7a7b1bf174f17935fdd4454ad6cca0e2869cd45e4f2f279463f93b34e7518fece17746cb9d3a62852361b5589e4f8ff01e072d43b226ffe6b45f058ed0f433db8b50eeaa439d23953fe871be191c77c2493bbeef9e71d1ed27fcf8c1c80af5994763b9a2374315d313b65c79170b05cf439b73393b1ca0026b228bc98a9916dbefc64cd9a808d4119e439f839c2a5ee853f8df214b40143629b69b5e25cfd5031dbec180a6e64bdbf588d58d2c9d335fbb3454b1e0234cbb2149229cd6e6552288cc205dc25b1535ecf68de4b86a9b5543c5af9b7e2dfc7764e184381c7a5989b6de1bd542c6113c41ece1908e7f050d896c91f3421207d2ebffe6cff31ef5f5eb13b18b7ef875ad13928dcd6768f5114e6d15c3f4ddc6a0706de8cd62730e3b03869ad6704be19240caec081ba659d24a202e61c8d3040ea12369742aa5b9e78c4219a5009444a233438c6a3e7214065d93868fd5e2b8541a090fb374dcaace44cbc78f9e5012393af58c02f886e0c09d69f35cbbefba5e291c90f6c9a96d495d6708c211717a994812287c1d026a650c4d1f3c2b611c0441b9503c24c9cd3c90f9d3e6ba49032a747def1f58fb3721472d8625dd036761bf35c5b344071f47dd27ffb071d9562bd37e3e69febe597a621334a13aaeb3afaa45d9647166ae0856ae12746461970e8f5599cd2aabb717aa899ef88a186555c6787cc0d0c4d7da3539c1d50213215f576249708d6f7170453fd5163132b99645e23700ef2e74b84bd3bf622d5c915fc1f311b253f27f162cfb02c427396afb7c97c520e0d2a6e9725b6bf81df73cfadb679eb5bed626778ad53e638990db20c8061f7f7951f18e7169850b714f18b6386f53e67025bf315b292a16beb5e48622663a63648863d237d43580971e74edcfde752f4649a97b408aaacaf901583ef84d90f96050dde5c5eaf752c94f065becc37769589c8c06785fd962589c363b276d3fb72a5e847e94f0cfcd78e2e67b280bbedcbe59c662d340612add11ebb14e6f37c903159a4940aefcecaa0ec051f339d9659ec04ef20125cf6db488a7c0c51aa3bf9cffbec4d67c1a35eec5f45aeeac05a96e1424930e99fba2084ece429879ff2066e281fa4c759d97614668968cc3c6ef7b8a73b87deb7f2d8019d40641463b3e2cbd7c35e448c0559a3875bce85e28539ff5d03056044ebe0a25da28fab22791c4a4dc118b3c60bd5bff3dfec345d376d87e633ffb972d89d947ff9914113cb6697e60c2b7f5ff9a62904835411e7e5609be6aadf26635fe63ab2d260129529fd5003125bd5a3fbb5f4db39b7284b7df6b84572b894c7add4571a32054fc76ec36035ad0d24fdf67c26ac56120a370383e0b1f11e8885d7bbd33410f97b90278862ba323c9ec12729c47bb23c366eb54db7d7aa6965fdb184dc613120b4375fe3f5c0ceffbe50c89b6c7a32c3eb439fcbad410f5f26ca1e7495637a380a45f59a07d5bf1bb0e4a6d8b5e6aa1c0d6e3edeec06ce41d7126c84624f602ec662838562992da56806fd39f1728535beb1355e9d3d526bf73314a7dff9e3c35652f092877c0157a17e940d13b75319b3422b50136152141605291e0059573d0fa56b2a54d26af13aaf95ae67aa7c19c35d380a8d8848dbdcaba26d3dd9bb4cd163f6f28b0a7dd096e5e53f5a095f88dafdf01760b77bbfafbcdb94c3a7e7b9191f421316d02d8951e57fc1c6e27db9fa8e2e711f544a609fc568e1db6f0e7d76b16d4b0a1ed56f61e08e49a221100ee0ce858c22f96e3ae74b71b83f486a36164604ba5a95330918db2a46754120fd572bcce9acb62753fc5476515ecf2ca896e6b544b3f42a5e6c23a1ada3fc15fbf3f811da366e03f421c39178f671fb91108afe6f37909bd931a5dc0d70676e94cb5dbc708951b93f025fe146c46d7ed7dffaab05598a8bba2d9a92010624a7ce83b0e8d1d4d0adeaf65b9f18faf8e1dab8a5499a783306196df07c3e848ac1247a7e9d24d18f5a49a82d87974ba70f907c773f04e251e78c67e20445f498a7412f569df5508e0fdd1482c6879dfd980bab531a3b6521d02f86ba919b87a3931c17518cc9f949cfe7fc29821341c074bfccc6f4c6572b80c9bf996c92e65ec31f655b120931b5fefcd3c1c7c9fb748123a40acbd58f345544dee201659478ff9282933cbd00cd4ec8d0c5b08261a74770c4c6ef2d1f5ac44b50f3d19cfdb5e236e09a6a96f6a513b3e343de74e2b4f6918c1b80739469aaa2b649ed56f4a9ad32ffc5d7b547e1f900d7e22ab96ea28823cc2a40b13158507790cafa4ec0f630691a7fc5584669eab1854b0f2764815cb214794bf0a794ec5ece9d3454ffa514ef49f78335a14775dd2bd974de8de5b88786fe03ffbdff35c34fa6677909d1ddcd42b2d5dd4135bddec07c89e43ed85bfd941fe8247251e6b15ca890da3ff0164c4ed6a42e9db736e634b0d992f4dfe1a3c1837be19c643b0a9791d8eabebdd9381c05d0824f9f075c756106a96ba2ab95825c4e9d14af8594e1b90121d35bfd5b2195222c8d0bf40500ba77c50c7c3119b2c4a6538d2d57a0ad4f877664de6041fef3370e8169ba6411b9d5ac0c0c3359e74ee674b4cb147593728d8195f3c3d75f11a7a26d03a492ed27022c9e5edfc378047f324b7aeb12dc02299ffb8f9fe04e9814ed6858ab4dcc061c581eed9fc750d0c4794d71c756d427f9b224797c50aa2553825eaa890d2260152bc6fa3624794767bbc53c21a68308e7e546fb7a83e4426f8d51763e382231ed2be787a8bdc8eeb72f68ccf0ea79527d8f08e5a7dfae7cf1bdf4203bdc0cfbc18ad321cbcff297711d61a3d1a4d7b1ee5d1db6035b225fa74d71f6ade4381f282392cd4e56af5c09b3d4362b6e3e7aa7fb4213e4dbeb20529e2c238d9917a8409f1e6c66a8af3bd0874e5e3a7ac09255fe68a098486b3f8ea09d5d1553ca3063c836d99e2d07f3b98f3a01337afd7d4cbb0bcf2b98b4fa57182ab2c8e7375b3b88f5171667e12be737d7c3488275ef8d96a59ef16257b5c17f009a43bbd78c848a4743ff63a73ec633472da4fc419da3190e00247f62ba67bb1e6024ab99b39bdb661a0a096b2b99e8eb094d3f570fb60ad4742d36ea51fdae9dbf3df989aec25587cf1e46ae25f4a0e5a2eecf031c7fad2118f1c33d8e46fe98527e7536887ae1106597bb58f96c9852e07e0a794150c030e71014c676cc1264d781fc7e4b907c43d53e8a5a265e644da6b9fc8b9f9932f56f9b910885394ae89114ecebc85ee5d39e1078fbd444c5f012d5e942a783808f35b8b47e53696d3e84456f2a99254ade49445acce7202a05d868ace4a21a21851012ba32d875082e415ea9dc0427b75eb765aef503976bc7af47aaa0387c0ee3f37237fc03577542cbc8493cecb49913d7b7a426fe084fad573af00b5f03e969a884fe56df4d479d0191b5b5164aaf26415a0bcd482f1b8733d5b81d273431cf29f16a1a13cd06ec8f9b3a675a3c5568b437a63a6a84492988d119fbb24dbee526af6ddfc2125df891efbad61f759d9bc1e042940207937060a8539c2f3b9e5b8db542e1ac7ccb42dbeea16b8f6c16bb670c8a5c2e32924e867d05056531d678bd5923cdc9b3b0db8bdfdc2d78ca80b99e2c637fc0b5a217d97c8e3e685766cb7a7dbff4ec9239e52ceee2e4033256a15b04ab4bef70cb1110281c2119f74201e1a566b973349121b2bda0cb0dc6acefd366c2163b8c493f5ab09c2383006acb429251ce47a1c48f54495e52e1d79b7a4a9b2273cd8ba5d37d4689db92eb1c3aab2023e3b59ea5adc2aa04206e283ac207d58cf1106e8748d17b8f3302d2567f52da0e0625605ace4f1b0d1359af2a49e591d395024aa4ca3412102af4f1e2f35a168f5cfcea84e36c44a9a67f3d9501e48a57aba5f6598b9d8d31587939849ebf4042fdfbbd26f3950b4206380ba1b96696206d7a9567d48f1b46b12299408ae89df7dc59ddcf518b7f06b3c8bbb9a697040748c1699952c95be2f8ad26ec98ab626af1c5bf4ef4964eb216b94a68cb6236d6b86184e4196437682334c4623eb26fcb211802d5a2920da668b1953a173f6b008c18d78138dbaf483f643fbb1b8a646f47508674db54469b648268d308dbba8d25130c92d6643d8c06d56267d033fe1a75dc3bca2a18ed712200ddc9667e06ec0a03e0a37e156f8fa73a90ad4ad5c1076567189dc9a67a57945bba300de400d0119d91280a16f9bc469068931dbc1d8ed7ed788d70927d4efdde8e04b9abff3c8d654b97db1d5c4f08aa68a63d86e3e136f8ed935b1c524347a3295fc6f8cb0e8a2c164459c94d29693b6adacbaad0b1333b8181f76fca82a0ee7702f4c28fd86160a2065823a57bb90186a0e05604e3ca5b1f622a428432026e4bc1ad79edf66cf8582fae9ceaeae25157a6f581a51782352cc7c00805a2f78f4a80c94a3ccbfa53ab505c1f97120c99880ef8706238c940c8b30d17b7ddc10ae5f95a48ede330fdf29e4e57e28504bce9344e869baf79b84cf2bec5462290392b03c3d5de4a0ae6a84cda52350e8a1943deab0ce5c05f3e9501563bb53b9c6de77f81b197d843f1b157f77a439edb94c585739f35cf18b361217c54754c9e1e2be3ddb8de905b62934c0ab71c59e1e8fbc8b0d9cee2f12b0af95a86227dbe30e42bad1213d4f1a4803564d6ac86451afaa9b1a007d134eb87e59374d761821965b3c05d7e66b47ee04bb60980f57791d06b5d0a51ebd44be485739ccc4bfaf69687856aadb089c1b4aaffb773ddac3bf2ea80eebbeaf1291f4cc4badff023eef3110c8ca11291189c0057db4eb7c590cfd46967411825d723fddcdc264bdac7522ea5fc78abfa33d91b7c69fab08be8f67ea5bcb2dfa9ef4be7349c0af93e4f24b597845d5411fe9d6656f52d6a56559b69b532a000620cbb4adee7f99dbf20535a1e160c72d837c0cddc0584f5a0dc290209e621de29c9668cab3e16a8204467ce612d2d5be325453886bae07b210085fc16dcd2536c962cbd65f7283e5abeb16247b6c5d8e6d1cf890ec915c9b84ede2f006f19783b0a414adcdf2e40e1ff4b078db271196ec51391fc8d311df2eaac826fddeb55532c0b50de34587dd3059589165c47de5020e2c0a3d0ecd5f6629cd30d684ce3a976540fc752fabb81d59bb8e34cfd4617086d781612e3482b8dc9bfbbdc3ed54d12999470215eefa53c93c496f83fa378c8dd7b208157df4c61673284aae043061a96045d019bfc1ed6aaa4f792b21fd8011efa841f87ec4b96f51a363c9be0893dc55d6e5c9825f9a0d565b4f2fe9a540d5c186a76f90536472e4ccb814fd6b2a1eacee594e346ff85d5834bf7ca51dc1c68b4e48ec31a650a78b655fcdda7132f1704fdcddc71b44d0349d1f526dc3a14e206109a05b3579d9d5c6f2d7624177cd325c5c305b2379fcd60e197475d6aec6139c4207d09d4a784bea7c38289cdd0e78fe571d9cf3b1ecd8a3b4d6d47b7e6781508fa8d3a65cfce4662e53f390a5b193d46c64dab06da8e49e6213d3d8829acb9e673d93fd57b7e4d59ea1d31319eee01eded7365619140891c3a42f2532e5e509df017d58075a8f0cfe8e313ee5d4d5118eccd51d5e2e8ed9d315a6a04bbc496bbd0de473811c12b93b37da448f74ee3b56310aada3ea701a7d74f2df8263e1c39bd135db6c9753eccf60b2472770a38f491c1d4cc8976d349442c4a098cbc6638df446e2ff6047a40fed6734128039c51ee87026a89bf0f3ab350eea5b0956efa2b3733c650b7b97c72f689e9f65fc1ee0a37c5d3abf8bb737b9f4f5cd84ab02b4ab9a58e60a2d74602767126d0790d77dac89e4d3c76e5ecd51f65ae13096d4ac5edfbcfc11ae4670da1dadde3a4dd0d3038e7f9173115fc28be260bd9e428075c9005f9e40a8eb8ff997847ca73899814b3bb3e21820cffca048cf74530ea8f1f0a65500e13b067088f961f5e7e3c84f66eeadb16ffbe4d17c63434d11df12105c2c3b472b6f656e91503e158cb8ce8b68c601dd3c9a47790f995acb67064f598ac3b37a4fe63dde5ad9d4092baaf3e98acb99a498e0c370b9983ec4ff32bba4b700e3534bbfa7d2a8733649f901968d4dc6245d99bfc0df31daf75602288bcd8dad2985fa4f54bd693d92c6b0e03cb925130d49bb66cac7a0d4a96450eca38e70f6d0d02f7c33cc35252f046a72f440e91b82b64e4edce1154528d8e855d9b3bf52da9c6f2cce1c97c3394c517073a2737a249d30aecd98deadbefc0eab47713e390849674a042724dd5a2dfffaaec0c0ec7a4c745eb25005c0465a90338a9161e8762c3df2ad08154d15cded5155b68ee45831d994efed54f467c977486361230d4baa95c61a48c50d18f4e0e63b76eb0c89e42bb9c1793269e2d8d12b1ffc1f662db9c20238f94c12b349bb85d5168fe0ecd782d1b9d20d800cb9ee258a0556d2d2e423a5df51a1f88e13aa00c17889d46f11e22592cd8948cef29354cea471b147406042eaf8b9766a6c343d7eccc82b51140614ccd9a048bff6a8848c0dfef07fa49da8263b79e7fc2a17e025bfabcdcf783d64108690d5cdeacaddf0f887dc0af2fdf24eca585957a912bd64c233d60b768d52d7f31b722e42a341132715afdf3008d865fcf16d4d14f82d8beafd8b73b7d51e81ce2c1a9aeed8f2af4a5b19d28479e8ced9b7183d5deb77b1272b56cc3d9a8cbfff0e702e4654b1fdb4963be069e02005c9faf2d2a217581b76ff929ececbe598a62b35caa747615bf4874aaada8d1749cb10b6e68a016aac6b27c35835ea820ed9420b9706485477c5cce4f1de02995242cb6f75f4ada674e0e4048432d018775bb4e5459fe2bc212da4b51b9a815784242db75e5bab51e0276a739e83dab7bbea920441c162838709808ba590fa33f317a38441eb91ac7e06d988a508856118efc3b8bcfb6cc394dcc08f211b27e546b909c71fc6fc615b3ecebc3994a2bec180954faf59d19e7af27f5d6bf5c5d2003130be38df22effa383a22e99a96d39006c1aad19e019bbc0ce1de5ba33408eab6f34b2ef561dd339855edd010d346d9d42eeff125a3c53b6089f5e32b6a68a957c237cc8fc6c864612ebac91108bdb8e477b9fee15d6ed949bff7ec0618d01ccd738563ba91e6222ce101972f294f674f9b571176bd8bfc0e53adff8638879a241657d974579e1af6ba2526db72f276a7373338fd3d111797fe2fbf2a08fa513c68ddea26862e330c2a2e99474442d0b69e00903f76cb4e0f8d982d509603a1080d554e0d5747aa16fa7d533872b415f0a7b03e20011ba1d4e9ac6cc8ae64b2cad851cc570c3e4c1ea12fa10330cab2c001c8b9a32bcb15ccf015fc99e79db77b070fbbe397506b331dd071621a82bbb079f0a4e163beede938b9c78732bd0f09fecdd4f98e274b57dab1469907449f7b9cb135f9c352c5cb7450d0ce032211322d769903e318876f36857c607e325bc4d9e07a6fc0d9ff8a00fdead1f97eaaba41b4dee70ee959c6d533afb1149aae38e80e743cbd41307d46b3960117e8292e67d8a50cee7eb317651feb9a12f886989444ae3e365552a1329a8f06fb78bc61aa19d540455888072a9cee7b1fa1a08c6223752187e222ca46d4f9265e9e1de17d749a919a232675d2e5ce17e2a4ece303945b8651cf1d670bec4b55c1d4f6d1601db4dbd6760c85d97def4cd125b077b01df1af032d5bf0d3ccba226ab4eed087502464f50bf280409ea9d7419378498f58c12e671e69ebbec3617ba60daa6f34cbdc468dd1b5b771ddc25ce85bacd2b2bbb931cd23040be6fbcc7e7e4e0d9942ac78326b2e919487adf5838cd4a2b671dcd07aa26e0b06cca28b32428e639c7312cfad4fcb1239acfa9881b589857c652352d072bae63b9530d6e3ca0f5191840703d609f0e9966b16d46957e1cc481e58fe58d219df4d1d484b45f2bc4048c050c46506aab6716c0bbb97b4a45d342b98fb32bf2ea237ff1692f74b2c6f1411d5ee1717ba0f03cbddf42265c5dda9488eeb482d96218a13d26bf6af7cc9034add18b3246cc5d78c22b7be58387c3e14990af1ecee0e0ab58897e847325229459a4477dd4629761f7d140e653b7b7ce1179f9b20431b80186def3feaf29b859ecd5628660135546911fbe42fbc0e421f72ebdd623fa69f63dea670c1ab1685248f02c5601931a53b880f0d39210e0f61fc5f93fd70eb91aa8447dd21345fa9b62db067cb0d9128d73e0495c4fe4eed8d27f4235c3db45af37471cb4eb483743a3a1ce107ce12b0fcebc9de38597aee42ba00c738dfbc5df74be4e78b6913e9cea75cd171597915c299a8b9785e711a294ac0954ef624c77f56eda5066f6eaee90a700a1c08f5776baed7b791e965472286029b68482745c751ef0c1a8ef44571fd9bd9b6e0bd8699ff6c7eef26156d47f91b5f08771e08721b39a33704aa1647f9e9504a74e538a7a403a789e7bec44ccacbcc59f000705b1893629c832ce8f17bb939be56b8ee65e685c1d4d7e5af19fa53a7e783783140a467cdc9269d6e6fd44eb2537eb5800d432b77968222c6a3162e15e2cc0a1571f5aa69c21801956f8651549ff0012c20446b9970a98ddf02874c278624f95fec48a9baa37f6d83a9597e820511f52638b5d15a16eb87463ff37bda040bc9f9bcb95a481c35f2bd9abaec6be5da64440becdf71cc3e1f95c69f120f3f7c5035b85ddbfb47ebeaf42cf8f80060613fc1b207d8933e8bdbc3d24bdaf2b4f2449ab8428291b6f37ae95e265c0c8c41de925cabbb36fdd6d7029e70566de3962ddadee5355f3b3f7ee5ce1c6e11f9cef87a142db2ee579448c5bf332c988efcbce45f3aab5ed3f90bd09a3ae1d3866903cc5e4f4b09387a2c6577ecc3d6cfefd0ccc0c1dd254eaddb208c32ad8814bd6b0463f862bff63554a2077ac63ba061796b18a52b72a9e8ab6850e79e0b5c1c32198286041f953d94e2acff118197bb70299a1f84468c1c2f1c9c58afb228bb895271e82cc966a1c18cf69536d0c1bba15904df2693052d60bbc532c8ebe345b10581bbc683692a3554b9ea4ee9ecd16c1ec843b9f0a61be7d5c37706ed1cd0a52773ccf390f996d9681c212c544e14cc234633d31757c200160def2ce2b0d7b331767210cafb31d1cda35efd94dc48afd5de4183469011c095b9fb51c7c76cabf06487aeadadbc49a8208eb1ad181e9677d0f1d2b95dc64321d02f3d38a17474288326f23d3849302e56acc64a2bbdbedb2e3d4b55982ccfae6313b68ac78d767abc2d40cc5b540b23199781b5ff32b5dd1f9dab99c4905b9c9bf0cb10a085aa110f2c4cb56a68bcf8331cb3f80b6c9c8d3225f8a092b226966e6628dfd840a9d6002fd1592e71bb4916fff09745a0fcca06d9a5f5f00410215145579a4f774bbe9c3046bd2527f403d1f348aba7fd5b32fb2c1588ab7acfa4db1b3eeed9ee0d9c5333dd3a9a33eaea5d1fae8d12063091601d779710571a72b18ab32166334af4d9178df9f2df08301979c930ee7ac17ffac0ba3cf0edff6c789fbad36f408cabb2adb34f74bfa78724dbfa913427a2645e3072e69998a07691289f121e47e0588fa9951145299a157dab21f23ae61f2c6b15b8b920b3328e54b2a9529c0a400b76d974492c6f3f5e2eb9719a10f568455ff18c7bfbda39d94f77a97b84f7acca0ac28c033e0d660adfc8995a0d5d69f95baa7b20be6639572314f03a510f38eadc7d2f212acf279e73223cf8bfa90d6aa7ed4520070992477bc4781544a0a550c27999ac2b44b6179c1780f7fbc8e25453c7a2f0a5c09054eb6ffea4c7da06edb8ff4bbab6406d7c93fc9cc6aa4a07a7abd77a5946c95087330cd1d7489b68a2799ce6ee38e1d41117f86b74ed078c4fc40fba9317539add72d255bc86af80432bb15423673642a956c77997b4cb5f54ef7c9e696b5c857b0e3bb90771e95f162141d17c8d62f0cca7bd7cdd36da7b268c52b0ecd3554f97f4aa9dd2c9fe17859e7bd0b3eb0280d5dd424785ab4bd01e5d0a20045aecf4e94980713906cce5ccccfeaf3a2845726a580124b19a2b7f7dcbed8bd9d9713f363a1cf13ace7175fd105de7a369ee949ff3f96f1be80fda572827c2b75dea7d8aa229ad04763623c987e8a9a074023cbbef0d7a77480a7dc4ee7e136e4c86e152086738218da5e9f170a07d0d5962b8c361af57fa0154674903a19fee6cdcd6cbd2ccdc6507442017c78d30a8cb020267773394177845657f8c2f82d6e2491335666f82bafc28c618801abcdfbb1b676cc0bb8dfda9e1d27b7f4139ff9e26eb2db485b65385b267a288bca7389d4636e28aacb8cb1db27abf23a8d8f1c397e5b2576aeed30081cf544e1a4cb3bbeb955911cddb7c5d9b6e025658b8d191da7ef9659815a6c627e782bc005994c4026429c54411b550a921340d4fe538c2d8cc1382f71333097a83ff2750fed1036386bce15c1f3c10edadd112d90718669c7ce942ad5c0b16281b51309c60ff168d38ac3423c3cdf9de8b73bb0464957aaddb7c3388790f6ef4d478877a81417ba291c11aa1b1358ef79f35abfbc12b7392b9dbe861d9b9093a4f43b622d2babd847b49ee1fb59c1e14aec7f51cad37a26d498e2bff48e8c81d9627e925cbbe1ba860bf4ce7677e73ee8d19e0230b62905b6052cccf6045d7b0cf8b7acafbf0300ba37f2a515c50ad9d5a038a0315fdf1eddd79ef5c7401668654f45c0a8711d3a7b8fdaab2efcbda9cd19353f8ad641756b9083b677a622bddde89c3aa7c1017e483c5c0ef2fda72258cd70f5a69b4f1597d72557e5b839eafcf5285debc629bc3a563d0ffc45a1d74a10041d83dc22642fb8b577f3ee92a38633c5ce38cf21ae7725a2b9a32f746e646686b50a0bbdc1b76822ca55cda8adfab48726a4e9ceafd18337d684a133aee72905613445ac2bae8cbee0bdc8fb704e4bf93839f3b1a0822add5477dc1c8e391776b88ea20953b0f2d739b143bc241de36b09ebd1149df29289ba66690f335e284a5fc9408450cfa79167518e5246dd00dca5d3064c5591ed1f224c971aa4ef9d33d0aa958dd16c7763bf6c65394cda52190caabe0f0044554ad8373ec46cbf5e123eed1796ae6dd2f6d2d7ddbe490b551ae10d8687f7eb389c3b9651443fe595", 0x2000, &(0x7f0000006a80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000340)=ANY=[@ANYBLOB="10"], 0x0, 0x0, 0x0}) 07:53:01 executing program 4: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_mreqn(r0, 0x0, 0x27, &(0x7f0000000000)={@multicast1, @loopback}, 0xc) r1 = socket$netlink(0x10, 0x3, 0x0) writev(r1, &(0x7f00000003c0)=[{&(0x7f0000000180)="390000001300034700bb65e1c3e4ffff01000000010000005600000025000000190004000400000007fd17e5ffff0800040000000000000000", 0x39}], 0x1) writev(r1, &(0x7f00000001c0)=[{&(0x7f0000000400)="390000001300034700bb5be1c3e4feff06000000010000004500000025000000190004000400ad000200000000000006040000000000f93132", 0x39}], 0x1) r2 = socket$netlink(0x10, 0x3, 0x0) writev(r2, &(0x7f0000000080)=[{&(0x7f0000000300)="390000001300034700bb65e1c3e4ffff01000000010000005600000025000000190010000400000007fd17e5ffff080004000000282459801b", 0x39}], 0x1) setsockopt$inet_msfilter(r0, 0x0, 0x29, &(0x7f0000000280)=ANY=[@ANYBLOB="e00000017f00000d0000000001"], 0x14) 07:53:01 executing program 0: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000000)=@base={0x6, 0x4, 0x8, 0x1, 0x0, 0x1}, 0x48) bpf$BPF_GET_MAP_INFO(0x15, &(0x7f00000001c0)={r0, 0x58, &(0x7f0000000140)}, 0x10) 07:53:01 executing program 5: syz_open_dev$evdev(&(0x7f00000000c0), 0x0, 0x0) r0 = syz_io_uring_setup(0x1c88, &(0x7f0000000340), &(0x7f0000ee9000/0x1000)=nil, &(0x7f0000eea000/0x1000)=nil, &(0x7f0000000040)=0x0, &(0x7f0000000000)=0x0) syz_memcpy_off$IO_URING_METADATA_GENERIC(r1, 0x40, &(0x7f0000000140)=0x307c, 0x0, 0x4) syz_io_uring_submit(r1, r2, &(0x7f0000000200)=@IORING_OP_POLL_ADD={0x6, 0x0, 0x0, @fd_index=0x3}, 0x0) io_uring_enter(r0, 0x450e, 0x0, 0x0, 0x0, 0x0) 07:53:01 executing program 3: r0 = syz_open_dev$vivid(&(0x7f00000013c0), 0x0, 0x2) r1 = openat(0xffffffffffffff9c, &(0x7f00000002c0)='/proc/self/exe\x00', 0x0, 0x0) ioctl$VIDIOC_QUERYBUF_DMABUF(r0, 0xc04c5609, &(0x7f0000000040)={0x0, 0x9, 0x4, 0x0, 0x0, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "03000140"}, 0x0, 0x4, {}, 0x0, 0xf6f36000, r1}) fsopen(&(0x7f0000000000)='binfmt_misc\x00', 0x0) 07:53:01 executing program 0: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000280), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000140)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_DEL_KEY(r0, &(0x7f0000000380)={0x0, 0x0, &(0x7f0000000340)={&(0x7f00000002c0)={0x50, r1, 0x1b0df5e65603637, 0x0, 0x0, {{}, {@val={0x8, 0x3, r3}, @void}}, [@NL80211_ATTR_MAC={0xa, 0x6, @broadcast}, @NL80211_ATTR_KEY_DATA_WEP104={0x11, 0x7, "13ef4d23a29346c1534b99617a"}, @NL80211_ATTR_KEY_CIPHER={0x8}, @NL80211_ATTR_KEY_DEFAULT_TYPES={0x4}, @NL80211_ATTR_KEY_SEQ={0x4}, @NL80211_ATTR_KEY_DEFAULT={0x4}]}, 0x50}}, 0x0) [ 1071.760699][T13558] netlink: 'syz-executor.4': attribute type 4 has an invalid length. [ 1071.793670][T13558] netlink: 'syz-executor.4': attribute type 4 has an invalid length. [ 1071.825533][T13558] netlink: 'syz-executor.4': attribute type 16 has an invalid length. [ 1071.877135][T13559] fuse: Bad value for 'fd' 07:53:02 executing program 3: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000100)={0x40000000, 0x0, &(0x7f00000000c0)={&(0x7f0000000140)={0x2, 0xf, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, [@sadb_address={0x5, 0x6, 0x0, 0x0, 0x0, @in6={0xa, 0x0, 0x0, @empty}}, @sadb_x_policy={0x8, 0x12, 0x0, 0x2, 0x0, 0x0, 0x0, {0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @in, @in=@multicast1}}, @sadb_address={0x5, 0x5, 0x0, 0x0, 0x0, @in6={0xa, 0x4, 0x0, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}}}]}, 0xa0}}, 0x0) 07:53:02 executing program 2: r0 = socket$netlink(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) sendmsg$NL80211_CMD_STOP_NAN(r1, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={0x0, 0x14}}, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000080)=0x14) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000380)=ANY=[@ANYBLOB="3c000000100085060011000084ffcf8a63ed0000", @ANYRES32=r2, @ANYBLOB="fe000000000000001c0012000c000100626f6e64000000000c0002000800010001"], 0x3c}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket$netlink(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000200)={'geneve0\x00', 0x0}) sendmsg$nl_route(r3, &(0x7f0000000a00)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000003c0)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @ipvlan={{0xb}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r5}, @IFLA_MASTER={0x8, 0xa, r2}]}, 0x44}}, 0x0) 07:53:02 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x200000000000011, 0x2, 0x0) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'bridge0\x00', 0x0}) bind$packet(r1, &(0x7f0000000180)={0x11, 0x0, r2, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000080)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000001c0)=0x14) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000140)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000080)={'bridge_slave_1\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000040)={&(0x7f00000000c0)=@RTM_NEWMDB={0x38, 0x55, 0x3, 0x0, 0x0, {0x7, r3}, [@MDBA_SET_ENTRY={0x20, 0x1, {r5, 0x0, 0x0, 0x0, {@ip4=@multicast1=0xe0000300, 0x800}}}]}, 0x38}, 0x1, 0xf00}, 0x0) 07:53:03 executing program 0: r0 = syz_open_dev$dri(&(0x7f0000000080), 0x0, 0x0) readv(r0, &(0x7f0000000240)=[{&(0x7f0000000300)=""/78, 0x4e}], 0x1) [ 1073.904329][T13570] netlink: 'syz-executor.2': attribute type 1 has an invalid length. 07:53:04 executing program 3: r0 = syz_usb_connect$hid(0x0, 0x36, &(0x7f0000000080)={{0x12, 0x1, 0x0, 0x0, 0x0, 0x0, 0x40, 0x4e7, 0x30, 0x0, 0x0, 0x0, 0x0, 0x1, [{{0x9, 0x2, 0x24, 0x1, 0x0, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x0, {0x9, 0x21, 0x0, 0x0, 0x1, {0x22, 0x7}}}}]}}]}}, 0x0) syz_usb_control_io$hid(r0, 0x0, 0x0) syz_usb_control_io$hid(r0, &(0x7f0000000240)={0x14, 0x0, 0x0, &(0x7f0000000000)={0x0, 0x22, 0xa, {[@local=@item_4={0x3, 0x2, 0x0, "c868c785"}, @main=@item_4={0x3, 0x0, 0x0, '>WAh'}]}}, 0x0}, 0x0) 07:53:04 executing program 1: syz_clone(0x40000000, &(0x7f0000000080), 0x0, 0x0, 0x0, 0x0) syz_open_procfs(0x0, 0x0) syz_open_procfs(0x0, 0x0) ioctl$sock_SIOCSPGRP(0xffffffffffffffff, 0x8902, 0x0) 07:53:04 executing program 5: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000340)='kfree\x00', r0}, 0x10) r1 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r1) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r4) getsockname$packet(r4, &(0x7f00000001c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000080)=0x14) sendmsg$nl_route(r3, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400eeffff11ffffffff000000", @ANYRES32=r5, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) sendmsg$nl_route(r2, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r5}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_MODE={0x5, 0x1, 0x1}]}}}]}, 0x3c}}, 0x0) [ 1074.466729][T13573] bond3: (slave ipvlan2): enslaved VLAN challenged slave. Adding VLANs will be blocked as long as it is part of bond. [ 1074.479579][T13573] bond3: (slave ipvlan2): The slave device specified does not support setting the MAC address [ 1074.490369][T13573] bond3: (slave ipvlan2): Setting fail_over_mac to active for active-backup mode 07:53:04 executing program 4: r0 = syz_usb_connect$hid(0x0, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1201000000000040260933334000000000010902240001000000000904000001030100000921000000012201000905810308"], 0x0) syz_usb_control_io$hid(r0, 0x0, 0x0) syz_usb_control_io$hid(r0, &(0x7f0000000ac0)={0x24, &(0x7f0000000900)={0x0, 0x0, 0x2, {0x2}}, 0x0, 0x0, 0x0}, 0x0) syz_usb_ep_write(r0, 0x0, 0xc0, &(0x7f0000000180)="a181f76fed096fec06e15037ebd9506a598f91506093c364b6971e7256d730ca59022a1125de04fe920c6d39e4d944b475234da69e2a8f876aec4211865fdd778dff3c3ee2c3490286a4b1088ff862b2927e0700bf4cbcfab4e11f81005bff7fde8d3c7dde7d9813695a565ee57a43ca398431d9ad843935bd67f2d743f18886fd73bd3d5cf3814ba62a284baa4dd9e8b4c0901ece8849659a9235df3dd689ab5366b5bc1ac001530ac9aa959d1e0297a1a6e58d22952f35ad360665c8a0683a") 07:53:05 executing program 3: r0 = msgget$private(0x0, 0x20) r1 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r1, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r2, 0xffffffffffffffff) msgctl$IPC_STAT(r0, 0x2, &(0x7f0000000000)=""/128) 07:53:05 executing program 0: r0 = openat$uhid(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r1 = dup(r0) open(&(0x7f0000000140)='./file1\x00', 0x10f0c2, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) mount$9p_fd(0x0, &(0x7f0000000000)='./file1\x00', &(0x7f0000000040), 0x0, &(0x7f0000000240)={'trans=fd,', {'rfdno', 0x3d, r1}, 0x2c, {'wfdno', 0x3d, r2}}) 07:53:05 executing program 4: bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x8, 0x4, &(0x7f0000000040)=@framed={{0xffffffb4, 0x5, 0x0, 0x0, 0x0, 0x61, 0x10, 0x52}, [@ldst={0x5}]}, &(0x7f0000003ff6)='GPL\x00', 0x5, 0xfd90, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x0, 0x10, &(0x7f0000000000), 0x1}, 0x48) [ 1075.674117][T13580] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 07:53:05 executing program 2: r0 = syz_init_net_socket$nl_rdma(0x10, 0x3, 0x10) sendmsg$netlink(r0, &(0x7f0000001ac0)={0x0, 0x0, &(0x7f0000000800)=[{&(0x7f0000000040)=ANY=[@ANYBLOB="140100001e000107000000050000000001"], 0x114}], 0x1}, 0x0) [ 1075.731730][T13581] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. [ 1075.753028][T13582] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. 07:53:06 executing program 3: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000280)={0x11, 0x3, &(0x7f0000000980)=ANY=[@ANYBLOB="1800000000000000000000000000a60095"], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000880)={&(0x7f0000000840)='fib6_table_lookup\x00', r0}, 0x10) r1 = socket$kcm(0xa, 0x5, 0x0) sendmsg(r1, &(0x7f00000006c0)={&(0x7f0000000000)=@in={0x2, 0x0, @loopback}, 0x80, &(0x7f0000000700)=[{&(0x7f00000000c0)="8e", 0x1}], 0x1, &(0x7f0000000180)=[{0x20, 0x84, 0x8, "03e330e044443a3b06"}], 0x20, 0xfe80}, 0x0) [ 1075.984789][ T24] audit: type=1800 audit(1658303586.045:244): pid=13590 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed(directio) comm="syz-executor.0" name="file1" dev="sda1" ino=1167 res=0 errno=0 07:53:06 executing program 5: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000340)='kfree\x00', r0}, 0x10) r1 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r1) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r4) getsockname$packet(r4, &(0x7f00000001c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000080)=0x14) sendmsg$nl_route(r3, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400eeffff11ffffffff000000", @ANYRES32=r5, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) sendmsg$nl_route(r2, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r5}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_MODE={0x5, 0x1, 0x1}]}}}]}, 0x3c}}, 0x0) 07:53:06 executing program 2: r0 = socket(0x21, 0x2, 0x2) r1 = epoll_create(0x1) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000040)) epoll_ctl$EPOLL_CTL_MOD(r1, 0x3, r0, &(0x7f0000000000)) 07:53:06 executing program 4: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$devlink(&(0x7f0000000140), 0xffffffffffffffff) sendmsg$DEVLINK_CMD_SB_TC_POOL_BIND_GET(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000200)={0x54, r1, 0x1, 0x0, 0x0, {0x36}, [{{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8}}, {0x8}, {0x6}, {0x5}}]}, 0x54}}, 0x0) 07:53:06 executing program 2: r0 = socket$inet6_mptcp(0xa, 0x1, 0x106) setsockopt$SO_TIMESTAMP(r0, 0x1, 0x3f, 0x0, 0x0) [ 1077.447676][T13610] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. [ 1077.507248][T13610] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. [ 1077.525992][T13610] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. 07:53:07 executing program 1: syz_clone(0x40000000, &(0x7f0000000080), 0x0, 0x0, 0x0, 0x0) syz_open_procfs(0x0, 0x0) syz_open_procfs(0x0, 0x0) ioctl$sock_SIOCSPGRP(0xffffffffffffffff, 0x8902, 0x0) 07:53:07 executing program 2: bpf$PROG_LOAD_XDP(0x5, &(0x7f00000001c0)={0x12, 0x4, &(0x7f0000001300)=@framed={{}, [@ldst={0x1, 0x2, 0x3, 0x2, 0x1, 0x3b}]}, &(0x7f0000000040)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0xf, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:53:07 executing program 0: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f0000001180)={0x2, 0x0, [{0x0, 0x1000, &(0x7f0000000100)=""/4096}, {0x0, 0x0, 0x0}]}) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_FEATURES(r0, 0x4008af00, &(0x7f00000000c0)=0x4000000) r2 = fcntl$dupfd(r0, 0x0, r1) ioctl$VHOST_NET_SET_BACKEND(r2, 0x4008af30, &(0x7f0000000080)) 07:53:07 executing program 3: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000280)={0x11, 0x3, &(0x7f0000000980)=ANY=[@ANYBLOB="1800000000000000000000000000a60095"], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000880)={&(0x7f0000000840)='fib6_table_lookup\x00', r0}, 0x10) r1 = socket$kcm(0xa, 0x5, 0x0) sendmsg(r1, &(0x7f00000006c0)={&(0x7f0000000000)=@in={0x2, 0x0, @loopback}, 0x80, &(0x7f0000000700)=[{&(0x7f00000000c0)="8e", 0x1}], 0x1, &(0x7f0000000180)=[{0x20, 0x84, 0x8, "03e330e044443a3b06"}], 0x20, 0xfe80}, 0x0) 07:53:07 executing program 4: r0 = syz_usb_connect(0x0, 0x24, &(0x7f00000000c0)={{0x12, 0x1, 0x0, 0x4c, 0x79, 0x4a, 0x40, 0x8ca, 0x2018, 0x7c91, 0x0, 0x0, 0x0, 0x1, [{{0x9, 0x2, 0x12, 0x1, 0x0, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x0, 0xe4, 0x1f, 0x5a}}]}}]}}, 0x0) syz_usb_control_io(r0, 0x0, 0x0) syz_usb_control_io$hid(r0, 0x0, 0x0) syz_usb_control_io$printer(r0, 0x0, 0x0) [ 1077.613470][T13611] bond3 (uninitialized): Released all slaves 07:53:07 executing program 5: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000340)='kfree\x00', r0}, 0x10) r1 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r1) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r4) getsockname$packet(r4, &(0x7f00000001c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000080)=0x14) sendmsg$nl_route(r3, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400eeffff11ffffffff000000", @ANYRES32=r5, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) sendmsg$nl_route(r2, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r5}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_MODE={0x5, 0x1, 0x1}]}}}]}, 0x3c}}, 0x0) 07:53:08 executing program 2: openat(0xffffffffffffff9c, &(0x7f00000001c0)='./file0\x00', 0x40, 0x0) r0 = openat$fuse(0xffffffffffffff9c, &(0x7f00000000c0), 0x42, 0x0) mount$fuse(0x0, &(0x7f00000020c0)='./file0\x00', &(0x7f0000002100), 0x0, &(0x7f0000002140)=ANY=[@ANYBLOB='fd=', @ANYRESHEX=r0, @ANYBLOB=',rootmode=00000000000000000100000,user_id=', @ANYRESDEC=0x0, @ANYBLOB=',group_id=', @ANYRESDEC=0x0]) read$FUSE(r0, &(0x7f0000006380)={0x2020, 0x0, 0x0}, 0x2020) write$FUSE_INIT(r0, &(0x7f0000000040)={0x50, 0x0, r1, {0x7, 0x1f}}, 0x50) syz_fuse_handle_req(r0, &(0x7f00000021c0)="d56cea33946c0eae3241d3604bfce89adddb2eb96960338db7572fa254eb7c69dc0cb526989630e26224c258c8d70ccacc5564d67723f4756c0399174c5460c4995942d24092c36dc820e97344798b5bb45423f853bf50e374323abacf0388cd091016b7a3d7843f4d3ae1658bd34d967e3323a64908442788dbc99c1f4248da53fb5be2c8001236b994ca594e3b3c588beaf3cb1c32c072d768b9e665e7d87044fdfc1fd6452593e6793963153f3850bf85042a5c139799ba8f6cb8d877fc436c4f1601270d6e29d60a4c80d6315e46f4219494ce897127d0b76f5d681e90f4e9282468ef7993cd92076aed266c1db8b81b93adc4969c9b89b32b8768c9f39f2d148e933dbb651746a9364f49986ef73b4c29f647b82b83216bb8179fe5346fdacdc5fda4bd48875cd2f1cf57a0c9a91e059446bac310a6d68948675c35a8e442168fd84d78d9800e5b05bdbce3a6eac65bee7279a3628f2a08931d3d52ce490652c20f8ae529eaf24bf421dad976c68b234ee6f6210c9f9aac3a55c6939d6aa3805b95619546264ff3ff82d0dc690e8ead61b6ed528c3c117cd771a3b7feb214ce8d720640d97f14b399b7f46dc4aad83117e8e642ccb117d13f345536fc3801c124cfaf8aa7aafff6c8df3fdd4469c077eccbd8ddacad80d9113dfde26ae67b226185743b2d53667fb3016fe114f87484ab614ddf0887c4b2c85351ab21a0ece6c066a154b38b4d7c1792d2db2cc5f8ceb42078187949d354b7a08d1529f3d10814757179c860db031dad4a3dc13ca01d1013238ed5f7a9674fcc77f0d34e2118fb851c970d86ecf9de1cfdb8d3ab197480e263c3207c3d7ebe17f9547c7c56b08e83de875294d0fd68df1926ecac24350b2c70bd73e14122ed480c564353d34049e67c26036fc35d04022cd35d6ac00756d3b8550bb22ae80a4bd630a00268d07fa249b0bf545dfbf01bea2f12b30738c6e13156244eb24e6d69ba7c3acdbbefe8bbc06b821aebf836ca07a3cc7b6b24686ed8f3b23085c893e72188b797651c5ab5cceb1465414a325f793a3af6d06eed7eb734ad05bc1f6619e8485259f570a482a67273ee01fe15dd938afce026f1111c7a38ed6d1aba34f009ce1e99140fd0db2de74150541fd48dd2ec5b1d15669de2ffe3a198184b6186ccda31aa64c585ff8cb65b67fe1455753895a88b6ab4c6bf1bb8329739178147e6f15801bfa707bd9ec9da662573ce07af684bb7c880a7d63b0a0a7300881408c44e95c679ea32b0eab845d0b333f245e8d6006258678704aa8cccdaf80cc46138d5b7a0804fdfa34c91d61a0d2fa6c62e7d1a675e5743f845ab40ea5df0182d6eb9781905c94751c75a411699a76f48433142c5f109d5dfddcc0b1dc6254efd5ea50d6ffbc7b9ca031e1a0123844b63c48b964645c6d24707582825e219bcd61677ed4fc45ee1f4be91b4c1b856d65a86acf22b8b0d588bc473248ac040326b1490c2fea24bc0c0a721e2ed63e39973cd4d38df1001dba9b9d995c229655dd26f3cd3d64077ec111e2c370717cb4cd068e0d3a52f1027d3df953e1f1ac768a7215a3695722b1b6714ce43801451a9532212b651d073c780d61712aebadd145c1cd95c1dc0dcf51850046ae5771e365f45858a36e48afe563ec0afee3803ff6a35bc25217b53eda39bb813b8d3d728c21a0b80d014003143666c0d1398cc46a01aaaf97117edda217f984010e7c5cf32535a669d4f11f6b70e3a3b823987ef7c9f878415063bf05205e13bcf7acb287bd0bb0fce77529a711f0ed145ea2ecf2194658dff17c5681cf8c7ad8521d235a705292af4878b3f124be2df661026c091d6c07aae1a74c919f7478d1083f70b3a0fe00c2e220ab998b4595268b6f7cabbfc85e59dfb6ab7a794cd3fd70d5cc4d70ca933a4452df5a345cb31f3267de53519ba39c915d492cd4652843f1d30a5fb311e3b5d868347969f013c5e3b4841b22240abcb61a14ff567186766ce8f6ae64877f672835dbff4fcf19c8230d8a402397630effb698a8b0c9a28ae028d7938ffde488fd64113085bce504cd0551e0eb3730c3f781cbecf0c41d2338766d3f6096661c1f1bec3162b8a0c4099fccd9480e821df8782c2e070530befb62bccd8539fe9dc7d8d3f9bded1bb34db3f2d6050885c8f1d57f5e603f629de7491f5fd9fafcceb565abeaec838b10a763a00a4607d4330bdcedc066d8cf9790d806e03c219866bb8f053a6e602645436d1f469df1d5008f5dcd4bdb7ce5b76ec015a8f4693cb2a63ceb2be00bcf221f0ca32db4efaf8f7022622b335fa8dea4afdd86be10be6c4d66e5f57416add4480509cb98cf31cdda84644eeb782eea041d4bc0e005a20bccc3c4a08cefcdb91cc2c61d9231c4e36e96f6edd2133f9b34e7da90ce20d1c60ff223c6a204bb942766a359b923573bbbaf2a827d79e4f649e79a840216ac4ddb3409c94e71ff08d109bc3f0cf6583219de7d7131a956f835ecf5c131a0b1e056a86d800a0204243f3b695029578c064306a31db53f28a8f0c0302486cd05970904e9b5c53100ac1aabb3110a89820e4d8307c3d46084999d0456c53fec61a9242b486eb41a90f3300fdfd0d8a472e8da7a842588721d1df1f5e4cc425efebc75a904ef4cc881346a4bc23eef4d492e3efccebab86ae4213f42671370579ee7f8341396e9515619e100a8fae2c5cba0139a088579ece7a603c8b8bab9998223fe862dff8480aeaa5970c90b894e5f71c2784e4dfd50ed3e9ed91036e8356c09464de13b4a95227203133b2c2c71cd6323492f083bda58ad7721b6666b9cd93f93f0288482813fd8aade02cca81cd35257e023504ac4f86be1c7a810b67c6d7077f5cdbd305b618a05c03d196894bfb1a6ff511e59ac8ce45d16cee95e1de0797a543728caaa43e5ae42a12b6bb7910d18d4e1ea89d264491287eb23a76095a12a39c46a7c85349e2969edaed3c1fa6a2150494f63f4c98c65fcdd650ac7424ac1ae64421294356ac1e4dbf9d4c817f081f4f7751ebf56788d799bac29dc0bfe83ead7ab3e338b8b84df4cad2b549aaac4e6048a6fa8f8f6f1f7e0e51c8b3c872f18c466e590222b03230f46bc8e9a0171bbd2096c7a480d6a6f29bd74b60105bebda42e59cc830c4b31f6c52687b4ec2ba869149ae363d711d099f94ceade1ada193e931ed9aea0a280ed5f25ad5ab3b4083f140ca17b43e5f6aef2c24a28a0262c80a040187e052ea7d54a528b6fcc176ed3afc07fe6a661d050fb4a3a6abfa3dac5f3230540b45af060781cb5499c2894d6a4a2bf908ddd48d6b34207f56c31229e206c88db3552ceb6e82a0fa2bf7f97baf603d37d6a8b1f2b1f5f95b251129ed05351681908b7cf5cf6cc86dd854174cc19713b4d262b021952b6da5f20f57bbacca62f5b7124409aa625bbea59819baebc1bc2dd188feba48c998d0dbed60d44b8a4f0ac28f6c1c8c9998f7406f1a34e4ce902be2420f7ff51a5ab3b1faa86ab2ec1edbea2493cae090abde43ff27d685c993dedb24eb255772cc56fbd104f4f5275f10d54d7cacb8cbf188ae1a4d29ea880068fb2696b3ba6e8a7c15939e1f7c394ab4bd4c4bef2383121cbeb18646a8e013d570cee3eeecd7fbe84a619f8aa2e34f2e1e9b99d0c7d7d179d9df8d2e2f1cd7ba2c7e60166dc14e5e4ed9c41195935e2884b5bd0057ed0155a5d4c6482e8f554e4cd0d0aef7d6487801ab54d54eb41755d833ab83883b40f47595063ad2a0fee5c661f86b8ab04ad0047d988ad86b3c520eb78dc3d750a57e777f5d766349f1a687e090f744206cb5d048346061b414060f6826d8a884e93f73f1f1f4cb8bd6e8d1215d436d390dbda35b555f550e11e6d8008fce1c429bd9bbd04a1fbb9de28663c1be4d8d7e506bc681ada28a69014b972919b5f70cbb770349324c9af0b7ee7ff4cc8bfe807fb9faa0a69498448b22192d578a1e82582b943051beb543ddca8b643ee6c76ee32278aa8bc92b44a8439a24ed5040545349ab05e831d4511a8da03ca539659585b2267a73775f1cb7c2c5548d3508c896f99a8e5cb55160ab1267e320ac2d7c8f8b57079dd14d301636a1374e24541f8d453978998ed256b381bcf638bb372ce1ebefb341656c02f4092a7667ffec5505e4938dcb03d404654430e244f9f7f7d0fb4189a93f7c2bd7a4fcb3ccff79e41a98adcac3e4c19eebebaec15bd8cea1df0e509cdef62ae10c66734d162caf35a6e511baa717f769c2e449892224fa8ae78de9138cf6ea1d939998a8cb68b0e83cf604e03b99634796d3d495e4617f8fdd9764631e7ed6eafa797deb1159259777bf2915d48b63286f6d6528ad4ca5783609263d9a03aad41ec8ef1e2e1e77734d27229f801192be238468854945c20dab4e1baff9dd593361efda1de95e04561d33cd73a45dff5f85b2e85b0747a49345ac8d38add8ef9c14685eb3d3432f3f994e3ddd4e45b16005870485253afc4f08d8a6d8023b722284d11d56c6ff9209a5bacb7ce1708244bd21878b8cd5c13ab453bd589f6196322de9faede39ce6f94c75d008d2d7ced27a2375cc62c3d5c15c1c4301a01299d8f4c41e5a44e4130e9555a356d6b19728c7d3c86cb9a1ddf906ab63a9447f8233bcd09bd74cf9749f085f0c4689ef40dbc41a7a299f0f891d9d0d3e39409d4d774da53bfb6e8ce668ce50885558e909add2cb9bda2f7e9232541b1a7f742a99740f486ef4f7c98e4052f2da705c56a18d5a8289ae6cbb9dc7de13a8cf420b7a930abaae813b40517d84ae984dfc94cd1021e0e4a7a9e7de841018d474083ca28a829ee03fe625cafcbedadcdef6621ccd679fcd9c9a9ab2136211f8c9a679895aa39facf2d6668e5098b3dd8e0ad78d8caf250dc38f2c9518bccb353ef3418d3906827514c1959d58344ee11a0ef1c1424495cc1a9910187685a47d6dd91f07e5081c5ac3f1b6e363069694dd9072684c5ab0ba56157c10f5fa8409e5bc43b38b31f24a306ca5f7e3de9a392eac1984e877ecb3dfd044f1449b4ae9b586051b1780c0ce462919f4a4b54ad8011d013c3962fc6697d33c2dc6771fec664c82cb16144619b207deb4391866d6c1976b945c5959d19018f15376ce3b05666747743527f22b54171da4dabee2f4e469a5521067de4f92e2bad02e15e812b6cbd27ec88a9eccf600ce7f5643392da9ff6b6412f8e7c68d8c8b9e0006e41777e2a1363a9556befbbb110dff3a84b179da3838acde0b25f53798733a9fb463d76b630aef7c8a43f6219482b34b893fd99cf3a013ecefde7c5c6528e304c1868ff3fd8dd5aba348a05dc950b1c4c281cbb28b800d6d0da180fdee06ec3bad6f97180295ed1d77078156a885b5b0c501ea563e8871adb97dd6052de0ab369bf2d98f434bb2d172d9967bb73d3eba6b52bb8d55d8963bf58d310afedb51c0f94c7814b6da30fd8056ab7be74ac31b1b75c217e3ab93eadcb2d253e5d8bbe47c0f1a411a9e502cf4301d898d905cd5db828e56a722394fa11cca64a03a42e7fc1b3481b71ca0b6a3d9bd1fc8229f7f9d3e6aa0d48051942579fb759201d4715db9a2d399e0745a66dbbd571accf1f2e15573ce832e91bd1f042ab758d9ec13e354f38454cc42668c8d60358916f7e937015f6c38732bcf6131ecde001892cb20fe47153e7e23b1cd2fc4a22662e7bde09f7df10fcbf475783fe23a0fdcb2c3bd8b28453ce523ac19ff77e68c3e9fa0193b796ea68f44132b3a96adebc04181e503f52be4778ef422ce3e6ca38514fa18b500ca518590479e8c73a7942dc2e237d82cda953ae1b296b97ee8ed62e2e755d6ddea7c0334e1b8d76c278bdc454724003106cb6fdc85340d1e784ac8b6551eaabc33c502163ce0d401627bd22ba6be90089372bfa3f91ee745e45844ef8dc0fe3936bef07f9c1d3aadfa4c8e99be6b038bed6beb9597add881da2acc1a3a471f500d68f639cd2bf6f4afab919a2cf747bcbb42b95684e8741b485c3297cf07c7bd98d6653421b61f701a06b82be0fbeecd32eb00feca9c5732bb5e565bccf8c9feb27a50760a785bbb50402768cbd458811e284a604b3374faf3480e1736743665617de9c32fd10e37105ac6dd5303f1a6dc78950bce56215c2a2f9e0ccbc0bf9fe8ccf7647ed29e2aa4948689d681a7a9fe582631338f3eea3df846f28564038ab75aa2a8ee5416b66ceeda9d8f56ecefe07f6a21ace83a2e15ad408d0a480f56708e3d1c96020b124c58f6ff5247f73aff7f77d389167650b8a0b98c97f87a1e5d6c08fa99874ff144bfa905e9da3812f010eeee00f3c9b594450faab5342e1b6e98fed5714a802b67b3e5b1964a62606aacb8222efd4980823f076675ae859e64de7b08f7a0b3d8bc829e1a93eb3b4975b4761cd7fa743e393da537c91f658ea2b23c94244498cdc4bc32c8b9859b9d9792eeabdce635b2d61c311949204826054dba0880505e2b53cc3521fa8b68bbba2ec05050bd3244c02752af1555625ddf50a3656c0043005c43c26a2dc907d5dd67efa831ad974151067b436a75fe99b8c94c9ca9737279fa1aaa09b0108c48c79c7e4ec1eeccfd43aa8e7ab6cacf5a956fc47d4ce77fe719d6eec1730d3e3b3be71d313f644177b6d16df0180848c28b850fbf71168a1ee4e5639bc46f2555b3984dbb91520538dfa6a1905abfb7238ff344d0a7d760f040718a57cfb56634e7de7584097f69f87630693bcf410796266cc3f50302feacfb556bad2506b7191023817527dfe5973101712bda922472076633133a11a76e8bc7d763a2cdaa53fa8d47d442fcc572f791d66d10d8d6a9058ecbbcd6d3dbe45d67b75e1091dd0368bea33ef0f56ba68885630429c24800922062e1066f2d4c4b795332ab03239548df4e6e01c432fe5eb29e8e63f6c7ba4f2edefa208c69e781786e4717c2f71dc2032a98cf1e6d66c10831e17ee776edc6b060ae20d025dc570a88e17da771acd32b7b93d46e43a917b8e2ba8232ad2707324b9b04dd8ee50c3c5a4372c0b1461ab2b7424faf00c7162bd8e8ffc7fadcb055403b0fa7087226ba4330e746af97a3f915f0b9e105759e81fe94a0df0cd6c324fb0b871491b5516c2fbc82c77b07159e3f4c0b7952b74cb4e203a69f241485191e1afc76d12a56db065b0513a41582f655340603c73cb39b728c97d1e919ecf963b91ec2282d25dc426db873394055beb0f9ba20545e2465ce2d0d962f42e1e4c79bdea4cd2829269ff7ef650bbeb5083d39dc7aad668af0b01c521192c548857473b29991f7bb917b5814fe945f4c3ed9bbe0563f4004b391b76860e9fd6b7c0baae82e4ac033f62a2c6ce6a2311b8700b06b5215e604a9b99d37e00450fc7790e893176e9fecda220f838a078a8ef7da7d499b1fe0eb8780c4b9705a6a10674e61b5c228fae1c13488f98c10c1792fa40229dba44b1cb534f9fab6a14407687761d738c91f4b8d4371a1de1a47bde0563a6fc88c4886be5d48c4cb89078c255eb1639598379daf50a672cbf4d8add2d4af6c02aeb1d0f86b611abd363409c7c7fc0b66f307ad3df24241fe06d0f7617d6c3987bb9e5d8f1712aebf095fad19b3b4fcb9cc4fb39012f333c4b040666259ee7bc43cff299a527a8914d71324e91c774b84e9392e615453e9fc648c539059b66f780c888892fe8b30eba799ed18fab08ebc3b9da8bc12a249456351bc0ebafc9f54d5d24697fb53eeb5e734527d690620989f605f57dc65a15a754d304be592acc616cd528b6986064b4457b96cf1fb0ab383a0585acf9887b18e1d6d3aff1e7f2328ea0313a2b36f6f79d671d9ddc4d34fb8fb55a596b2a16c63757083fb4bd01be2e1d82e47c5a44e052279097c5a18feae9884e102cf087611a3b94467ad61635dae6275974f6e6ca7a42ded0ee4577574d56b142853a8c955d92d1eb780de11dc9289acd193214ed4c9f5f26d0481cb3c0c0b8d4c9ad929c61ffeed66bf2e4f7018049593b99358d93559847d55654cee93da30f6578d2e295909791d227a12c09cd4a0edec25d3155086b64a787997a53265cbffb7fe6a2bfd589e12b4d0e21a600276e920397888443584aa99a06d7cfef8e68eeab8fa739c3d8fb74581ceff295110742e763320bed3a4be982b3ebed15ecde37e849aaa91959327d25149f38854ea1137f870aff99979e5e74cc9e45be12e3f0f9912a0955e718a4917e835bca50f43ce92a6bc60ed006b8f623fbacebbfb3dcb4fabd9941a5487c6f637de9a2005a6bc4062e1210a08a51d6f8a5e3f6f97fe90dc7e2e21d4d2f038c0fbc1918aa00e230a4a0e5c41a4808fb9a731271fcc1e73713c9592aa4b2ddccd0d13c3cb68d51166623153445c9ec955c6870dc8543c0684883186082e34ea5714febf8b46921015c3623220d17529896e1a6edac6e32fea2ba30db203238300353602c17dddad7608cad8170b520f6d9d32cdf0156a1de4e9b9eea78f73255ddc6da6994a6018ff900d9886590602ca6a072d8aa5645e2adac0744e2d5b2e1038c746635d5814692c3498aa9043b68f8ce79c44678c5a7d5bc26c085475853b229b2af3dc822ec58047f313c778aae2b64995148174e42908f3ecacd3921855790c0c5a25814416930293010b4f917979d837f4ef9d2d6dce804f5c0926244097746252124a6e0055559ffab197c38778f717362152af8f6dbf7ee03df050ab9b8909556691c2c2775f0f9c26a545db7ba698a4ce37de877705ea97ac0a002db274ea8360a4aa732c2d5e7417138c60cbea69d3b4993ada6a9d8f51d851543a6500a31bac5a057dbef498001f08a44e3c4141900e18b6d73c28c8c67dca805edeb5376384cefe75be1f127225e4d9724b7047d68fa2ed4629e91711a37c80158a07dbce78918931402b472a98a5d5c6b66a2d116314577e94298c37bc441499a9ecea132d87c5d305a0f8f0b3ed16f3b820941082c73b28391d8482ca0cfa78e1e09aa588b0eb1849c6c7916a6bbe56134a6bd93ea306dec125982628dea1db6d022d210627959e1dc819c841f173ed25f356909222e481a1ebb31185fbaeacbd359d2779efe4554ccdac7f4bcc528f656a45049331e16e9c0c796423ec9c7cba15c69d4a8a7741699910f33cc9798a8bf1e48182f08029a14d0131654fd388225d7509e1d7a484e9c7df34d1680bfc6b8d1f6f3920cc4113509fe42dfbd6b261000da9651f7e18088f6c2564472046e5eb7e8c9f8b5286a7452741a7103ced710bfb8e699fb8b1a85c0ae887cc06ef2ff9e2a2b1a77bb4d44ddd4a4e1ba60afcb92baaef108b60486d409889cbb2b1cc77ddff7e4b6caf8cf3488764d84bf3605eb9df709ac6cb36d1a3de89cdd6657f0e6b4009e6dac5d9be14f4ed997cf61e5aaec932520c321359cf286adf6e2dc3094794ae61a4f16089d06e3dc62c958950e73213c1e865c894fe7b8a30de65f5534a1e9c5d19ed49397980126322cb9c72c46a86d7487571300d85b3b5661555f20ab63a78f846c1b8f51a19610a11ffee44f7ccf0f1d67f4148b2c828d74c7f3993965c9067114467a71d242113a68574e28601fce343a023ecc68a72d75259f9a5dce144a7f61ef327192f6474d2bbd06fde3049fe7fb306ba3f54337008d7dbdeaf28a37a224e38ade23adb076cefd3148efcb62539a96d4dfc53f369e34c3d493ac3a5e8c8881133be630a2a906703da62ce7cc02ace9f666d6c3d4b9763a83548825ee1efb54ee3475b09e2616c5bdde3d193181bf020e8ac9ac25f32604b6c11de8ad1a15b9f908c6d7e79181aad1d741b7434aa92597a835c53b9e4b61d6069fa4ee921824d17c98784a8c04590f8d2cf877662b410cae4ebd1ba3616074c020d8cb6099a095735635490d318821310ddd016150edb80370b8d4e2f05557fd619b17192c13353cdae76d495821c610c8641e5b3dff1e7f2ea77b17810ca7975b8e36b7f501a8710b326ef92672096ef66598510902fe663e2a9ef00c3a052f1cfb1739fccb4371f8f28bb92654de5bf87cc2863e92e6d7e4b45d773f90f434eafc8f8398a48527af829a6cae359e7af5941bef158f53798058351107ce58f79ed21036770f6e10e7da92bbca25f369ee83a0f894bbf366a1361f8125b4ffd8e8b4d47ec68cd6b37c840cc5beb8cf65b2269ea1a0e9c371a571f30458ff8ad9bbf8723c19ddae1de5ca7461a436ffcd103c01a20f3252ba0965ee928cfb0d002b9aa4d4f20c805b77e67c8d991c4d07e5419bec9626a32c115d28253dd5f16c17182c1779edf49bdfe3823d87fec88929801163a27bfaeddfd8cdccae8cc3bfd6a9f2e2fec5971fa560c434debd434ff4d0058dcb05d9f3ac5193c458472d6d1685f9f46c8864900c5edbaeeee08971ee1c087f2e11467ff4766743bccf9e3414feedd6dcb904b92a05eec5de8db95444b920c995c770edcedcf7bffc48836c8f30037dde47f0e66fd79550de0ebc3c0c3eba0b66e2a353542eeb20397800e5f41635c5ec2f9a271461bcee8e570ddf945b186f15ab5cabe2a3123189935c6b9010b31732c425a9b2582b097486a5a7b1880b2f16104484e1ca83fa9c278b87e30e4b0cf6ed66c87a979c05683ac94a295d1c53e6f0975a079dd9a2825fdd6ae0926ba1a69f3f69f408eea9d00fbd43235a52c53d11963a611b81dd9f5e05582e1822398873e883662a64c225be19e0b85e102e23fb73d5dcb11435a5437d7418b0409f2e60793038f55ed54c79882b3a17e74ae2148bd558d131dbf446edeb0d05353492534e216761cfcf6582d066a8235a2bd5eb383350a52d7fc2761514e27b6125cb3e387c103dd62e31f5b789c217811c80ccbe3f10fec7a19ad32dc9271368b6d6ba549c45dfd8018507c40962b6ac6468c3078edb71d8ec7f728be8cc23dea1139ac30c2e8d0fc077280e420fbbffc896863db5f1e76922d7dd8e4479c1be822e74212c6f74765e108f916a1b83f6efc8ea54080e9a28b1ba5813a1fefddbe2d0cda413ee1463985b51b59f818f440c9b6a10e4ebf71d37995ae9694ba5867ca2eb2f7bf4e58d26149f2b25943fba216beb3de1f954bcf1bd32ce358b5d23023ab456ebbc493ead41e25b62b5b4ace6c5c18c9a8d512a9cbb4dd59f33663f6138d6b06bc8eb1ec9caccc0077b2e68e7a09d412dfa352e7e5c3942b710ab1648e16d0adda424d9fc2d15c619f4e8093c2b9521e4cdb3f22e655f52ce0fcc1bfd94e56cba8decadb68214451be53f9286c82d2a4912bd2394d1133be908409d791d6d8c2194ca37a76a38d6d0a1fced6478848891d9264cfc08fa849d720339ce00977cad8d9738372184098a7333dd1564d1d7754b4aa4afd6217585804159d31f53017869cb78b718c837b7fd176ce19e3d6996b6f055ed3ba7cd55b0349676c0c113c33d070081ce4ef29af156c4ac8ce760013688d0295d90271e23ef3ca10ec2b3b889855a153c867ce79297a10a02d21e5e8995fbc10d2f4d4bf521565376053b80937bfafaac688108f9962b7c72cf0111874ac8ae27d024ee2f9d57f15b9910a7486ef7542c6629fb0520c93a445542d", 0x2000, &(0x7f00000002c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000580)={0x20}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) r2 = openat(0xffffffffffffff9c, &(0x7f0000000180)='./file0\x00', 0x24c01, 0x0) io_setup(0x202, &(0x7f0000000200)=0x0) io_submit(r3, 0x1, &(0x7f0000000700)=[&(0x7f0000000440)={0x0, 0x20000000, 0x4, 0x1, 0x0, r2, &(0x7f0000000780)='!', 0x6}]) dup3(r2, r0, 0x0) 07:53:08 executing program 0: r0 = socket$rds(0x15, 0x5, 0x0) setsockopt$RDS_RECVERR(r0, 0x114, 0x8, 0x0, 0x4) [ 1078.181267][ T1196] ieee802154 phy0 wpan0: encryption failed: -22 [ 1078.188053][ T1196] ieee802154 phy1 wpan1: encryption failed: -22 07:53:08 executing program 4: r0 = syz_io_uring_setup(0x184, &(0x7f00000002c0), &(0x7f0000148000/0x3000)=nil, &(0x7f0000ffc000/0x3000)=nil, &(0x7f0000000340)=0x0, &(0x7f0000000100)=0x0) r3 = socket$can_bcm(0x1d, 0x2, 0x2) syz_io_uring_submit(r1, r2, &(0x7f0000000280)=@IORING_OP_RECVMSG={0xa, 0x0, 0x0, r3, 0x0, &(0x7f00000001c0)={0x0, 0x0, 0x0}}, 0x0) io_uring_enter(r0, 0x45f5, 0x0, 0x0, 0x0, 0x0) 07:53:08 executing program 0: r0 = socket$inet_udplite(0x2, 0x2, 0x88) r1 = syz_open_dev$tty1(0xc, 0x4, 0x1) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setresuid(0x0, r2, 0x0) ioctl$GIO_UNIMAP(r1, 0x4b66, &(0x7f0000000040)={0x41e1, &(0x7f0000000000)=[{}]}) [ 1078.922551][T13632] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. [ 1079.076035][T13632] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 07:53:09 executing program 3: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000280)={0x11, 0x3, &(0x7f0000000980)=ANY=[@ANYBLOB="1800000000000000000000000000a60095"], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000880)={&(0x7f0000000840)='fib6_table_lookup\x00', r0}, 0x10) r1 = socket$kcm(0xa, 0x5, 0x0) sendmsg(r1, &(0x7f00000006c0)={&(0x7f0000000000)=@in={0x2, 0x0, @loopback}, 0x80, &(0x7f0000000700)=[{&(0x7f00000000c0)="8e", 0x1}], 0x1, &(0x7f0000000180)=[{0x20, 0x84, 0x8, "03e330e044443a3b06"}], 0x20, 0xfe80}, 0x0) 07:53:09 executing program 2: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x4, 0x91, &(0x7f0000000000)=""/145, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000340)='kfree\x00', r0}, 0x10) r1 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r1, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000080)=@ipv6_newaddrlabel={0x38, 0x48, 0x1, 0x0, 0x0, {}, [@IFAL_LABEL={0x8}, @IFAL_ADDRESS={0x14, 0x1, @loopback={0xffffff7f00000000}}]}, 0x38}}, 0x0) [ 1079.180283][T13635] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. [ 1079.266048][T13636] bond3 (uninitialized): Released all slaves 07:53:10 executing program 0: r0 = socket$inet_udplite(0x2, 0x2, 0x88) r1 = syz_open_dev$tty1(0xc, 0x4, 0x1) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setresuid(0x0, r2, 0x0) ioctl$GIO_UNIMAP(r1, 0x4b66, &(0x7f0000000040)={0x41e1, &(0x7f0000000000)=[{}]}) 07:53:10 executing program 4: r0 = syz_io_uring_setup(0x184, &(0x7f00000002c0), &(0x7f0000148000/0x3000)=nil, &(0x7f0000ffc000/0x3000)=nil, &(0x7f0000000340)=0x0, &(0x7f0000000100)=0x0) r3 = socket$can_bcm(0x1d, 0x2, 0x2) syz_io_uring_submit(r1, r2, &(0x7f0000000280)=@IORING_OP_RECVMSG={0xa, 0x0, 0x0, r3, 0x0, &(0x7f00000001c0)={0x0, 0x0, 0x0}}, 0x0) io_uring_enter(r0, 0x45f5, 0x0, 0x0, 0x0, 0x0) 07:53:10 executing program 5: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000340)='kfree\x00', r0}, 0x10) r1 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r1) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r4) getsockname$packet(r4, &(0x7f00000001c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000080)=0x14) sendmsg$nl_route(r3, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400eeffff11ffffffff000000", @ANYRES32=r5, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) sendmsg$nl_route(r2, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r5}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_MODE={0x5, 0x1, 0x1}]}}}]}, 0x3c}}, 0x0) 07:53:10 executing program 2: r0 = add_key(&(0x7f0000000000)='user\x00', &(0x7f0000000040)={'syz', 0x1}, &(0x7f0000000080)="1f", 0x1, 0xfffffffffffffffe) keyctl$clear(0x7, 0xfffffffffffffffe) keyctl$link(0xb, r0, 0x0) 07:53:10 executing program 3: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000280)={0x11, 0x3, &(0x7f0000000980)=ANY=[@ANYBLOB="1800000000000000000000000000a60095"], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000880)={&(0x7f0000000840)='fib6_table_lookup\x00', r0}, 0x10) r1 = socket$kcm(0xa, 0x5, 0x0) sendmsg(r1, &(0x7f00000006c0)={&(0x7f0000000000)=@in={0x2, 0x0, @loopback}, 0x80, &(0x7f0000000700)=[{&(0x7f00000000c0)="8e", 0x1}], 0x1, &(0x7f0000000180)=[{0x20, 0x84, 0x8, "03e330e044443a3b06"}], 0x20, 0xfe80}, 0x0) [ 1080.750478][T13650] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 07:53:10 executing program 2: r0 = openat$cuse(0xffffffffffffff9c, &(0x7f0000002ac0), 0x2, 0x0) read$FUSE(r0, &(0x7f0000000000)={0x2020, 0x0, 0x0}, 0x2020) write$FUSE_DIRENTPLUS(r0, &(0x7f0000002040)={0x10, 0x0, r1}, 0x10) [ 1080.832396][T13650] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 07:53:10 executing program 4: r0 = syz_io_uring_setup(0x184, &(0x7f00000002c0), &(0x7f0000148000/0x3000)=nil, &(0x7f0000ffc000/0x3000)=nil, &(0x7f0000000340)=0x0, &(0x7f0000000100)=0x0) r3 = socket$can_bcm(0x1d, 0x2, 0x2) syz_io_uring_submit(r1, r2, &(0x7f0000000280)=@IORING_OP_RECVMSG={0xa, 0x0, 0x0, r3, 0x0, &(0x7f00000001c0)={0x0, 0x0, 0x0}}, 0x0) io_uring_enter(r0, 0x45f5, 0x0, 0x0, 0x0, 0x0) 07:53:11 executing program 0: r0 = socket$inet_udplite(0x2, 0x2, 0x88) r1 = syz_open_dev$tty1(0xc, 0x4, 0x1) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setresuid(0x0, r2, 0x0) ioctl$GIO_UNIMAP(r1, 0x4b66, &(0x7f0000000040)={0x41e1, &(0x7f0000000000)=[{}]}) [ 1080.953953][T13650] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. [ 1081.077175][T13650] bond3 (uninitialized): Released all slaves 07:53:11 executing program 2: mount_setattr(0xffffffffffffffff, 0x0, 0x0, &(0x7f0000000500)={0x0, 0x10007d}, 0x20) 07:53:11 executing program 1: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_BATCH(r0, &(0x7f000000c2c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)={{0x14}, [@NFT_MSG_NEWTABLE={0x20, 0x0, 0xa, 0x101, 0x0, 0x0, {0x2}, [@NFTA_TABLE_NAME={0x9, 0x1, 'syz0\x00'}]}, @NFT_MSG_NEWRULE={0x14}, @NFT_MSG_NEWTABLE={0x28, 0x0, 0xa, 0x3, 0x0, 0x0, {0x2}, [@NFTA_TABLE_NAME={0x9, 0x1, 'syz0\x00'}, @NFTA_TABLE_FLAGS={0x8, 0x2, 0x1, 0x0, 0x1}]}, @NFT_MSG_DELTABLE={0x14, 0x2, 0xa, 0x101}], {0x14}}, 0x98}}, 0x0) 07:53:11 executing program 4: r0 = syz_io_uring_setup(0x184, &(0x7f00000002c0), &(0x7f0000148000/0x3000)=nil, &(0x7f0000ffc000/0x3000)=nil, &(0x7f0000000340)=0x0, &(0x7f0000000100)=0x0) r3 = socket$can_bcm(0x1d, 0x2, 0x2) syz_io_uring_submit(r1, r2, &(0x7f0000000280)=@IORING_OP_RECVMSG={0xa, 0x0, 0x0, r3, 0x0, &(0x7f00000001c0)={0x0, 0x0, 0x0}}, 0x0) io_uring_enter(r0, 0x45f5, 0x0, 0x0, 0x0, 0x0) 07:53:11 executing program 0: r0 = socket$inet_udplite(0x2, 0x2, 0x88) r1 = syz_open_dev$tty1(0xc, 0x4, 0x1) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setresuid(0x0, r2, 0x0) ioctl$GIO_UNIMAP(r1, 0x4b66, &(0x7f0000000040)={0x41e1, &(0x7f0000000000)=[{}]}) 07:53:12 executing program 1: r0 = socket$inet_tcp(0x2, 0x1, 0x0) ioctl$sock_SIOCETHTOOL(r0, 0x8946, &(0x7f0000000080)={'team0\x00', &(0x7f0000000180)=@ethtool_drvinfo={0x3, "c71403bfe14e9264573379211a58ca83613de5e3d4e1f8c77a4457c27a0afeb5", "4183d0b3e0503d52ac0beb8a6c47cfcbece3efe0079800", "cb56644f729654071ea32c86342ffcc23a7760d7b174d761863a7653d75b6bbc", "fc8d447f889d689c87823a392070e6173226c3a6158ef9ddcc5da6c43e59603b", "19ca7c788dfbcd1c4270eb23598ea0790c64e81f39065826f6177b1c46eb38c6", "5192f283b3ee4c69e86b278f"}}) 07:53:12 executing program 2: r0 = socket(0x2b, 0x1, 0x0) getsockopt$nfc_llcp(r0, 0x6, 0x1a, 0x0, 0x20000000) 07:53:12 executing program 5: r0 = openat$vicodec0(0xffffffffffffff9c, &(0x7f0000000040), 0x2, 0x0) ioctl$VIDIOC_S_SELECTION(r0, 0xc040565f, &(0x7f0000000000)={0xa}) 07:53:12 executing program 5: r0 = socket(0x10, 0x3, 0x0) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r1, &(0x7f0000005400)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) sendmsg$nl_route_sched(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000500)=@newqdisc={0x3c, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r2, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_red={{0x8}, {0x10, 0x2, [@TCA_RED_FLAGS={0xc, 0x4, {0x18}}]}}]}, 0x3c}}, 0x0) 07:53:12 executing program 1: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_buf(r0, 0x0, 0x8008000000010, &(0x7f0000000000)="17000000020001000003be8c5ee17688a2006c000203000a0500000098fc5ad90a00bb6a880000d6c8db0000dba67e06000000e28900000200df01800a000000fc0607bdff59100ac45761547a681f009cee4a5a2d8f89814bc6c252674f00c88ebb01005033bf79ac2dfc060115003901000000000000ea0000000000000800b59bd2b8e50ce5af649a702202ffff02dfccebf6ba000840024f0298e9e90554062a80e605007f71174aa951f3c63e5a1b47b6806323deb3", 0xb8) 07:53:12 executing program 2: r0 = socket(0x2b, 0x1, 0x0) getsockopt$nfc_llcp(r0, 0x6, 0x1a, 0x0, 0x20000000) 07:53:12 executing program 3: r0 = openat$rdma_cm(0xffffffffffffff9c, &(0x7f0000000180), 0x2, 0x0) write$RDMA_USER_CM_CMD_BIND(r0, &(0x7f00000001c0)={0x14, 0x88, 0xfa00, {0xffffffffffffffff, 0x0, 0x0, @in6={0xa, 0x0, 0x0, @remote}}}, 0x90) 07:53:13 executing program 4: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f00000003c0)={0x11, 0x2, &(0x7f0000000000)=@raw=[@call={0x85, 0x0, 0x0, 0xbf}, @exit], &(0x7f0000000040)='GPL\x00', 0x6, 0x90, &(0x7f00000001c0)=""/144, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:53:13 executing program 0: setsockopt$SO_ATTACH_FILTER(0xffffffffffffffff, 0x1, 0x1a, &(0x7f0000ab9ff0)={0x3, &(0x7f0000000000)=[{}, {}, {0x0, 0x0, 0xc1, 0x4}]}, 0x10) r0 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8b04, &(0x7f0000000000)={'wlan1\x00'}) 07:53:13 executing program 3: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000040)={0x26, 'aead\x00', 0x0, 0x0, 'echainiv(rfc4543(rfc4309(authenc(blake2s-160-generic,essiv(cbc(a'}, 0x58) 07:53:13 executing program 4: r0 = openat$uinput(0xffffffffffffff9c, &(0x7f0000000000), 0x802, 0x0) write$uinput_user_dev(r0, &(0x7f0000000200)={'syz0\x00'}, 0x45c) ioctl$UI_DEV_CREATE(r0, 0x5501) read(r0, 0x0, 0x0) 07:53:13 executing program 5: r0 = openat$vmci(0xffffffffffffff9c, &(0x7f0000000d80), 0x2, 0x0) ioctl$IOCTL_VMCI_VERSION2(r0, 0x7a7, &(0x7f0000000000)=0x10000) ioctl$IOCTL_VMCI_INIT_CONTEXT(r0, 0x7a0, &(0x7f0000000040)={@local}) ioctl$IOCTL_VMCI_CTX_ADD_NOTIFICATION(r0, 0x7af, &(0x7f0000000080)={@hyper}) ioctl$IOCTL_VMCI_CTX_GET_CPT_STATE(r0, 0x7b1, &(0x7f0000000500)={0x0, 0x1}) 07:53:13 executing program 2: r0 = socket(0x2b, 0x1, 0x0) getsockopt$nfc_llcp(r0, 0x6, 0x1a, 0x0, 0x20000000) 07:53:13 executing program 0: bpf$ENABLE_STATS(0x20, 0x0, 0x0) r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x16, 0xe, &(0x7f00000006c0)=ANY=[@ANYBLOB="b702000000000000bfa30000000000000703000000feffff7a0af0fff8ffff1971a4f0ff00000000b7060000080000001e6400000000000045040400010000001704000001000a00b7040000000100006a0af2fe0000000085000000a0000000b70000000000000095000000000000009e17f199a68b06d83298a8cdc21ce784909b849d5550ad855dab54d8877a6db61d69f2ffcaa10350e11cb97c8adf1b0300c4eeceb9971e43405d621ffbc9a4fd39b0d8ca56b50f0c010d631f6dde53a9a53608c10556e5734eb84049761451ce540c772e2d9f8004e26f7fcc059c062234d5595f6fbaa187b81d110600000000000000fd9ac3d09e29a9d542ca9d85a5c9c88474895d679838def0a83a733dc6a39b63a5ed69d32394c53361d7480884bd8000000000000000b91c61ccd106cb937b450f859ce8122a79c3e40000b59b0fc46d6cec3c080a882add4e1179bd4a44f231b6d753a7be428ba953df4aece69311687f4122073a236c3a32efa04137d4524847d2638da3261c8162bb7c7824be61ceb6ee8b3b5e8a3878e457d2d40e3e95a66d2e17e122040e1100000000"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x0, 0x10, &(0x7f0000000340)}, 0x42) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f00000002c0)={r0, 0x0, 0xe, 0x0, &(0x7f0000000380)="05804ab382844306d758e628b9dc", 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x48) 07:53:13 executing program 1: r0 = openat$sw_sync(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_TIMEOUT(r0, 0xc018937a, 0x0) 07:53:14 executing program 4: mkdir(&(0x7f0000000400)='./file0\x00', 0x0) r0 = openat$fuse(0xffffffffffffff9c, &(0x7f0000002080), 0x42, 0x0) mount$fuse(0x0, &(0x7f00000042c0)='./file0\x00', &(0x7f0000002100), 0x0, &(0x7f0000002140)={{'fd', 0x3d, r0}, 0x2c, {'rootmode', 0x3d, 0x4000}}) read$FUSE(r0, &(0x7f00000021c0)={0x2020, 0x0, 0x0}, 0x2020) unlink(&(0x7f0000000100)='./file0/file0\x00') write$FUSE_INIT(r0, &(0x7f0000004200)={0x50, 0x0, r1, {0x7, 0x21, 0x0, 0x12b2548}}, 0x50) syz_fuse_handle_req(r0, &(0x7f0000008a40)="e74a0f89e88c3aba2d1c776ab25b221b366ab0ac5db05ec87f720b51be2b46fe1aa4d1f50e8d278e8e9641885de16dd0ab77530a7a8c79b801a4c8c9567e29f0fa2752524cd11497506cf97d82f723a251df277d637259d2bb510d2b02d10e860a1edc040eee393f7888f1d66d3a473cb767afa655e1b44ccbec58fb5c93aace8c0b871aa42975bf03e7e187400662d6904e49dee4e2af4c6102ecc3f0337be6784bc4a2a31309934f6f5d25877efe0ed45a3aa006d101d91f9b2afc4f5e481a8421c4c734722ef89ca7f9b44bed7000782cfdb5a200c3a1e9a277a9655f28767a39f9e495dec1e1bb617037b6058df1ac7127ab3150232370a5f2dc482f007ff59665fcbc5eadb27cfc85ffaf1c6da0fc2bcd45e04c038a09526be1689e06771f18a2cdc8e66741fedc0648170210d1980db4781b1ac2968a88df1283eac5f941c56fb5c9fb9dfd9b97abf16d382f346b777f92d9a0342099617e1f6be516d856dcec566100be918c31b31bae1201408197c93352cfa7b68d8ff995bfaef9a1557a00f9c411e5b82818f96f53608cb486d134bcd8ac55cd0e9979c9427abe385dfd50b4096764a7d2b3fbb3bbebd826af4abb97bb0fa75214a5c2a684239686c0bda28d382dab3f293d85ba35edd9e2f22eadf3733944267001e596b8bd36e308dc58d64df4a54779febedaeece93767debfd371bb76a2b9961d007fcb4fa607f1d03ed4ec8a50ed7abe639784569d11787b4e145caceec20145d2ae15b9fd9790589dd2a3612247c6edceb22c7a790d10944acd16050ad6e3de7a4aae0b1c4fd0dbdb8bb70946abf2c95e7e1a6c46d46d98a483edb5e02b7a83dbe8f0608167e7a01671f135b613c11cb307b8e004d4306884907bfc83e0397827146f5101ce5528dd7c07a5d364dcf1857772d7ea518a9847a853ec9e75df1e14fee7c5087dcd923808ded43a63a0716fcc0661c1018847bb327633a1ff9e0dffe85c971e2458b4eca86f44e20db067b30e1cc5f4eed7064f76fec7a772b8239e24de0bc65ed7a48521ce8f9470e5289259c1a93c63251ba3cb9fd40074a66c2ae0d6ab50bc1428ea14a254aba9bf6875885fac3cebababe0abe4fa2c4aa02a83698c15fedf2dc4fe85474c26a9419c8a818515c170576ba2bdeedd7fcc6f318414a4a3d21c9cbeeda8a93420b0edf749ea937d15e3624b9ee08de930510b108de17e126ba03acd647a7ec8ddafe3ca8eddafda604424cc0e1b3229e64b3a8f334cf81062066e6d451306e00c61b0ae09a7457c7a9299acba8f28210e8bf2de29c413c27c06a885f4d76223b657e08e24e881db1bcfe5b6bfd21c10ddd08b82782e1d63f72ec05dadcb3e6f4c651acfb8e108609f37a0ebfa1992eabdbb0d59c3bdfdb6db5c8ee69280855a5a28f25f18c43da954337213621ff72b607e1881bcca05b53f1c48206c4a41ea513bb45197e9ae69064557dda4ab0f2785f5f5e9d0c7b1c81838c5d48f6376a8fcc0230bdde2471a3521ba0cfc222989b336c7aaf81664e3465f45d4d0820833451fa85ce0610dec0bb0dc7020a91f5bfdb6ddee67152a497507c391207b7aeed6bb1f6eb812380b33e42b78d1c1175d9aeef5c67894879d6200acb2aea17c5461bd2909315fb7611d72aaa92a5b1801b6f0402ae8a7a251bc5b7e652861886edcf155515c34306a96e9af5d19d29d425f30dbcc7715490343036ffc28b117c234aefd3e9a210e2248379754ee19c7b24f75ed41e418321a2ee4607e6801bf764f9aac82c13685d81865e4c68ee67d23c02937074e0099461711c5ba2c40f4218f00ff884db32bd6b6c753f352d27de3e9ef39a449f470cc9d5f0a347603ffe125365db8f7ed8db6a6ff3f054b7e3b1e1ba4e3b120abee0d791cd64f3ecab1be0a985f5a04c9bf91566b6af9a0705618a7eb7bd34dc71c6e982fe9c684d2fdcaf5ad1f4366c6b1573520b3a43d1575973976e5a2d8342836da61a919fe291d4e06dc8b8047fdaa591db96c5f708d7efc10d0febd2de603998daa218841c38f38c294f79a058c14b8451e970d45b64ab8cfd811e332ca469c1ad1a703c7889b6af2430b5a9a16efb95767cf6e176aeafe1d7f3e207b92316038a694dc77e4f9d423f023e6e92994bcacc8811afd8022cdf24268c646e4f8f1eec0ebd9adf11a338bb0b76bffdfdba5060cd8858c3861c2020a8367b65b272305871501ce9131ba58f4bee28542651ff43e4b044e08eebdac22901166e5a4690335d5c195d0d895470df40c756e553230fb20485f25e6122c131a1c240a8eeeadae8bd743e25aa7445c4d13bcfc2012a3fffd8e71840a73b0fb86e01b189ed98ffaf53317a3be72575c72b3851f5e6d58946ea53c27a2c074de878396bce0f0a8639e4cd188b0c41bc93ddf2e2bc21f4a6a2a5231612f7cefa0735eaf3fc599c018bfb788b0951173df46c9f57ac58a70364a78d4eed63659e80983ff21b441ba041a6e0f83cf5cbb46787f8032f35ee2d35fbf278ff6b0c4742b0c8e9b8b51081b3db97c75feffcf4793b50a774f9fdb8e1df5bc3b337964677d2e7148e31ea866090136940a9670ff492d88b48d7f5a9cebf32b865381303636930ac76c940454bca3060d8f3e4858b55147eccdbcdef80c64b8030498ce8e15420d1ea46c5406a55c89434765232bab57df4fd145a60191eea9b1d634968e0087083db8bd71be34739261753fba1eb47edda8df45c8bef040b152b1da174b1da36f731cd77a3ed39d6ffdd5bd68d4288c4d464e476c136d3ebd379168bf87ac8ba63a8a6a3f2430af352f2c252a0ef3ea2560870aba83ccecdd0e57ce9859821f0e1da1afec294048a1e22cdd02d5685181998ad20b26539aeb8e8fe02da9f3965583cc8109146ba182b6c8c945bc0e3098a353d07f9f28737fc73ecec7d12ac68f51135a617291d57e57a625bc7fc2174560f24a7667d4106c11922815af1fc4bfca24b625ff6953d8255a7771542d2fccaf74195c957faa3328cb7180b12efc3640eeac8dbac1aa55d236904975ea0521d8b3aa792c8c3194eb15497fb68351b2f662e6dcbb03607feb7c2f29456085d96d4dbcfbbcb2828c812f21624a301b648201d27b9e80862189e7f8e81b479301b4a55dc2aa7732b3460001d072f04c96dc34fbe5f7eaa12107dee5c4fcab6977d65d3e5a3cb2b2334fa2ed10a0ff0f02b43a16f5bfb6d4909b70af2b1b1d072e5c8b0a344ade8c7044a2a1ab9a58ff0e629a2345a9633513ac429ba96b8911c227a306fb23769d02b233b869c91abd605e4d13e92f56b13414e8b29e1e9b203154db9380bbfb66c4548df00dc5f3b13909b2bc4e90d5e3a42b6e4d6e8e1eaff7b319179975ae90e3ded62efbac60abbb57f07c348a4eec2032289ac91476297385e0ba3a9bb08de5894baaf7c6a46b4e04e75c10722dc2c5af819638b8d41c163065cd73b8be3ef6c36cbc556fe87b4d35f14211a86fb8800bcf677a17ab8808224ed0ca780338893612a686fd6d44a1b621096477f6f0760abb232d7bdacf9c7811eb0d87d69452f74c7563c583a3972083cefc8ea05513b87f6d0bc52fcca7d1fa02d5f5f06837526597ea38be7c7a4b33f53917e84e7a46021b85d416a6455cba0646a2e8106ca515022355e72f5c5c81d23b2bc2abcc3ed75db75da3301df758f797a61c33bf8bd3711c202da94de304b7ccd1049d58e13190d56627755ab3ebcdd2922bc162240b9be762247423b434122bf5173147ac981beaf9dcf95f0f28601b5d0dcea36ef0f06be3eaf57a86e0523cdc712ed58bbf081ab9ddf9cc404f6dc3e48299d457c79735587d83d64af69bbcdd1c9654514aee10728fb51ac14f5de78152a2e15b7d40189903e1c8f6decc9b9c22590acfc66c2c61028f2d55609a25e0a99beb9b542ad9b0cd8dc60f5eeea600e8567fdf1675bad45b6d10d4ed8f8bbf012ce632d9d1b73be0944eb9b475a1567c21e22f5b5db331cbc0312fa9069fa04aab947a57d28e7620ad728a589ffe214409284b9ae9fecebf5ef5a99aec1efdde05eb7f2bf80ea66cb5f4580e5eb75e8aaccf203b0e8c29275c05c8ed39029b5d74e20b92dd2b2e6525e7e4e7216735d74f7db4cfb4f76083f69bd6cb2f45a29229e38b54f1e4f5a73d579c23119f720e31d39c119f0f07141c4a461a710e28333583538bbcce0e6b06f38efc9dfe99c826c54295362553f87536ef5280016b7df0652a70368a712e3b0d1b3d73d8266d82d519e636548ec28767b9b109584c2a07e2566abe32d0cc509414b1711c53a37f3b7d218ce3bddcd3ce3bdcc2a7544fdf19ec9b6bd5a35fa8a30226ff37fb679138a5aa53f952b3f8b68d9a7eeda49f055804d5d25b10867d8652290d7e96a0c0a64fad854e6935cd1594655617d4c5a70074b0febf8272468f8968876acf52f1be6adc27bd3e730487fe5ae444b7b6c20f24c825474a95a1a739be1650ead9c7cae41718b131d4aa8291fb2dc45f5633f482b6e31aee9fd0432da9065b084e5e58cad91c5f9835c524b093cac7bba5cdcdb70d2dbf3ca0520f5f0dd74212c58c26b4e45122e583b5caef4ccf202a6b3a5ad0de8c9859c82c397b018e7528acb59cfd465b30577a8d4a358b58d0d5e510e1c61a522a4f843d0e580bedd5d97aff93915e756800ca9890e37275659efd87c6f31466e56141a32ec4c789afb3fa942064caabee55587a69f2600e708a9e58eca5f5c2ed0d348cef955a261b0ffda9c51e70f2335dafa3c2e6fc5efe28229c5bfa7a87361bf6fbdc74731b67003b457616ea7bd30aff832b7d18f4367bec3934983c9363adc2b1ce3c63fc4ac0d9a8e15a727b57131ac6d140305dc69b866e4212c6a58ee1ef5734db31e95f08688e8f8f6cb5b1ca4d9579ee09b7f4391e39dd84b2e7b2bc4e3a1d330f4b29426864ee08b59956d688a61aec981062af97b797b9921f8f881b7baaa200b4050769d8ff1a95d5fd1c4063f2f4aa472117429040f1ff2b50e794c2197d472adaef17c8ad035529593e6bde8318d90a16190efe531f4e1c83d317ce279d71711f3dc5b2ca6c2939caedd688927144c8f51da45fcea09b551d1c906585a7663834ee0d6372d2ec5a41af84ac3690aeb2723517dff02fcca3d30fbe33c8845808b2a1975e098d875e4512ffc527a9372a6fa6df55220182c02f22b39295526c40efae0d14eeeeec35e617a6894f58bb51a0d9c621bdc72ccd8bdd8091290a5dbef4675c3cbdff98050eb4bf04eb9a2159ce14bf68f3408e2c482410dd1ee2657477573acca4b9ac702625c0d628682753f2e0146799a62dfce3ec882fefd902e8fb4c67529baec2434154329e1d95dfc5136b3b6e6ba60da0b48cfc9391ac0b055f7f75ab5b2a0e5eb396acb972bd380ed670ace57fba31145609806b2d90e02b2ceba535b3477071021788e2ad746ca1ab7a682093a8e8b183830a0ff3a40fc9f191d3415d050bdbbc9799ea9b1100471e29feff398d251699d5ec8304328e748bfd34ab714ea534a49da85f173af9bda7a0296e511df46cbf86b61e89ef22e6de5a3b0fb9fcbd7115879d1d84f560dccb7e06f9cad4a1c9332aa4861ea97ed6619e839b302eb9602b2b81537815594bd71703b8272876de20f5b08b796eb5985a095a357fedbc513737b74c4a37d6abf063807f54e14d001de8e78f129c646214dc88f5c21c2185000eb359702036d97481bab9756244413530bb67794f8f2edd7be9caedc86bcf6af2127671ab63ff4e6db943200e01b10b01c0b9fc81f851513ee59afe255387fadebfab57b5a152cab4933cef455700091d832384ae3871a91553574b297ed5ddd3f70d04adeb30e1342214435c305cb34159a357d23bdb2635e2abf29ea68e44f5a47f9bdd4c949d9aeb87cabf6b3917cc6bcfec88bc18fb6d62f3ca7a57bf4a960f589fdeb827f482b9f9b05541da8db5ed22b4fb3da5bad8e179dcb72ef378b7c6db26bd5bf10b797e73cb0cc29c7fd96f49d7d01e1bed6e750d35ae86bbe120bae824a089153f395e8c4702adeb83eada5c9ea678c649fd886f5e41173327c47236e7ddee054bdafe36bcfee9ad62909fdc53cddf2b40d0be68a91d774305e4359701aaa95d438cd4dd0b7bf4a3e38bcf3158e71feb46793a5e0cdc8e27e6dbd7f92213d5fb3165a68f411c224774730e9f745a9eacaf32173eebb198a8643bbb90c954734bdcd473bf0d48ca3362ca6788a90fa34aa056ef8d3e41aae3f3500adc509fe1025bc31b526623a30c97d550c2008bf8798042c0aedf3b306d4090af1944592a5793539df69cb33beb42549602fc9f98a9b9d7d4170ebc210e6217908833c5325bcfb9c82b0701cdb8c9653adb1da531e7ee4024efc26041772a28287684d19db5cc16ccc62b2a1b4642a73f44c75797677f6a490888f473c36310f85f51ff83443450f75333f00a4a5ddc4a90d066a44fa3cf763e65765f14d8e3e417f1bd19a6424488e5912ffb9848b66faf05b732f3569dc254cab7dd2bebaac809693f83005ed6e89f3f49ecac10de6aea859675ead7ca6b68ab62a1324627dc7ebfab24132e59eb9c912ff2cde91fa324d0488350b7b6af6187690835258540e9341d0ee1a8699a1f9b4002a5e5c419f75e58f13231415e0987c9bb9deb4780a887a1eeb33e138fbfe4363b397ac3c433b77ccac37ce6bad9101b9919bf3951aaa0e7c079edebfc17633f18d44fbbbaf85a6f906881b265bab9ad8012be7dd4d6a86a49df72d9d7efaf2d99593395e8150f40ea89232f0a974072e965dc420fdf138f7f8bea3963f95dcacef1894033bd5a9f954e1d25cad40a62f382f224b7714e3c57bfc91233314b3802deee382dbbf80fc90714c741ce9417dbecb9039e945f8edc623ca52a095768935106b60756bfe1f5dd0de74636d0467d1460830542b8639bc1c5c6012857950003c2e604204c8ed674e3ecb284aa087308b21ea6b4df7995c6ed8c93aadd7c1cfbb0f4c6a9c043f8556ae2b796ec1977f981cdbd4c1b24543297e7c0af25aa012010e9e6f503264e8df555426b617ceeaf7536548d983ab897a7e0a5c821ea4efbe426c20aaa542270d0dd692a590e230c244a881b883b61ec3bad14dbee6cba17f81f4fd56290d3ca124378a72adf8ad9f9e2af3c6e29987decb125a74a7c6e2bba7244fc7ebc393963be4062a57ec9210919d867729ceb64f7d540d1d5d82bcce83cffc526801435ffee0205a18caf3cf716aeb28d85c5951dd18d7cf8bf5e1e83f84865ebf6e65bdc75ada2fddb2c06620f15595633263a2e053a8a36ea80cae0ab13e5a96cb34f813bf466aeb6a9e8f7b70df5ed563518b96cd253a4a590bbcf21cdbc7c027cec64afd15e52aa97f8a6890e2fd95354572c4371f6e0d8b588c7ecb832d2911f2bfd03407c01d6dc5757ed68a6a037397cd7d0e1d39b644ac7bf286b34c61b8b605e47522d212a1f7471251ff627a935daea7aed047a6bb418c03e41e674897da32d99b69c959a0a956f78b7c787415401eda1f35ced661905adbe1666a928fd1564979a35b2d3962d551c1ce5d44f3627155fc5b3a1be4318ecc41222c712f56d276d800a8f65eada3acd03982f705f970fc7ddb1233ae5e2c2ef2bbdf3780ee8b42878ddffd2152a6083c75bf55b72d095407efb7dccdca556a5bc6ff8fb71335ff8d944ed3a7d82ff982c6212011c7c61c47d4faeb18598111572f605b66d49d00b3b666b808259bf6db62d3b4874a9819ea938c6f60baebeadefce11df20523e628a524d6ded161bdd2f60a67e52e4f20e2b980111daaf4d6c1db53576ac1d599a659bec0e6cfcd665dd3abe6be278ecf1e22f994e25d07937cee04a1ffe90bd9201d91de25535d67d7a5d1ac8bc058afe38dc46a6ca2b7f467dcaedc5cf4957200d64d9cc058e3bf24bae9151c0a4f60a5fbc2ff1df7a442726b73a06b007048e8a2ec1c4ca775374efaa6e38ff210a3c397e67398dd2e97aa26639034a71da887f0880be14dfc5721b99d79bf5fba9d9cfc35a5dfddf9ca58036083e94e68ed5b3147a46edd5cf2f1d3efcd460790890caaf1d08f765bfef6d42e226370c6a63ca1ecc4dee7caecfd8008bcb4b7b2b6d782415c9af164207d3a21421a4412f2f31a703f30c7dadc40735f138195e6778ecc13cce38cdc13fb2d8dd59bdd420e674ca4eaafac2565b61fb1b6a8f658a3bfe1a318cca3c2ea412494d3b484718ce4044da3136cc597767a8339e772ae43f98f2a1d36b1d228eb05cfe29f4b908cb7a3aa322fe2208e7ed1df22732a72a4903a8c91483c4a6a73711ca2cb22eec483780e63f76509f642d4e607fd19a71e182f49a75dd8ab5a55b5423ebdc2cbab0d8df1871ceed5ba14229a79d152813ddd55c7ea9b3b29debd8b4b2d4a15a83441f82a6e07b52fba99b64753e55aa36549954d2bd5fdaa9e151e441f23187d698ab4a0507e32222b3779cb341cd46d43814fd59b230b16bda7dcb789ab3ffa3a43b68063ae40f9a1953c90d96f239819e2abf63d0a853135a23f031726b794730bdd9fbaa512865fd91d4d9e9c61fa89e36137bc4331be7c94167a178b46f60c5a2599ab3d68999d4c14d91b1d4d9d5c1f7174ad5dfe57a3945898753f0a58d6e81d6508ee986ea41ff56cb410ee6b734637b4c8dd24b8e269d1294ae449c418fd4ffb736115a2a83d1e57daca5af10de77d0cf0c1fef985e44676e6f108f3c83caa0d6efbbb4083ff2662cdfe1672af39d2f75d29d4e33c97c3fef76e66c582142af188427ffb4d99a7a1683799764e2f03f84765acf8a1260d56b35355a38b0835b299d34b34f998bc01d41133bc41017128392dadcacc529b09ffdc397cf4340a5ab7e81f623776455576e866dd9736795c5f40a80b52a4f5c07927d811f34b2a4f651b66772209920c491fb740a11dfdae2e3000107c33083fb10f6208372acf2516a40e1dbbfc9dd32fcf3dfcce8e9c81349ca28817d86e56f3603040917690b0a47438d29817f36b190a2581e7a3fcea4895cbab6ad2acca089252fdd2bfea22637502896e011a88d2403ded83f9a067c8172300e3cdd1f10c5f3be6d5123521205d86966f00677f5d589f4cec5766c74420cde42b88ce0901188fa32952e404273f4a62610e77e57222e00a56bda0bc39c48de96fbfb54a6d8a255ef9c73d67efac6fa23a760c1553cdfb74bcbb51dd0f727ea58aaedbfabf96dddfc9cef2f844270268deeeed15da525e775a49fbf5f6f312fe20c3c272a08c919a1f8f60e763156f63a508ec49a5d4ca3d5a8999552562c6058d404db130619d21cb56be4d2c60532c48f5ff3d5c867ca68a86006b4922bacbc598b4267f6fc97840850fff307496441e546847c617f94a223c6dcdba2aa66e7dd71a0b92d09f988dc442b78f5b1b2a84871f4b66698cdce033f7a76595337f1e857c311318374947a9934ca531b1c14df7a6ed0f59fc97064686e37e1fb42a2ac898ddbf68b1763409bd6fb6dc8f720321f5831aef8402e96106ace14bf82ccc3337c1c9bce7f908a5b8141d4f6636278d179014c77b334577d42d28eea6f48680edf2065cc0c3b066c8c0d9cbb301a5b010a8f9d6098c189cc54f22180a3fffa2ede4834117e18b853a833876ee6097c7642aa93a03e0ca2387a84d0f0d1189b35e9f9dfb775646903b33297097bf9d494221c3641dde223c7ef77bd92b1f7ee4feff19950371da95e0b7536985f2410aee2b0ee64c60aeb9e16e40d980e8e91314e16f9e28ed964d8bd2e821a1c9770fe4632a4a1141b68b7270e7906b975e8dc7d15ac972c306b0590d4c73b2ef7cbb58ab00511505d8e32bc7e848bac899bb4e9a4d40998e0e96f72b57b7fa4c421e33b2e8e5e9991931f306048287fa44b0ebfd156cec56c2d4836a21e4d5662ee6bb0a0206a96af3a80d802b414f4903f97f23ef4fae51457b98f48baf8415f5ee004a4ba6a8ad1b162e0de1a6afdf8a73ba12c1897933dffca1ed8f6c7b6c4d76885f07634c6e9e2c427447c5605d1f4c11d1b5cf98fda7078b7755bcb2478796c8b26d986f3411986d4ba6a716216d794301b8a143e7ad1534c31f7e41090d6cf9d952780d5ebad58ad7aa6667a5b6037c8eb7a0806cef0fa14484af3c26f1d55cb9b53adc83762fa3b135af262f09c4c115c5c86cdc9775d89fd13abcb48c5eca2357d76ffc4a061ba230073e788730e1d81acac9558ae7e35b3c7f8cd81c010215b1468abcca7c64b155fe2577245c2ac683887d775d5be883611fad0c8164fc5266a248cd8aba7ce9ff5564f3ecaa18ce233950f01486f4b3b2dd029c41aae68f7dece7b598cb5e17143fdaafdd8dcbbfb3fc1cdcb7d985e4ea7119b2007ff7d401458b6394e6a982388799479f8538521bee5d541357405fc3adfb87eb36dd25993102de747b35b465fbb139c87489cf0e2d5c209ada58461659a9bbd27e223dd7c22e5c83736457db2abd41acfb507c1a695998e3f559c24d98c6fe6c1a2d26c8bb804b9077b7ee5492c0c6d95075fab52d902213b162cc21cc6ec4784ce68479e3a68e18166d5479fc5a3b988b5de4b95b4849922abe6f0bb5fa7f82765bf0be672a770f6b562335bd6776ec30e372b3da332009564e4cd2f7c79c8709c0541094c93402d0cccf13cdb70b994936571bd9664f7de4c7c95cb244e0af44561820383e28d43f4eddfb6ca59b58904433cf177af64b8ff7b5ce0e8c1ccd1140b3a49c95360daae08a66716b5e63ec7c0c41ee9c4e371751ca670eeec72d5a8f3a59c45950fd21d86ca113f7ff806b5acc75488247590c70c064ea11a627c8bfd475b6db7737c8e73aedc539332f8c90e3c651f50d592560f4c457960ab7345a57e066d8f8c42569a088adf6e54b7eece3f561b827531cee0cab06d9485da102e2922561a1ba81fc087337eedc3dbc4d9f25bdcb53a34dd98dd2bb0668a79164b05cc6b9031f1c0168d5735ab083ff0513903fd41a87b1afdad271e3594b49ea98ac8f5da950ad0784fcf926d161481e861d7c7161aadb709d0ad0814369636c8e2e8bd5b0569887f8d09b2acc11911d71e2e98ec90fb79b8b5c8844c19d5aa5f67a59d44472af414cb4f385b179f8d7c33b2214f392f52e41a9137eedc35f3fe3af8abc2608b4005120cb01da724529b273a9b56dd6f2d48a49a3b038a967fad7b85dfd1b13b72384003f99ef34f38872d192929251bdadd2ab077839b22660922952b48af303a7997b5d9e3590f08675463dbaec4f05852d4e8434e21c28a38514f73f2da389d053085c3fa2bde6701010ee45fc7c13c813621cf3c05a5ff9256153194fc608a5b5b790fcb263f80d7f19b65f9df878df4e019b72c7cbb025cdce118a65913ea0046c9338bca9c1439fc63cb2715bb27929516abe9e1d48cd986ac30b8a77172fe99a640c19cfc74825e977d467db140793adcb1bad426d81dbd90d619e3465dad048c4fe30f280cd59d1ad7add9ac1fc14437b8f0dba3a4de858055716c45ec5410f601f1736f9b65bbc15d9390bd07d5d0364acb01fc95e49ebb2d189ac25cfd0f6ef3f08c9ee9bc9ee335348ab", 0x2000, &(0x7f0000000a40)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f00000005c0)={0x90, 0x0, 0x0, {0x4, 0x0, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8000}}}, 0x0, 0x0, 0x0, 0x0}) syz_fuse_handle_req(r0, &(0x7f000000ca80)="babb1507a31fbc348ee315c3ba98920e84d970feee36a929bc713e040e8d456e0204985416d803b31dde8ab1721d50c3a44ddf98b62a7b7c319a532aa8be977b8c194e7c49d815639101f170bc6d109adf1086fde5abca3c62bd22ea5537790d65069ea80094be74f190576aa519c071ab14307258c0a7f631c09fd51bff58425f7207fea5896e44b904cc930281abf23e9a76f675c166e2f078d1b20ad462bd4229d4b41b8b1f452336fd5346fdfa4d41659ac1e830ce8734288d5406eeb99e673d9ce4deca34418c3be31cb0d409a3391ce75dc677d5971d7728e866af6413592fda7b4f874572ed87354e2ebabf8b952d184ac381c96620fcc2b080ef9f03c2abdd00f3600de93f8c44095ae5e2f5c7e586d63a2aa7d13b5f95df8e47179ebc2e74b624581d5d4ccb1862b4f75eb78b8304bfda9e029f8c9157f3e0ff59a24a855a7baa5eaeee43ba943522675a645471719ff891102a8450f08b2d804ba463568f30871c7d28802e5adbdc53e86d1b88f2b88c888ef3cd6a89bc6f0c1aa7d21b2d271efc8dde451ac7b71409abc4469ab0d1da719d3db382824cce59e3b1b2e0feca1c0e8ca311a5705634efd366156c2eae11b31c7dbc7b4dd3b9896b9d887d513bff6476623e930e96cefb2e481b90684ce9b5da88af3c4790b63cca74283430e766afc6b60ef76817bff164c5defda293c36e95b430c57fdb7e13a2e6d8cc39d3f89126edfc35f5187a2a64e18157521fad4b318dc495b981df2ee04bd5d61410ea332b3be332c8bea7b170f57c5bab95eeb02837db7ee826907ed6bc65404759973654da1a282c8c5c4ebe161732ba3b092b71508aba4450118281151f697915bfb4c69e0d9913aa24bf8ecf7ed4547e6630453a99be33696822c1ea71b3dd08908f3cacd2571bfbdabfcfbef4b1b3e4529a78bf7999447075ac8438de9516faaaefd52f3fa4f33fbadef3c2c139dde376e64bef60348fc68eadfd396db3152e42cf270d0d13e6f2ec79fb17b1b8efa9fba65aa823dd682996263d8dba238f0dd557f9938c7cd049053f2f080f9f2ba5a9cd91b62edfaa72ec22aea7efb3b1bd1fe2b4b8ea2d18c5d97860e44b728e2204c7185a168989fc0734c9cc1e1e3c31eae28cbec8a7b26955e8d11a67bd33db88bfcb48b30c1b2e6d0cc4c92456d6fa1d342216be11cc16e150096cea7e8b0ada619d75d7ddd8ac7bfb5280c1f533ae9b1615b1dccec49f35f47849faa640b43f678601fea278a1f23c5d4bfef28a79d6848e9205b120e860c7d94d6e7573b8a6932fc83d294bfcfb33621a434e2d5e420189bc7a0ecf67d7d010d9aa50340f8cba19597f303020c00582571850696400f40ecb1dbb106c19761a18c15f6ba2b7d0c2f57897cf55ff0720cd32dfe00ea68985a0c2ea947d3241eb83286bf4697f7395ac160fc89ea3f513e2e90d6947b43670a35b9f35de62c088c3131d61c3713b6070343800d14f4415e8619cae8d867a2957ee242057f7367ce45d876a25e6c56b3bfa0f3869a61f5dfa4f98a49a8a4e76d9401b24da20d2d1a3c7c6ea9969b3e852db3ded4a298336e1392452849c014f99aacdf653d7e0dcd3d81415e1f9cca3d9469550a3cd153f4e1f0fb62be86b000000800000000031d9a6aa877829ffbb6a11eed8b16636843f8eb5cf0beefb6e49f16ab5a74aba4a7a4cfe8a368ab4511377bf5ee0ea59e530432365f4c3525927f293da54e04fd5002b6dcfd095462ea8895124798edb618ccc9f68fc32f47d954d9493aa14cfc5157ee6c332a91f48fe39075b0a29b779c9183e659f5854a2d550094e837c97b7d41bc6f1e02e0025d1d8ea65c48c5ffaf577284ca39399486e831a2aed4a4a5bc6a15146a934e1224c34564db67e34c43708ec953f7ddf58f7b7ca594acbd6286c997a3e4e671b04a5b8ea8d11fcce7ac1567984097c1d6bd37ff302c6c38a688153c746564bb45c652333c9fd87a0adfbf2144500c3858b6b81f8ffa58c9f2fa70b53ea3eebb3b456764ff5cf2c172d56307ca5a5ac4b15797cde04b9016fa36ebe1ac0aa6c8c704526c91731a39d3b0b6f80ac254d9f652de23b5e94d463a2e0d683d7a55c4a5457c96b35cd903e9ad3f2b6e6a65424d9345aaa3984406828d0023f570f8f61bdbabe99908fdd77e90964ac44063432dbc30c086f32db3a9023194d4df15a72ad220581290e89ffefcf25842bf2d43dcb438de8577e3aa678bc55e2ca0474568ec00553702af46b178da58260ec33b982e537c9d380f769b8eca3fd5614b3128c6e068069fd40deb8117a03c1f384d8bf5f44eec9f0d285928ddfb73cf545dc8ea00b80c4520ad873ca1d0155cdd0740b4a89438bc03404850a835c392bc52ec1867bb961a5c5e9997e3fb0ee748c618cf4719a2915a2febaf41d1b150e58959ef0b669292e3d3750dc92109e5cabbc251a121c1cee11807113208561a5f2f079acc332de2ca914b1c2ef8dafc010ffb4881e2b8b8831c218407e7a2e0fa50f8eea22325b9fbbc4a7b686d14b460afdabae247441db4927f13607eee2cfba854652826be9598bc16ad3477e421144b499a0b6e0d50a5d5eff1a3cf454c13803e55594b261e5599c33445bbddffcf8f1ebdc5599fd85f9ba81967469b5090b7cb8bced92d4fd377132d12b099caf6956e7dd785503e694f7b3d3d86be3f0f3a9aa974aa9b25550cc7a0ab62b5bd08f8d4a11bb366d0f9c669f151b64ab89aff3c140a1d7f909f5f83c8df7189cb60b1e267951d5042d7bed5633f87efe5590910644dfffac26e41cbf106da125912cc4681de4b92fecb9a5b9a4a4d966e9110721484edc1aa48fbe7b63286585252b7d5cfaa5c2d86acbd9bbbc15dacc9a73c5562ad813fab89f5e1848bc231fdb5bba880ac927ec5d0e5f3366d1467bb7d27b43d2783ca5e478843361b6b4142f6e1fb3288de0ffbebd2ea141571f249e5b990b630bebad6648f732f2d0239ba8e612383fffcd37a24e826c3584b2cd6e5eb5aca975e528dbfce3c3e542b86fe93be63fc5c55cc5b037c8954c1f79faf6211678ed5ea2638de583c7d958035eb82dbeec387fa128edfcc888d0ed8130d0261d4e50652b60617ab3f444977b51df4331d8f90a7457f173aee5df8a4d2d50c9988c2dfabad2440c34fed036ba71822e4ff14b33a8f07eab77aa9ec8aa976a6ebb64749ea80b3ac52c6fd6a6f9a6375e1d51ab8cd99c4ea915c9ffc061914a54ed04d8b307689d546558fb6d034e59fbffb9c7c501289cb659523564d2327870f9ab3f74f25529955f3cc5766fa32674f79656ee952ab664e99853e617590620e7cc765b6b0ca9d26ef091cf06df359d0f222a8e9673de286037b06dff3340b875fd5a725b6cf267f539f206cff8d76c0964d11db6c17203ee19cbd42587296e8139c130aeb65171a29cdccb618a3faabbb72fcd34acc0ebe59e04ceadc597bc131380eae187828a2f0de48ecc7e28c211faa3e962b05a1bfc4968ad4d855c5bfbeec58bdf728f63a68010e827fd96a6b1750582fea0673bc007d63c1aaa642cd9e63bf5e6fd404a268160ca237a26f8b9cd1faa0bb8a7a064428b3b5183562b1f5ef28386e39247e5a3c1175d189d687a6655adb734e38aaa98517a6b59dfea024498c771280cb9756ac0d789645f3cd9178ff8a3df0ecf4e04e09edd59b42e9640e4320939ba75e04dc0b96b3c85847de1713933d6d8838e2b066b9ba052faf43afa3d894e133d40a9f3d48ddb8efb417fc6815eb97b529a5c0a398287cb53afdbdc0dc39a39f63750cf7fe855f64922aac6a2306d737f13e3f4fcef00e6d8b61ec21b7b9af4b81ed86f276956aba9f452134e2184d505f66491965b3adcde6ebb6f89113ead3edfe18c211c36c0439bc1b321518fa958f8f29f89e31e1fac1f9ed3a7e68b86eb039960da9ad2d823181166dd1dd3fa08d3f66ee2fbf4a0444609324a0b6d335b95a8d9078c31c68803186867da7757412dc52e0e44ade235f5a8600f7ffc4017897acf0bebee882edb4d7841b7efd3836314326b6ff4d21aa04db53803dea43b3f25aada4515b7d17f41cdbecf58e2cf3fdf0d214ab6907288559578a1d02a3ddb8a980abaf49c52b4bbfffc6626056d90760dc506054c88a680f4b9d7884edb8e5fd27adca9fbc3e905ca71387aff238e8a37e6d9ef75de15990531afda3fe170a4b3fadb249df6fbe0ad598e5ac255efcf456f5aaa0e20a64fc56eba14ebcb3ee96b608f33a7e64240d9264a83419b57abb6b1a946a5427c5df162d8a2004bf5d5bd011423c8da634e6b0754a6766b8907680ea0318eeb3699fb4865a05e2915b7843a6123b6b23eeaf295fb66892fa4fd56268ce98cc276c9a448d96adafdc13dae550cda5393aafa2b5eb0e737001f60b7e9b6501a611517425e3ff73afa05c4df56e595ec8be7c0f8c1f0ab7f087dca60fc5e9b40d62f72c453a261a0c87300f66a3ae81f0bd8de024dad855bd4d62c04046499df9e974d83712472df7bd7504d97296541269f36789898e64c9cdf6ffeb0d390d79103ce37d3aaf3f0df714e44a3235f74f2bf87d23907875dce0d76104e9b2e1f9231f51e37a8a29703fee3a3d24ae9a54fa06dd02428356686274922ede85a8656c21f4e9cc1847a79ec272a9f069f8fc7ec43ff22cf4b22132fe9d1ad01fbfc7ff92669e7a1495e9544f92fd2644cdb833e49e71ccc3aa5548ea74ee0753e02256dae7304d3a8a46810311e735d4c2d28832aebf5d783c3d3f060c791732b8772327ea211e936d23b9a803b51bc8f7333727cf5603239000ef173a6da4a86da3295190b042e230614b157d1ed2d242444ef98da9fcbf9a2cd8da10f3b181c1d14b339ed8249049de44fa538eff2ecc8baec0f8e3b61f8f643900abbbc8bfc7fe274556f7c763c2196c18a4a43c58a6257d3d18c072c8dc22fbf7f708e59b3d1fd4755ff740a32c53958a681ca433781d34d30f2845dad0f27790ca9aad897714cd09426a8ac7610f5e6fac3ff96e41d6f5c8c908617c0a80903230d048e7c7da560f275affc0e2d92b8e2e3acd29ff1f760a67ff841649e4e6489688a7c736d81d204b8a230b706e43ef908de131c24456546d4bd881544fb13c7e2c7b9028faa85758cc397d8cfb8a8ae61dbb43c05ebc09d85f6b860a25c43028edb834a7baacc6dc45a00906216c576ae08fe0039181c88ae066ab752ab11077e5dd6bae79a0d93e1b30aa6f7640b3bf61b166bb0c70fde979e6981eebd45068eef400c4dded22e6ecd339bf3fc076f61a152778867a36c165f27f5449e612286a8df056192c998242f68cc55362fb6eaab7678beaadb4aa2adfa65069b665caae56422d61820d1a217f73d29e778c6a3d20f19bd1183482cbe8e0412f065e4aa96906d75213e94603b7a07a0195848c63163036e3d2c332b7d365add3a09c8317fdbf13123ed7edd279ad8679c31085cb37422c30defa328e0d8973e2e2d61e6f0389973e664b4e39541028e30223e66e96749c97ced85985b0eb9ecfea1795b62d6b1bcfe112a84273f17f5e65572d4f3275eceb9f4b48a9195a6e5f1bd145624460126a6c68f8c82af0e2063dc2f7bdbaa03e36bc4f889b937cd79e7c4d2cd6a469ddee246b1f081d43cbc883e80574b7eb33fc05ac78fa00633a9e46fae49ab282caa1d80ae7045832d09f5f5330fb4cd034a512ba337f0290b9ae3d73ef102c8948d72e3c9ccec9a974a55419f4c9cd22cddc228ae0c030fed80b9f234832ecf8ffc3167f2c4a3fbaf9ad47aaf287021f2c449f2cb9b8cc83c365f98c8d61fe53401b6932ca735affb9335e08a9374b65cc57f53df023bd5aaffe1a9dab2344be56e93a2154bd457e98c2428f0607cd45609d073f43bfa55ea0c92533043f565e4ef2a6e6234956a3b4ca5e185262e01c8a81ca59122c68cdd655a70befd516694e0a0bdad57ba499b8a23eac5f269416a468ced9b4d1598f40a342bbff734dd3aad68e151bc21920685219626ae82a74c899f80cba8a8e17698ff8bcc5bdb96f95d0c2e1f22903069496f5b1eb648ac6145c6a52fb5dbfcd6d81afd7491e56fb49e57e40c574196206fa51fce5a076d785c9c517b67366d89558f5ccf8e8ca8200baff0977c3f9e02e9882853d5d5a657f69f9e7d51ec983f4efcf60157077582858ee117fa04591e72661583744d98a4dfdc0035d9a29bb597fa928a70f8968c75e550f5f6f978fe9278a84cadc24e08f7f1dbcfd4dad86ad9f209d387f0ea4a784765d32fb501f60464da1962a6f8d4221c5d9adf6bef4776566e1204012033eb959a82b9bd9ef47a9762cc72717329a2cf44e68d305287cab784d0b52b02b551ab40d0308f1827242c7391a95e7ea7b69bee79accbdb7e04269bf2898433634a9bc905f3e7c0d75dee7260bf833a64b351c1b8b0b736155a0784b142fd49d2080b5632b264e91d3ab54a784f3be9522063506ec68e0f0f083478ec39a0a54c5ba24e41fc3b722a119310b41a0d40e7e065778037837348e7593772fffe015074774d0fc2d519a235442f05b5240bc0d3b03118072310f4014aa407853ce22516c2a5cd21743ae50bd899de264225744e9e945df906e7f9b784ac2b7b7c514a3a5ee3a072d089733e54a13143a9e3ae936b120160f8f238559c2db13947dbfa8bb54905d08e67837d57e10186ba5de5b23f759cbe8e679ed523721500bd57e2bc45e58fbae519dfabf2a8e54d8a820c85c49f7bcb857924b9785db6860f436dd125fd220f16072723e5abc1208b4ddc7ff02ceccb80c52631cdac6fb125181a0571fe1873fa53c03944cc761b84688f5ef5a6a4474a59f351657541ad2d7697bb01b40c8f589494319e5b266ee0ed2eebdb6df6eadeb20b299d606c8fb0079df30e85991068edbdb84278eebaab5f47171aa603eabfacf2bc32b8c0eb25d9a917b8bd885a9e447f9a2018ff0ef3b53ec2673e0d048ffe8f7568a8286acf6330233f35119d9709d182e0d8820121d447ead9dc358c55f839b92c693c74830d05ba17659e6b20a1ffd1ebbad68ceb23a76b44fe7e0fe151fa1d47d3cb02356c96368dfa167d701fd74fc64ed49815ba69934ff3d1b4c530d637d4fa53ea98cf30cd7c7d889492bf5c7fe4658a2ec0dd8efe5e7d7d91f7afc240be39721a72e6a9697440bd94991fe0244fbbea49578c48c5811d78be1582a21d39b93a9ec6d73460717d20c4f71ea02bd52c32a97b60d76ad699bbcc90e4aba24438c9b4e161deaab510f99cfd1fefc915bbefb4c73650467d47c43cf4bbeb037e67526d4c5868d4dce6a807ab08fcd477f90d6827831769ad4db4120d51a0b43f11e011a93a4976b91022851cc336aab643969bc06c9410e0f12bb952d880037248bf37e89f0ba6ad451c9e3a0b1d4479001a6e8d8b3115ae19af4372a5dee1f7017d7c5a0d97e15150d617ed08941f91967160602e727d30447fc2a9ec9c289900adb739888af3068d4772e608d9b9e6676666ebf9c82305d11ab546cb0638796f1ad334906bf582dbd45e937e6a20267079e7b73075110849642fa99adc37070c00d0d8127262a42d0f21a3620c242abe7eda1a925dad842bf67e7b7e2de399a65230cc8a77df91fa7f668eb16ff87ec428f6a0ace1a4d0e6dda60baf4508e41a2ceecd3a30a307b78c90b30f3f5393dc5df91294a2c1c72e4c1d495836726c32fbc175b6dbabfedfec0f387c328de22aed4e089318fc82e3ad83f1ab743e48aa521b34d0d581ce9933a3a70c83df4a8963653bd25eb7996a78d45e2530f6ee91b8d7f7e7297695493ac8428198941fba69bb8a5e9c9571c7b87f4058d7f74fb5d5a671fdc67b4eb2255744aa0d707083d989edc5939acb76c29d6b1fc1052322dbe974f1b3df88a43d3a57469df2f250fc05f6dbfcb0f301ebb6b08d9bb1f3f173af544d67020b1ec7d44f80e9a286dba5158b42a5c15576e2d5527999e01f7ea916aa4b5fd92b0dc0883dd8fe114823d5120d5a89d65c0f8c771650f22e32f0de9adc4a1655e48e7b77c5ecd495c3ce63847b1500b2c18075a213552d780dcd7b23d046f4143fe8f3433be9840b9f9fdc76224d20b245b9ac7df3e31e76c5acdfceafe63dce0c7b7faba2e17589f9385f1a51851752c992d5285f921001479df7afbea3a73b9e417124dd5bfaa8f0fcf9e05b0e51d7c3495b471ae235d8a500cb13f6d3d556ca75ced84276038e3be5509513060ea76d796c7730c5ae80b92fbbc228f96c41e0e814fca889643b053d916874a50762f837e7b0e0352895f470cd56128ebd4e01ca19d9bf45ac2c476452d3dec6ca98478ae171c0eca983a33393de9d1536ab4f9de9c8de2b337f4885e4950f726e64aa46c206544410778163f70aa279500cb1316e20f58171189eacd895cb515b1e9f49bd2411a224dba1c49e3c96ed77a5dfd0a118041f7957378ba895b52ef4783f35666ec268cc1eb2f1cfa801992cb2adc4203a2e63dc9c3aeda3807a918a0eb4ea218b5ae8ea59a326272d5582291e0a562388379ee6a3dea497094461646e6aea5eba7c13cd67daebbd6f9637ba4fb6af5993c34c6f1803924ed4a60fcf573a53173f80b6b44c398e008566e887dc40a01d1484b3a4f8091c95f79587b005ab59bc7322d98053ccbe1588509d1c9cab32002a3179c9484f5e2b57b4af232e16b9495932973dfce11d0bc3d1a542194a6ce2251cce5d1a077dbd81a431b00222123b55e8a03156a2246e5987c352f608e881194df13702c87d69ede59f2a440d9de81ead9032640a125b2ce33354673c671d0da5fb44aab646da297f3bafcd1bc1a6f4929e0098d5e0a253e114072086ffbea446c07a15428803dd038a7089c1393c368a20910f8d19887fca90e76f9c2f61e7772e7eae2707aaa2425534ea9f7ff836dd6516f37159c868503875a3575e2e9aa4011e6c06b762dfbcb60100000000000000c335c4e260febae4dddbd3b9feba21f540ae8599a9520b7d3b516f15c97ca794b5ec9601cc539a3cc34f471d7d9ace1d81704fc69e7096a175dfe6067a1a0c67516f481b71212a8a06c9c2638e8cd0362679e132b31fc9df4caf93b7e412ebca4e164ac340e67a107291ea360fe3de4cdb3793338de3ff8e254a2ef098614f75862b7396d37b7ba3ee2b0e2676a8635abd7ac95ce53af2adcb9bf21dd8defa4e7fe8de4924783fb5e7fe6b058a8420c51e481dba76b2c54f79b166480612e95737fb783992a657539621ba305931b7fc3930bb65af53d125af87b85a5473899b091f73c6434190bafb14bb4097fd5657bc4e7e19ef7e9644b1b5d9becdf0037020d15ed6606379e86997c4289d5bb0547ffe226762db9045f391c5f44558a20b4ee3d5acc6fed5349c45a7929e011a8d3893912d0b10b5feab2d39a5d8faad9c845c5c0d3535a850f12b8f3f9a3d667c80540197ef1830fae2401dd9a30f4285825f07e2b8190851bc8c50b0cb68c690c35833dfbad56d2b161eeaa7aa31bc5ea0a7f6a9bcdd811b2ad17d2e1acadb19bdd6899eed882b9fd104e5587fa83fa0579f98d51fb7df35c71608d443f4ad576986669bcac9a9f0b80911a65a7224511cc16d8c13fd751846829ae8625403205a0078e12677468297a4bea34e07c2ea60434217919287268cebeed667f96fce46c0664df0c37c408817d661352a9c56ef922e216cd1929d6437b5976214b07d85625961b463ede9712bd0005f287b42630c17aae72d6c77b58fc127dbbd8720ba76eb804f09540a1f3bc4a0c97c663180a9ed59955b482aa2028b68407cfbcc098a13beecf1ec9250f98ebc8c121f29b145376295aafc0dd5b5fa1b93c404823307f8b135c39743a22ba2192c72fd7c7c5959ff335411317a5d3b6741794e3ecfef6d9519527ff6fa10d8f74927322c8806f1fac018133169936874e450de651a38d14bf4e9962ce55aceece72ebffc6db34aa68244d91c82a240208a39bfff89b0f5fa70128b9b637572324ab2c98a4bcd964c5da21a34ada6ca354bb26280652aa02852844053c27f09c6b56248eeb624098bc63079643ff31c60e655f0ba9f0d4ca5d332200c4fcb80bba94c6be879fe9ceb080bb7840b2c5b2a321724b5721f71c7feb9531bfe6ee9169a655891402d3c2fc1dfc34f1edb7c5c9d1fd3227fffc3ddd72ba0fae07bc0585843ed1b9d6761732266da552914222b173d669f28d4ad993e25efef9f9baa3f7436d0536609b4beaf0bf8338949bd411a470035100d86650fe953bc5fb3031462ef15d39a2cfca2cac2a370228a507235afa4b280899de012f112f571866c0b8327d561c5211b8965fd3a52b9350a9955aebf8255a193047bf06ff03b6d49ea5147985fa77f59b1d8f12db669a13c6f1b34a40860d56b84d58841ec3893ff4add8a53b91ffdffc0df32b90769ca544dbb62b9b2751dc0d4547021316e509a76d30aa70c7c0c9a60a3494b678fe9b4e30fac6cc5e8f2dfc3634e8e4e28cacfaa32f50284f8b537035985e0df07ec44511009339f51a67b2df23e1f4c66f53cb1863a75c3b5ae202faf6ac805319512236c09c1737ef7c915d710504c80fa158253937fcaab3f7e95c6aa9ca57f61c386fcfc578ac9528903c70315176e4eea87bd817980defe661bc05813f5bfeb1b43915dbc1f5eaeeae994b654f36ab046dd8555d956f7b7ec328a0fffe8aa6ba200d088aa0969bed2504dfd40dc7e5c4f370c522a3bdcafa0c7598d21ea4d77d58b64a085674e1515730458e728c745d8edb52e51538d51cf2c9ce8baab7fa008e39abbf06df2f149f4a9765e9f6138b73b7c7b5f2765bfc342192e8ca3d3ae7024af920a30bd71070a732ee5aedc021bfe95d936b8927f3e3d657e823cf5f2ff1b5c947567ae99de89879ad9a25f11b3fab359f8e9c45b32415d6ba35e408256230676f514d10254f462d07717d0b150bb6fd8f13a711ae2d1218e945c78dc25489a7748f2ea1d067c4e19c69b1368785deb558d97b805814ae28b5234f2ebab88a691a4f980a1dc3e476052f4717f4474867e795a86bf220d506e0b7e088ddc5e1aebf4012aa5512a587aff9f8454ab1736a1db10121d7d825b4530ca263c9d6a7f0c883a486214b0b0ac4a809d508b377a7a7320934bb8df35a7c90ab317b80d9c59e0d2dd2b32e21eaedd2c31ecac8b0b701db68f0d7baef1e4c917d46cd10cea3bfdb4c8f9c33f33891ec7101d99c16b48f2b2b01623e0fba1e5528e808f17236160978efe0314c5a76abbcff43ddda6b04e9564ae59bebb41a1436cb35e6f5c6d0b6d07842f86b17e9c11aedaf9292ead8371216b63f73dad37060084956068dc9dda2c51dd4520afddbd274886573d9cfc41a7212060022ff9cd8858ba88671ef5de3e3333738902d8b9292f9c31c21b5459a7a0d18ba80f65848983a3b17de6f67bbfe384f00ba0ba8c791e0f30f19ab69f41a83a18d5f5207e0147daa8138d2ba4629b204585715c9f1811c35bebf88c6639af7ed508c3a2096bb9931c943699d2ce7e344c958a9b33bbf9f43d6276afd88ac95dbdf21d978798d4ec7c13b579867400", 0x2000, &(0x7f0000005ec0)={&(0x7f0000004300)={0x50}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) mount$fuse(0x0, &(0x7f00000000c0)='./file0\x00', 0x0, 0x20, 0x0) syz_fuse_handle_req(r0, &(0x7f0000005f00)="6d84854cae283e60bb56b3dec2322082f3ada2b48bf00f994b4ad30b8086fa8a43e03c844aecb707dd84ef1c152f0680b8abb9958b2ef440f0244e74107bab82ad50a748a819e3e13629979c40de4ef9e3ca83adf5072641dbdeda17f6ab53e3f3af44c706a7684272c11add468278b582166a72535c4f01c9492ddd64bb41ab16014f5c42385c91cf12f9a0c08715a7b117634183a2744f7116fb25b18589bdce8c138ef2d6f50cfd66da4e3c4cfed038c0893bfb2c68fddcc8938496d094d8927157c2bf7fc0652a70dd6b575216f06b4aa74ba2716844d98a3492c63bb8b1521a2ec9c3ac2c107d5240e2dece423973afee1475f4221c80c8e80b0268505934b9e03e4fa1c12fea97a7b27c896a6e9af78a0c1dc8a1b260da6f88914bb2d851883b95d0c11d3d96d7a6aa09d4d51fa94dffdca7aa66573adcb28cdec54b9598da64629858fa3d084f7cc5974d978dccfa1660d8de86cb0bd7e510e577fcca3cc6eeb5099d2a216d6f36179dd709426664e1a180959b33d6fb69a3eccec90de044df9cd7eac155a06473e389f5be2367d82c1367f15aa9edea45a3f34fb81f308356765f1071e7ba7cd375162fff378f52f8773f646c20a7ba460806d04333801983b2b7ff01f529d7c01d0869d86e72e91a07e081bf687825dc10172c8632ae83e0158611bbd1246d23da7d1bab02823c6a083371bac3dec1ac11201f6b425c0719dc714eb9cbf1ffb7cda5a29dbef8a1b1b281010a8d15cba3f09be7d5c2ca07c233f11b555f86b4e27ce15c45cb3a7c7b44b03d825969a8224c7483d7bfef6321353b5e26880872f0607e3c589c85c503a34685e9312248c7ebaf29c705125247c488163e4122beb5a84206f9ef78de7a79a51936756b417ab79e97624c23a2e92b8e389d79b7c5177ed3f34e81b899da6bcbcc2ab279efd9845e34776b730f20d42c4ad291d38486868141489ce9b3304c7e86524cc59493c9206913f3e7d419fe1fa7a7dee1c2978c8a7f86c64aea8bd60f0600cb3e56b425d84914ee6fc2465c403d128e7a72c59c982cd3374911c464b8fa612de81f92d46007d8798e95ca5cde297db82ab90fe85e1fefa303e6421509d94b959384844e9e3a7b2f3050637132416635fdf337fb42b2d7400d725364a45a602ee9ba46a8b7990e98e568463ff1dd4dffabaa8a011bb6bd4a6fde78962a5e7ba750f17df3c8cf958d566604534508b4d4c9c9fa4475199762fc9d5e648c2ac89f1c914647f3f5df4b77b4744a3ac357cc4d11ec848c73b70b99227f90d5f58fd8556a51f5441f88e75b1cfc72c4c5093201f6b470d1f6c24366896ff8b3b316dd68b9946cfe7e0c8562d7693ae9a8a7c0bcfcac31a02aac7957c8759a94bbda7dda4b66845b538c660b2a8763c0d15ca130b23a3d1a966c7cc69cd6ad4d9ae70078c015b9eb514c04bba087247529e11ba9bb94a904603f67cb860d0ac14a49247270c116b9a25270bc8699fa140acf746c53a28cb876a8ee184a5743f3f1a9de5ad9034e27c8e485c4ed87d976602c849b0c95c4c4629c90d44f7079b0aca02cc158bbaa2086f9195188bae9e4e4296ca708be2395658e8e2e071885545095ca9f6db9962b4adc6269bed05080e1894e53ff0d28a339c019c8f3f92588bd1dc074705e60076333a66fbb58baeffc7d984a46cad0329dbc0eac5fc043f7aef62b7bc9e1639a98fbd596ad4df80ff2f5389c1e61d772f86e8563dd510e54201e120137b44ac90276d01c40f404d232349143f1c93977a9d54500e595522feb83d690093699729102e08ce77002f8202cba84ff4797fa34ed35b8ebec05aac875a7af3d84b5121853273be4852db169292ae70afd4b953f689d5b485da80115d50ecb21787ad6cc6517b05ea79781057f23511f769c7bfb002e9689523fd4d78e14a42ee1f6cc9cdc2a269fac4ea22d64cbe5d0401ac9102afc00949dc4c33079bcf12b565c5d1094bede91784ac6ba8592bdd668fb48028be9d4bc2275abe01072099aa7c5c2b2d1a5810e33ea02d6bdc86aff717a17c4aea284e75183196aa4ce89c83993a0c82a1274b1b2054bac82bff4750d577c32faf773f412da22d79111c9e26555cc5243e639d7288cd2abec6b24edbb40be800e10f39cd1c9f9620a8afc95e70e59ff903162fd585a17391e85cc447a078f35d56869fcdf24b60efd9474196b451507b9500d2126d6ad518832a45c6e25dfbf92aaf0b17e19e88be703754d8f589f22a674c7e2ac1e795db605c0065f921143492bb3860cf4326805f8e366d961edc700bbce1dadc868b6f238d038d7e6560b04a7b134a96d99eb52d73ba6e7f9bc1c81e683998fb2ce92a5e60f93b80ed306fead0936d56b3c6f99e06cc12590c42d874fd75c9698d6d765ac7e9e5f6b285e43a6f5f288e397a3027e2126aa920110de002b3fd1366742d64bd748ebcff92e5658198d360756e177222cae0b39a2599464b5434593bbab26e510d70b098e8c6b0bd933fcb049ef6b61db834ec2a3f1277ecb4c57c0c676fa54d1c66519ab150e3d91224150080e65994eaea715a08a0b6b15b6f4ef16ab4699b2d5f1de3d838d1d2d5e307af6cb648a6958a738275690afebe4b5514b1d1d2af43f8706027567a75a5d35dc09fc34460ff79fd2241323d612248904145e238af72afdd496dafdb8a7ba235790de5da27554eeeafea933408c36615bd7c21639e239f27c3925b9dc2fe04291c7a4a07108880e8edb381eaf0cb0ce5671bb93ea00e25da18cc45b1dd82a9b6a7064ec09db60952b0804886946a1412b11fc6ee84f614073a32b0dde95c9039466e1fec8772ea449df8eec35ea92d7fdc2db7434f995aa533b2d426920d8b9f073cc1d2f80b89ccdbb6032ed1a0c1dfe8707b8d6614dfe65875294ab661dcf702a6a45841d0b5905e1d52782ee44288cfd8ace590e5c0524479b827e60279116c7a8bc0f7c182bbd308069c7f455ea0226e2378978259965b83667834bbcaeafb356a719bfdc4de00693a6caa4b2b74d152782008a8aff2f08f97c8dd2f2493f1312f397a4637013db502a0ad9ce90d1a9191102fee47acdaa905423f20b5049e7bec58c867191919fdf9981bedbffbcef7daa6177681b20d22564d23618a501bf77b47750d9444b698c80293b85f20420629cbd42b346eb370dab3a9ef00fda1763d3a98f365bfd9024129178247bd2270cc80e5b2f3d7850de3bf66bbffe146d5bbbe0f51f256e81c37c19c5b6718fc8d9789ccee024c42bff0727e0a3f0b5a18a85d9fc0be0ff766552c0eb385336b201b61ccc09da5234382e410f254b7e6e74adfb081995a77ddcff38c2a6ba4cc1ed8dcde78721ba4a9c8c43faf10634f19144120dc6e83c57e0b532cfa27d7425adab79df25f5f9f514d038ede503bf5b7ac0d0ae329fa0ba13659144c7e25feb59aca56d9541ad96686d58690949879c0da37b5ba61ca2243a3f4008a85c9b6704e8bacb0d7894060686f4def3b808b923c4ba58173a3f34f5fc77f7c01dba5fe302aba14eaddb25664428e45fdc83e37e051212309d45956a4e3870ff4be69c2d9db6e281b3942249014171bbb64276c77dd0976abe19b16e8d47a6391670d00046bcc253c0b133dce155446121e1f4b5e254fc630b2cc9b4684dc921ce01b11072d43b3d7e832b8344e789eecdba17b1c92d4a7152b9e0216d18d3e7220d5ae2a8a690b26dd1d5c0451f107b962e19de1d0e858455dd1b7c8aa75018ef8e3baa68a55f0b2c6f8eec8b1b509f12a7de6b31c884392ad7ce1c97bf7c1672004a2ad4cf2db456e73b3c92c6b9d5dda907a76929be9953722e002f62ae540b6f6ad3961ca0f40bd5d88bbe8afdb65710f20e1ea89619ed7f27add12ba79541ce303b234e4458464339b083ce6a400030cc527ba70f1261882b50711df67530859cf48104f68cfe48d6e98e4043c14932a462ba232874125274bccbbf1d7177a5c02129f539b28b903e1540c4604c3ad6e884779795079e293db4061cda3666414391722507434f433a75ee073ed8fbe66585ba020b963a0ea83e14bc0c05c0f4c7dfc0255d87e9a2981c17d8d8d2fb8f6916c29ec6b620ee9451da0ad6810b5f07927beceea94980dc22a46a4b40cd9118c08364b0400ba2d5e1ac7654a4d5c5a99587fed15e8b5e0ffd5da7e5c794e074f725dde9c35bd4c33a74546c74229f96957550b1df539d0ebb442953b488fd01aee6a3e2883062b58ebe8e2d7a2b7dbe9d88fecd8c12e394f8e5be11aa549c49f10cd180e4f800579f41c7964c9feb8979f8e93c50bff8f199a9da273ffccd93406fdcaa122e2383152a96e8a05cb0378c1d8531a0091959fbb1a9b3d67a30c884db820c74f2bf863b8d37847d069ab9eb3019e542e2c49082dcea7cb7ba49c049a38456a588e4ad88ad5f0689be9814023c9d83be2b5d58a97f8677c24737bc44b057901ca09a102664be12ee43cb90afd285f2866754cb75a71e6bf7620014eae6784ffad6123545706d8b1a427fa28b95bea22fc3362519c83665215eed7672c2d26f24186c7f7d16318f07d5efc31d9eb58f56943194095a85d003a33b7eb4a4fad506bc6e1a986394424343c3a7695446af0ff8bf4f41aa0e2d3f2209e8f0650c37f863e0ff2cb761d483ab9ec61ec03986d7cb333de966fb9c73f5a693f3a2b6828fc2eef821fc572e32ae66a02a5c10d0b6e807ae41a0274d3fb14ebf5634b39e1f2030c62a27583ef4a4aa6cebd320da53b72c6f0a09f77785add3ed35923f2b46cb0e15019fd35fac3d563e414e991054ed5ece3cc8f12050bc62face2564119610a01923699df7ef670858e539e9091baddfb051eac40a4dc42b500746678d91b0a508d1928155d239a691860feebb9e3d1187234cae458600a7055c8da055dc3e6c743ad6d43b251525cd3698205958c6b1889755ee038a973e0686bc646cb04528826e143107dc62abcef9a092a41e869991be02aed50fd55b842bce0586bab1cda0fcb8feb20304cb9f70ee376bc35673de5cd39c2969641f96ecfba9fce1ab8f6eb13dd270be128c3c08445396d52dd1aa3d4b4f0bb730b01487ce3f9901189d956cd0cda278bc6fec48540240b002b428ace838029391ed9b78bd5404d2530ecbb1d1a0431770374ce61ece8feb3fbca8bedcc6125c79d197ae1df8ac3e777174f8d3b0927d01f4ef175357051aaf699bcacd1d73711f2f8c3467465dfcda341a3d886f4210e87e1680212caa6f554027e4bc0e390f1bf9f0340a65934483eb9935835338041e14a941f9115e80399716f4c14e97835cd16a7d8e283dfaf3d7d7ec5568dc475628edd90caeebd404119e2a8c802869dc7695b471f08d7b30bbde012c8dc8178f77e71ae9703449f1d7e769321d1f11f17b3e62425d5b8430d6f0f48d62a4fe59273d35a28a0091124098c8370ed613fa9040e00219595344476a0dd18d934e7bd81969cd7d4e91c068de3f7afe0dc482a45f51548cfaa49101e0e00dbdbbad32580c5cb2432bd00690f731ac6e1338be032bee9da05e52da38dea4150bf9c1c21afbf4beedae944526b2152020f043ccc14a24cbf276254b7594c2230b12181c8c1b5f5441991428493e243400f4efe3d5b3a8bf4c73757e6b42c7b81cbb77665a3b3ece1aba81a351286226a4a4f56719e3cfa60aa76f2153bb7f92b93dfe8bb5b7a4679743ead9a329c1b15fb5a172a62f3441993f9c790de330abe25262106dfca5a22d8fcb8cb8df2bb07214c9be94d375ba3f4c73b66511bd3e6e433437beb2d6829bb62235b86e46e291ed3c3c5faef99a0e3b46ba95aeacf93eea38bec88ae073a738e0ecd5066cbba79d68aaff03e76e5338005f6164963d2d01129021144d89c0505117705eb47d372620cdc8440706af25d75f744235041d2d26c5fa0c6f4133768b2484752af421c22a71d7a1c93358eec731da9383e3c298acb2b8099f260ca378da74227cfb259ea406b804d8b35914ed23f3fb0fc4781765272fbcd1774f38b23226291e8ecb783448fd0859377a5932f21849fb13b821a5e956303727ab2556d8bc1e889d062b5d2e17e91eebc4941e1ff4e1b131f3709e1f89275160eb0895dca1f2a03ee5f16d5c01a2070b367112b726ed637ee87632de68d6cc8619c0860acc5ad30cd5f29f06a13c40ffc096a9fa0ca5c3aebfd844642a38baa885e2405758bf3b2c22a8c6af547dfbd10022699ccad633fa84be2cdf921aed57a29d29d747ca97b45c3ef28dce8357abe54480280764ec1622357f480bfde69206403818f73d7943da3027b705da0e899a86bad38e9147b887703e028b406f4782e9af2f101a0d81f0861b51120a5e2c20b0347aba55303ab7d3d0fc1214b61bdf291b7d1b25a87dd8b0d569521d5972d5a212ea11cb3f2a888c3a4f44f1c746e50f9f59a52d6a1b03fbed67337bfc299dd171cc6d7f4294af1e47e949773e6084d9bc685d1816b226e25374d332e69ed46086001f69aabcf95c57c8973f7021c6b71563df88140722dedd4cc1387dd72d88e1dac54ced8c49d47d54bd46a3d843ab704d23ce562364604beb945f7953e8215c4d3b886b1d7f84b834abfa202860ccaf217bf587a50f4e7cc1b207d42ca415538fe9050905f79176b140a506f361077a39964e477e045f72dff60597f5cd4cfacec6a437b72e13eff041e64eb6c17b7290d9fb4dee55ef1b3d0572aec27f82491194a7573b8303163c665f931e7d71c7a4d86fd36760d7a19941191a6541b7888fc0502ac5aafe75d075c25f8de861c6965f3bbf60ecb2fe11f10e251f35ad4179ec28112cb4b0aea670d3a108cc16abe5eeea7a6832532400ee212b977571fdb0636ddd8eca8b0a8330a4aa36d68693ad2a3df875352ea555d1f076eb7bf8a92daddb9bcc28c8c7347cf85f29fc83619ef94ee9f3b7a702953edc31686c61ca642ed5ff49930280d512e5bf655c7dfefd3fdbc7510fede1bad7b305579a7283d50fde74701c422ce5987e8deeed2b2020e9bc11dff7979718ed81a4c6890a0186de59fc065648c39d17b0ad1dd70da4528e02d15a60f5c2436e3db74fd82a173d660cf5d1ac81cead58f2ca5160a85990dc2b5cb47a7691e5c0bd0b7863fd99cf09c485f59de020ac9728ac21a679cf80cd399404f5d2b67bab844bfa13a3345427a7f347d12ab48a516055a809e5dd5194faaa01b2cf02c0b0ceffc2b90190663a1e24313b03503714a43d0bc090ef18d60bebb53fa0f55da18a1780d8e871a478696880026f7ee94798375cfb1a514f5b17f69fc8162ffbaf7922fcfa6e50ce1e3be29912ff904c0d7c3cb64229c9277d4588252ce6765307f88394c6e37e1d67e998c1ae67b578f948d4cb0eb0d6635d23e6974efa8eee1d1555ba77ce06e56cd7495ab375ec545e9159e771f9582554347d6167a23358fc9104953f335be0daf92050de19296e3e8f66171b884c9233edb20520294381b42c1f6f66b4384395e5315345f027d18ac6b06c80dd37301d5042895410bf16b12f1d7a6ea047962504f1c218e4c3f761f93a0d7586330e5074954837ec68b9fd0023d52a53f671f9eb352d05c90c682043ed7c3380a669d50d868409dd9d91512f0a7fc24920b06800d096b4b5706a200017ffe19f7fd1e038c95432018170f76cb86d0a3c943d776c44ab4f77bca0cf5082ee12a5533eb899a314ed37ff7f6e3814b1283fd92d955bd352b1376aa7f8b12f5a1a5990a85b5f5fcdef53bc866970334fc4b8dd843ef9f00f5f152e0be67c3e523ed96c003356ca0101b60a2a3090fac6493b5e87fa547e1063e877453dbcf661133d319abba24b303dbfd3012144e6018a9f5d5b71a75dcf474c0edbff421b0c9b87d422ffa7c428eadc0815522f8d3a77826415891a5799d118add7c75f4cf58712f3d599f75e52b7da283134194813388cc49a1b454641ca0699c0acc851847e84e4d29d55a0afa396afcc262bbc507acd50af2d5b032365298a34b9fd50b1f891caede9fd04c6696a301cef6bfa2ba316f4a678d37f9a7fe68bd3d14d14c252e78e2837216ef67b51376d6ece133befa30c8e5dddcadf183d6e1423ac43d5411857af38811012f2a6940b310f3107428cfe0911c3df613c6e3d031fa0cc2e6a1607389c3598b8258f11de84087938c08ea88b3b16f0dc00920218a76d463cef1363dccc827aaaf7da3b7f3ec150bc44915b99845363f997f338cc49f60ff5b16003bb7e573facc9d53a2cf055fd92dba16d41f94801789ed73167a7ac17fe34d0a7b94a077bbf3c0570a968ccf58b29e2f2cdcfb9483d6be14967c19b30649b841ff788cd4b666b0d874eedcc37b838b6c77ab7cea9e5a0cb683993d7983c2eb1fd6e0070e5573324403c63d777be514027eff2dbc01daa2c629215297970b2d624441b0d1cb687e8a088d3f4233f15485987146d4e73c087ba58b05c4b46bc960ce29ce362d4bcb5cfbf432e2b051f61c8c0af0917c5c76311b40c490f13a7c15dde41db181262bede3570d80ed76bfe547fa4e0e1e730e22fe02f07f78cde14cd6124df2bdd1300117050bc1e6f7cc940f937a0d52be1618234316d1b6b16d539b6f8e320534c5479a23d7d46d4ad8ee542b46f679ec2f8e021a82ea73b6c48a1a197c349032ea90162f7a173603a9357a20dc817dfa8b44aae665f2d08c95b7dae6f1aea86fd3ee26baba79cba03f8df919fe69d92b379e8869009d9d33f0cd8c7217cf794c2a8e1bb69201210be92c78788580ab770e0fb079bafccffd14416c1e7512d77f8d35e97ab5e3cb1fc76713f8a624fe7bc20a94d502479a1c3fa1af7ddb41df2096f54e0836dacc6140c453a3d9f07c7fe47e989bd94df2397e94fb1beb4cf802ff88000200775b2299b68d5b2c17698f8ee91af83859a60bff9268ca012d75c39674f9eaf4242e72feba22b3eefbe431b8114351d94916087d378797a48b2c8d2766db44363755ef714de4b79d8455dc18958994209acb0ebb4c781784d288c2ed3d6652a226768ca14d3ddb7879f4a9631c1a9cf3ede62749e6f242488730ebae433896fb61b729a24f40102d3138179360b2b61bb9c4d1b07b35ee9de926668eea6d9dc8e9cb475ac4ed11023f4956bf30f8867801f46e0654b118e041846bce08a64d4903bf5e2c412e67a2f8f9959413a1f32dcc3d8351c6df90dd5c9baf4436f971988dcb1588b74d2c5869abdbd72a9e7b81ca9db78127a46ab22f73aeb3e834d6034533164bfd9418d7ed27aad918a962a997727894ddf84e2ce77fd81997665a4a6c4b0a818813af9ef8698e4f3bf00fafb89fe7d3ccd3e0ea0c37bf9ea4158644899b0c24f942882910d7a2be42a79fd52761c2054f2202692eaa71c9fbfc87150e017ae3f336c625935586f5eb4056c22ae457c9875f7bce265b34aa8a21165eead5a2bb498a7c4fab454703d1865f68b223247d4daede5222660d5f3d848a8a88f4adc004968cd507d545e48104e0783ca08fc174de5945a26223e6c56072adbe15ad9370759daa6e4c0fb078ef0c4019905505f72820164b58dd73bade6c7ce96c6d015ad0cdfaa677d34ddca00a1f25b1cbe3053954ebd1a5c669e2d1208ca2c686d3f99039fb5d9671be7461efd2d3324767a80c093bbf5ca4d0c2836f4664b749dfa8d69e732b5341e2ae6c78a1d4788aac3105eef17e2900738d4436da7c29d0bc3760ade1567c1c2e374feed446c319a120152dd51123c73ace44b807304a0b78929a4e19c2ae396ad4f424d0bb19f10d5cbd47e39b56ebfbffc6447af09de301ec3b3e67b2580355fdebfa5f74f342ea42d12ef77c286caddf15bc86ce91946261f54c52a80e7ea2d8c1b5255587afea381c1b5f6dcab2835ae3a706feb941dd0f4046d34a5bd5400162545083d55f9495c2ce24db59fa42e90fea7df7333294561745514e62fc3e2670fa1641bb2ce847496eb7211cf6bdab6a68e3da7d1c80c0263b8425385507527959227110dceb9512807b7fc9548a64c1aaf382316e98861fbf022544f0c882c5a12b73f80900bf39b3fb1ecaa788dc2005067ce9f131e95d5e489d49f02b1208c6017823aaf850a212cd55053ff4630d5324075d0f173548ed0afcbc0cefe420ee5f79a8dee970d0c73599aab7c0d13f3e812bc59b89210c5c405d199617fbff65fd0ae871afe5dd154aaf71f6b76b842073fa71283c2cdafa4fcf2ee6af556efad3f88096e384645e6b0d29c87a9f6fd6c336c07ba320fe41beb4e4c09dc3b1a5d1fb4682c92c7b1e6d2e8ef66f6117b14f362690a91f0202696a225dcbd948789ca11bb08043246977b75bc229c2a10b730aef8b217ed42e668c670187b29be2a5846a3e815f297bedf6592f2a67c51707482eb45d6132cceec78f79cd696101c493e74755c0b6260a5af2c8ab96ef329a97e10963d18d345a62e2088438d63f3ac838dd067b3e393ffe63a3e30c328578c7ff07a4988a9d7063d6b3b46642d026665eb4b7134e74ac67918ccf6343775306b38887b00f53e298db8d663d49d10309a661cc8f0ffdca695d9d235c32d9d216eb94b91083be7bb6bba02e074a587737142248515aa00b739659a4f41d662b2e0409398dd28e21193684ad6eb44091dd37ddd85078e1dd0590e0b054083ca67fde586f046ae2d0c531d4f44b6b7736427910e38a3e097e91c6d03cd185cf373e358e22759f870186360eaaeb77d6510abad9b34d9a338c313eea5c6b6992d16ed6373dd1a60cb639cba9208ccc259aec97b34a102f579848b1d262cd43ef08f7c67b9d6d1617747d4730ef2c80f58455b4c940ad30345577699fb3fe91ca19a7d4b99d2ca6c26e68537b065c5565068994daacc729061d39b851187601466267c4e74ac6d240a9f1586a1f85147eeb4b1fb447b1640a62bd3064599632404dfd0ae85b29ed589b146978af2c22345205c1e3f55b23511370f6b0032b5a7e5fc4462b57814e65acc770763dc5d26cefd40ced7a0a450817cbc10755dc9d456c5778c0fed4bcb93ef6abb8ecbfca05478ee18e3e4c29a58242bbf930787bdf71a76ab54dbe848dc89d787625abdc69c7b7d5291296d40a842b4ea0ae0ac24b0d21865e0ab18f48e860f1dcbe0e114b9e27e1af53b8e0132b45302b0a484e1b5bc18d40c25c1298b1ba968dabab35e08024b856ceb1d68ddec03f70f39027f40063d0d64824cba6b0bc78f1524fe1475e73e65618c69894b8c7877de2db736cad253de23bef8407dd9ca385ca8987c5da49af2aa7f0ecdcab9cba03f10eb7bf06dc548385c4e5ce6d44c5c49d3fd57d0886ca015389632d470ec85c74d1b19b0c411d667c8fe8a3b4ea34ab1655fb80e4be890d4ea605eadd4e443fe9813d3573935c84ad896e3790f3493734afbda04f02b945400ed287129c83df151f89ac2c2313aa9ec1fa956c4de2d9f08ad0e31685c9a306a86e8ff16ef71d6a4301f797cbc10ea6e514f513cabffc1f524b541834ff5ebe73935c5e8941a230c64ab7bb6c8050a3ce9bb0d86d1a247675bf745dd4d260cb0055912a889ad36f317a7d1ec5a2dacc5e38d80404deda6", 0x2000, &(0x7f0000000e80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000440)={0x78}, 0x0, 0x0, 0x0, 0x0, 0x0}) 07:53:14 executing program 2: r0 = socket(0x2b, 0x1, 0x0) getsockopt$nfc_llcp(r0, 0x6, 0x1a, 0x0, 0x20000000) 07:53:14 executing program 5: r0 = bpf$PROG_LOAD_XDP(0x5, &(0x7f00000002c0)={0x6, 0x3, &(0x7f0000000100)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$ifreq_SIOCGIFINDEX_team(r1, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) r3 = bpf$BPF_LINK_CREATE_XDP(0x1c, &(0x7f0000000040)={r0, r2}, 0x10) bpf$LINK_DETACH(0x22, &(0x7f0000000140)=r3, 0x4) r4 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f0000000b00)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000500000095000000000000009500a5050000000077e9d8f3b423cdacfa7e32fe023136f9f65515b0e1a38d8665522be08bd10a48b043ccc42646d25dfd73a015e0ca7fc2506a0f68a7d06d8a7535f76907dc6751dfb265a0ae669e173a649c1cf96574d452d64e7cc957d77578f4c35235138d5521f9453559c35da860e8efbc6f2b2a3e3173d5661cfec2efd045b5b50922dca79afb7eeb73ec79c66c54c33283ba58d31a20a2251258f8a97db00fab5e2658d496c01085c8e09aa88100002aefce2cff42cf5558624bbddf18b041c7ccdd904b158094737d54202c06dccdd7854115b2ca8600fb1e4e37b082701756d6b2464a86590506587d60f382c2de2b4ccbbf7747d8b4ded75135857e5afdf1cbcecf39e97e0e9927ff7f0000f94931b632f1813b87dfa3610bd098ec92552edd6afbd92ecde5a7758895d4997c5fccd4f4e68dafb5a76af5e99ba0c7735965611c62f397b14b58f81da8f92d48c264663ed40e0573029b660549419bfb02000000000000004c56424da000ec3d28f148db3454345477e4f33ed978c173c8cb0b7e5d2b26169b53fcf97148e20e6da55a9c86ab0b4f138b5f932bf92d0b5a765051b1496e7ce9710e8c50752d4e251af4b631ba0bf50748395febcb907cb130fe6bcd4c6fd440b99af906706c3ffc315e37f3dc39a16814324c39d1fd364ea635a69061290e2a871f2d906442ba5f467bea5cfe5efbdbc015402884628165ea5350ed26d2f807829b076ff1ba237fc86dc673ed884ce96c044c808e03310ffa1fb199d2558beab87556ca320afa12680fa80505dedb3d964ad17597fe0d2a6f93fbe748b73842abced00f0d08726725f69ed669023d5650a8f0981f21466a110d2ffe85fa18165b2c3e67c2bddc51e1d6332b3614132148000000a3a4f7a6f05a1cfde0368cc98c190b25aa62934fc32339f265d3e26d51e1bd7001b72570456b7a279d4ebd4e5c82a76672673d8c9edfe09d4412511ec6dce3c8d51014840ce30f5b451bf8585b14f4c6eef99ba7b5f94d3e890bc37117fc3fbdc3dfb8b217ebca63a0ce12a137183af3d6584db84843a2b79be4513cf406b0a48e1bd7537253dfa2446ee2d470a84e4966f26c9a5728e4cbb1291dd4cb596c6566f33ae87fb3ce973efe14edfb28b7d76870f8ad86599ec727aec4e9b02c87f35026b3032df571b1166fcccc0a"], &(0x7f0000000080)='GPL\x00', 0x5, 0x29e, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x70) r5 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f00000004c0)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000500000095000000000000009500a5050000000077e9d8f3b423cdacfa7e32fe023136f9f65515b0e1a38d8665522be08bd10a48b043ccc42646d25dfd73a015e0ca7fc2506a0f68a7d06d8a7575f76907dc6751dfb265a0ae669e173a649c1cf96574d452d64e7cc957d77578f4c35235138d5521f9453559c35da860e8efbc6f2b2a3e3173d5661cfec2efd045b5b50922dca79afb7eeb73ec79c66c54c33283ba58d31a20a2251258f8a97db00fab5e2658d496c01085c8e09aa88100002aefce2cff42cf4b158094737d54204115b2ca8600fb1e4e37b082701756d6b2464a86590506587d60f382c2de2b4ccbbf7747d8b4ded75135857e5afdf1cbcecf39e97e0e9927ff7f0000f94931b632f1813b87dfa3610bd098ec92552edd6afbd92ecde5a7758895d4997c5fccd4f4e68dafb5a76af5e99ba0c7735965611c62f397b14b58f81da8f92d48c264663ed40e0573029b660549419bfb02000000000000004c56424da000ec3d28f148db3454343ed978c173c8cb0b7e5d2b26169b53fcf97148e20e6da55a9c86ab0b4f138b5f932bf92d0b5a765051b1496e7ce9710e8c50752d4e251af4b631ba0bf50748395febcb907cb130fe6bcd4c6fd440b99af906706c3ffc315e37f3dc39a16814324c39d1fd364ea635a69061290e2a871f2d906442ba5f467bea5cfe5efbdbbf15402884628165ea5350ed26d2f807829b076ff1ba237fc86dc673ed884ce96c044c808e03310ffa1fb199d2558beab87556ca320afa12680fa80505dedb3d964ad17597fe0d2a6f93fbe748b73842abced00f0d08726725ec9ed669023d5650a8f0981f21466a110d2ffe85fa18165b2c3e67c2bddc51e1d6332b3614132148000000a3a4f7a6f05a1cfde036487f7e8cc98c190b25aa62934fc32339f265d3e26d51e1bd7001b72530456b7a279d4ebd4e5c82a76672673d8c9edfe09d4412511ec6dce3c8d51014840ce30f5b452ff8585b14f4c6eef99ba7b5f94d3e890bc37117fc3fbdc3dfb8b217ebca63a0ce12a137183af3d6584db84843a2b79be4513cf406b0a48e1bd7537253dfa2446ee2d470a84e4966d26c9a5728e4cbb1291dd4cb596c6566f33ae87fb3ce973efe14edfb28b7d76870f8ad86599ec727aec4e9b02c87f35026b3032df571b1166fcccc0a000000000000000000000000006ffc83a0c6b8d483e5cab5e4067896eb39c5e4303a3ecb62172a312f3ee6e79063ee512c64211405a4e491de86256e6104bfdc191c2ae0aab3009efa5ced68275db26ea21e488219731cb0eec0aa28bfde65f1ad5ae45e773fd196e56e24d73f692b48f4a0fd05efa9fdf3123727b6d6ff842d00000000000000ede50d017577c242dbc583ae766961eb194d3f8d7272500a73f229a4c15c2e8b7c61ca78458de4c9d2382cb871067407ed579b7c49dcf1318a4ea951e685fcea1b7ba6f08736ba7dcfaac75084c9ecdd9d603ac9d8dc0a68a569b6e9148ef4b92d8f4cf1225e95a896590706bdbdb0e2b100b408f7ef41c86e7bcc83f68eb5c367e233d3c1e83e0dc655ec28963f20553906582514208e9aeaed85ce505294cb14486755f5"], &(0x7f0000000080)='GPL\x00', 0x5, 0x29e, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x70) bpf$BPF_LINK_UPDATE(0x1d, &(0x7f0000000400)={r3, r4, 0x4, r5}, 0x10) 07:53:14 executing program 0: mkdir(&(0x7f0000000300)='./file0\x00', 0xfffffffffffffffe) mknod$loop(&(0x7f0000000940)='./file0/bus\x00', 0x6210, 0x0) lstat(&(0x7f0000000140)='./file0/bus\x00', &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0}) lchown(&(0x7f0000000100)='./file0/bus\x00', r0, 0x0) creat(&(0x7f0000000000)='./file0/bus\x00', 0x0) 07:53:14 executing program 3: r0 = socket(0x2b, 0x1, 0x0) getsockopt$nfc_llcp(r0, 0x6, 0x4, 0x0, 0x20000000) 07:53:14 executing program 1: r0 = socket$inet6(0xa, 0x6, 0x0) bind$inet6(r0, &(0x7f00000000c0)={0xa, 0x4e20}, 0x1c) listen(r0, 0x200007) r1 = socket$inet_dccp(0x2, 0x6, 0x0) connect$inet(r1, &(0x7f0000000180)={0x2, 0x4e20, @remote}, 0x10) getsockopt$inet_int(r1, 0x10d, 0xdc, &(0x7f0000000100), &(0x7f0000000000)=0x15) [ 1084.598582][T13707] fuse: Bad value for 'fd' 07:53:14 executing program 2: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000440)={0x18, 0x3, &(0x7f0000000140)=ANY=[@ANYBLOB="1800000000000000000000000000080095"], &(0x7f00000001c0)='syzkaller\x00', 0x3, 0x1000, &(0x7f00000009c0)=""/4096, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={&(0x7f0000000000)='sys_exit\x00', r0}, 0x10) bpf$MAP_CREATE(0xb, &(0x7f0000000880), 0x48) 07:53:14 executing program 4: symlink(&(0x7f00000000c0)='./file0/file0\x00', &(0x7f0000000100)='./file0\x00') symlink(&(0x7f0000000040)='./file0\x00', &(0x7f0000000080)='./file0/file0\x00') 07:53:15 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$netlbl_unlabel(&(0x7f0000000000), r1) sendmsg$NLBL_UNLABEL_C_STATICADD(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000000c0)={0x4c, r2, 0x201, 0x0, 0x0, {}, [@NLBL_UNLABEL_A_IPV4ADDR={0x7, 0x4, @initdev={0xac, 0x1e, 0x0, 0x0}}, @NLBL_UNLABEL_A_IFACE={0x14, 0x6, 'bond0\x00'}, @NLBL_UNLABEL_A_IPV6ADDR={0x14, 0x7, @ipv4={'\x00', '\xff\xff', @empty=0xfffff000}}, @NLBL_UNLABEL_A_IPV4MASK={0x7, 0x5, @remote}]}, 0x4c}, 0x1, 0x5}, 0x0) [ 1084.896251][T13711] block device autoloading is deprecated and will be removed. 07:53:15 executing program 3: r0 = socket(0x11, 0xa, 0x0) unshare(0x20040400) bind$pptp(r0, 0x0, 0x0) 07:53:15 executing program 0: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NBD_CMD_RECONFIGURE(r0, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000980)={&(0x7f0000000900)={0x14}, 0x14}}, 0x0) 07:53:15 executing program 2: r0 = openat$dsp(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$SOUND_MIXER_READ_RECMASK(r0, 0x80044dfd, &(0x7f00000000c0)) 07:53:15 executing program 4: r0 = syz_init_net_socket$llc(0x1a, 0x2, 0x0) setsockopt$llc_int(r0, 0x10c, 0x7, &(0x7f0000000080)=0x93f, 0x4) 07:53:15 executing program 3: seccomp$SECCOMP_SET_MODE_FILTER_LISTENER(0x1, 0x0, &(0x7f0000000300)={0x3, &(0x7f0000000080)=[{0x20}, {0xac}, {0x6, 0x0, 0x0, 0x7ffffdbf}]}) creat(&(0x7f0000000040)='./file0\x00', 0x0) 07:53:15 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$netlbl_unlabel(&(0x7f0000000000), r1) sendmsg$NLBL_UNLABEL_C_STATICADD(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000000c0)={0x4c, r2, 0x201, 0x0, 0x0, {}, [@NLBL_UNLABEL_A_IPV4ADDR={0x7, 0x4, @initdev={0xac, 0x1e, 0x0, 0x0}}, @NLBL_UNLABEL_A_IFACE={0x14, 0x6, 'bond0\x00'}, @NLBL_UNLABEL_A_IPV6ADDR={0x14, 0x7, @ipv4={'\x00', '\xff\xff', @empty=0xfffff000}}, @NLBL_UNLABEL_A_IPV4MASK={0x7, 0x5, @remote}]}, 0x4c}, 0x1, 0x5}, 0x0) 07:53:15 executing program 2: mkdir(&(0x7f0000000000)='./file0\x00', 0x0) mkdir(&(0x7f0000000100)='./file1\x00', 0x0) mkdir(&(0x7f00000000c0)='./bus\x00', 0x20) mount(&(0x7f0000000340)=@nbd={'/dev/nbd', 0x0}, &(0x7f0000000380)='./bus\x00', 0x0, 0x0, 0x0) lsetxattr$trusted_overlay_origin(&(0x7f0000000140)='./bus\x00', &(0x7f00000001c0), &(0x7f0000000280), 0x2, 0x0) r0 = creat(&(0x7f0000000040)='./bus\x00', 0x0) sendmsg$BATADV_CMD_GET_MESH(0xffffffffffffffff, &(0x7f00000004c0)={0x0, 0x0, 0x0}, 0x0) getsockname$packet(0xffffffffffffffff, 0x0, 0x0) sendmsg$nl_route(0xffffffffffffffff, 0x0, 0x0) openat$cachefiles(0xffffffffffffff9c, 0x0, 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_VERSION(r0, 0xc0189371, &(0x7f0000000980)=ANY=[@ANYBLOB, @ANYBLOB]) mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f0000000080), 0x0, &(0x7f0000000180)={[{@workdir={'workdir', 0x3d, './file1'}}, {@lowerdir={'lowerdir', 0x3d, './file0'}}, {@upperdir={'upperdir', 0x3d, './bus'}}]}) 07:53:16 executing program 1: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='devices.list\x00', 0x275a, 0x0) r1 = open(&(0x7f0000000140)='./bus\x00', 0x2c241, 0x15afcf4a50874b27) ioctl$EXT4_IOC_MOVE_EXT(r0, 0xc028660f, &(0x7f0000000000)={0xc, r1}) 07:53:16 executing program 4: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_opts(r0, 0x0, 0x50, 0x0, &(0x7f0000003d00)) 07:53:16 executing program 0: r0 = socket$tipc(0x1e, 0x2, 0x0) bind$tipc(r0, &(0x7f0000000080)=@nameseq={0x1e, 0x1, 0x0, {0x42, 0x0, 0xfffffffd}}, 0x10) r1 = socket$tipc(0x1e, 0x2, 0x0) bind$tipc(r1, &(0x7f00000000c0)=@nameseq={0x1e, 0x1, 0x0, {0x42}}, 0x10) setsockopt$TIPC_GROUP_JOIN(r0, 0x10f, 0x87, &(0x7f0000000180)={0x42, 0x1}, 0x10) r2 = socket$tipc(0x1e, 0x5, 0x0) r3 = socket$tipc(0x1e, 0x2, 0x0) bind$tipc(r3, &(0x7f0000000000)=@name={0x1e, 0x2, 0x0, {{0x42, 0x10000001}}}, 0x10) sendmsg$tipc(r2, &(0x7f0000000380)={&(0x7f0000000140)=@nameseq={0x1e, 0x1, 0x0, {0x42, 0x1200, 0x10000001}}, 0x10, 0x0}, 0x0) 07:53:16 executing program 3: syz_emit_ethernet(0x2a, &(0x7f0000000040)={@local, @empty, @void, {@ipv4={0x800, @igmp={{0x5, 0x4, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x2, 0x0, @empty, @multicast1}, {0x11, 0x3, 0x0, @broadcast}}}}}, 0x0) 07:53:16 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$netlbl_unlabel(&(0x7f0000000000), r1) sendmsg$NLBL_UNLABEL_C_STATICADD(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000000c0)={0x4c, r2, 0x201, 0x0, 0x0, {}, [@NLBL_UNLABEL_A_IPV4ADDR={0x7, 0x4, @initdev={0xac, 0x1e, 0x0, 0x0}}, @NLBL_UNLABEL_A_IFACE={0x14, 0x6, 'bond0\x00'}, @NLBL_UNLABEL_A_IPV6ADDR={0x14, 0x7, @ipv4={'\x00', '\xff\xff', @empty=0xfffff000}}, @NLBL_UNLABEL_A_IPV4MASK={0x7, 0x5, @remote}]}, 0x4c}, 0x1, 0x5}, 0x0) 07:53:16 executing program 4: r0 = gettid() timer_create(0x0, &(0x7f0000066000)={0x0, 0x12, 0x0, @thr={0x0, 0x0}}, &(0x7f00009b1ffc)) r1 = socket$inet6_sctp(0xa, 0x1, 0x84) getsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX3(r1, 0x84, 0x6f, &(0x7f00000000c0)={0x0, 0x10, &(0x7f0000000000)=[@in={0x2, 0x0, @rand_addr=0x64010101}]}, &(0x7f0000000100)=0x10) recvfrom(r1, 0x0, 0x0, 0x0, 0x0, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000140)={{0x0, 0x989680}, {0x0, 0x989680}}, 0x0) tkill(r0, 0x13) shutdown(r1, 0x0) 07:53:16 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmmsg$inet_sctp(r0, &(0x7f00000002c0)=[{0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)=[@sndrcv={0x2c, 0x84, 0x1, {0x0, 0x0, 0x200}}], 0x2c}], 0x1, 0x0) [ 1086.756506][T13742] overlayfs: invalid origin (0000) 07:53:16 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x241, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller0\x00', 0xffffffffffffffdd}) io_setup(0x20fe, &(0x7f00000001c0)=0x0) creat(&(0x7f00000001c0)='./file0\x00', 0x0) sendmsg$DCCPDIAG_GETSOCK(0xffffffffffffffff, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000680)=ANY=[], 0x300}}, 0x0) io_submit(r1, 0x1, &(0x7f0000001a40)=[&(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8, 0x0, r0, &(0x7f0000000180), 0xd}]) 07:53:17 executing program 3: r0 = socket$netlink(0x10, 0x3, 0x0) r1 = socket$nl_rdma(0x10, 0x3, 0x14) ioctl$ifreq_SIOCGIFINDEX_team(r1, 0x8933, &(0x7f00000000c0)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x30, &(0x7f0000000540)={&(0x7f0000000240)=@newlink={0x48, 0x10, 0xff05, 0x0, 0x0, {0x0, 0x0, 0x4a00}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @batadv={{0xb}, {0x4}}}, @IFLA_MASTER={0x8, 0xa, r2}, @IFLA_ADDRESS={0xa}]}, 0x48}}, 0x0) 07:53:17 executing program 2: unshare(0x6c060000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000280), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x80400, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/246) read(r1, 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000000)) ioctl$USBDEVFS_IOCTL(0xffffffffffffffff, 0x8108551b, 0x0) unshare(0x50500) unshare(0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000180)='cpuset.effective_mems\x00', 0x275a, 0x0) write$FUSE_INTERRUPT(r2, 0x0, 0x0) bind$inet6(r2, &(0x7f0000000100)={0xa, 0x0, 0x0, @dev, 0x7}, 0x1c) openat$tcp_congestion(0xffffffffffffff9c, &(0x7f00000000c0), 0x1, 0x0) openat$sysfs(0xffffffffffffff9c, &(0x7f00000002c0)='/sys/module/auth_rpcgss', 0x0, 0x9a) 07:53:17 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$netlbl_unlabel(&(0x7f0000000000), r1) sendmsg$NLBL_UNLABEL_C_STATICADD(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000000c0)={0x4c, r2, 0x201, 0x0, 0x0, {}, [@NLBL_UNLABEL_A_IPV4ADDR={0x7, 0x4, @initdev={0xac, 0x1e, 0x0, 0x0}}, @NLBL_UNLABEL_A_IFACE={0x14, 0x6, 'bond0\x00'}, @NLBL_UNLABEL_A_IPV6ADDR={0x14, 0x7, @ipv4={'\x00', '\xff\xff', @empty=0xfffff000}}, @NLBL_UNLABEL_A_IPV4MASK={0x7, 0x5, @remote}]}, 0x4c}, 0x1, 0x5}, 0x0) 07:53:17 executing program 4: close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) r0 = socket(0x10, 0x3, 0x0) write(r0, &(0x7f0000000180)="2000000012005f0214f9f4070000fbe40a0000000000", 0x41d) recvmmsg(r0, &(0x7f00000021c0)=[{{0x0, 0x0, &(0x7f0000000140)=[{&(0x7f0000000000)=""/43}, {&(0x7f0000000080)=""/180, 0xc80d}]}}, {{0x0, 0x0, &(0x7f0000000540)=[{&(0x7f00000001c0)=""/254}, {&(0x7f00000002c0)=""/93}, {&(0x7f0000000340)=""/208}, {&(0x7f0000000440)=""/208}]}}, {{&(0x7f0000000580)=@l2tp6={0xa, 0x0, 0x0, @initdev}, 0x0, &(0x7f0000001900)=[{&(0x7f0000000600)=""/220}, {&(0x7f0000000700)=""/249}, {&(0x7f0000000800)=""/126}, {&(0x7f0000000880)=""/4}, {&(0x7f00000008c0)=""/10}, {&(0x7f0000000900)=""/4096}], 0x0, &(0x7f0000001980)=""/188}}, {{0x0, 0x0, &(0x7f0000001ec0)=[{&(0x7f0000001a40)=""/167}, {&(0x7f0000001b00)=""/133}, {&(0x7f0000001bc0)=""/126}, {&(0x7f0000001c40)=""/200}, {&(0x7f0000001d40)=""/128}, {&(0x7f0000001dc0)=""/253}]}}, {{&(0x7f0000001f40)=@l2, 0x0, &(0x7f0000002080)=[{&(0x7f0000001fc0)=""/112}, {&(0x7f0000002040)=""/7}], 0x0, &(0x7f00000020c0)=""/247}}], 0x1f7, 0x40, 0x0) 07:53:17 executing program 0: fsetxattr$trusted_overlay_nlink(0xffffffffffffffff, &(0x7f0000000140), &(0x7f00000001c0)={'U+', 0x5}, 0x16, 0x2) unshare(0x0) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x10, 0xffffffffffffffff, 0x0) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x2200c001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @ipv4={'\x00', '\xff\xff', @empty}}, 0x1c) sendto$inet6(r0, &(0x7f0000000180)="ec", 0x1, 0x400c001, 0x0, 0x0) setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f00000000c0), 0x4) sendto$inet6(r0, &(0x7f0000000040)="1f", 0x1, 0x0, 0x0, 0x0) sendto$inet6(r0, &(0x7f0000000080)='D', 0xfffff, 0x0, 0x0, 0x0) read(r0, &(0x7f0000000100)=""/49, 0x31) 07:53:18 executing program 3: r0 = socket$igmp(0x2, 0x3, 0x2) setsockopt$inet_pktinfo(r0, 0x0, 0x4, 0x0, 0x0) sendmmsg(r0, &(0x7f0000008500)=[{{&(0x7f0000000000)=@l2tp={0x2, 0x0, @rand_addr=0x64010100}, 0x80, 0x0, 0x0, &(0x7f00000002c0)=[{0x10, 0x88}], 0x10}}], 0x1, 0x0) 07:53:18 executing program 0: fsetxattr$trusted_overlay_nlink(0xffffffffffffffff, &(0x7f0000000140), &(0x7f00000001c0)={'U+', 0x5}, 0x16, 0x2) unshare(0x0) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x10, 0xffffffffffffffff, 0x0) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x2200c001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @ipv4={'\x00', '\xff\xff', @empty}}, 0x1c) sendto$inet6(r0, &(0x7f0000000180)="ec", 0x1, 0x400c001, 0x0, 0x0) setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f00000000c0), 0x4) sendto$inet6(r0, &(0x7f0000000040)="1f", 0x1, 0x0, 0x0, 0x0) sendto$inet6(r0, &(0x7f0000000080)='D', 0xfffff, 0x0, 0x0, 0x0) read(r0, &(0x7f0000000100)=""/49, 0x31) 07:53:18 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x241, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller0\x00', 0xffffffffffffffdd}) io_setup(0x20fe, &(0x7f00000001c0)=0x0) creat(&(0x7f00000001c0)='./file0\x00', 0x0) sendmsg$DCCPDIAG_GETSOCK(0xffffffffffffffff, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000680)=ANY=[], 0x300}}, 0x0) io_submit(r1, 0x1, &(0x7f0000001a40)=[&(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8, 0x0, r0, &(0x7f0000000180), 0xd}]) 07:53:18 executing program 4: close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) r0 = socket(0x10, 0x3, 0x0) write(r0, &(0x7f0000000180)="2000000012005f0214f9f4070000fbe40a0000000000", 0x41d) recvmmsg(r0, &(0x7f00000021c0)=[{{0x0, 0x0, &(0x7f0000000140)=[{&(0x7f0000000000)=""/43}, {&(0x7f0000000080)=""/180, 0xc80d}]}}, {{0x0, 0x0, &(0x7f0000000540)=[{&(0x7f00000001c0)=""/254}, {&(0x7f00000002c0)=""/93}, {&(0x7f0000000340)=""/208}, {&(0x7f0000000440)=""/208}]}}, {{&(0x7f0000000580)=@l2tp6={0xa, 0x0, 0x0, @initdev}, 0x0, &(0x7f0000001900)=[{&(0x7f0000000600)=""/220}, {&(0x7f0000000700)=""/249}, {&(0x7f0000000800)=""/126}, {&(0x7f0000000880)=""/4}, {&(0x7f00000008c0)=""/10}, {&(0x7f0000000900)=""/4096}], 0x0, &(0x7f0000001980)=""/188}}, {{0x0, 0x0, &(0x7f0000001ec0)=[{&(0x7f0000001a40)=""/167}, {&(0x7f0000001b00)=""/133}, {&(0x7f0000001bc0)=""/126}, {&(0x7f0000001c40)=""/200}, {&(0x7f0000001d40)=""/128}, {&(0x7f0000001dc0)=""/253}]}}, {{&(0x7f0000001f40)=@l2, 0x0, &(0x7f0000002080)=[{&(0x7f0000001fc0)=""/112}, {&(0x7f0000002040)=""/7}], 0x0, &(0x7f00000020c0)=""/247}}], 0x1f7, 0x40, 0x0) 07:53:18 executing program 5: r0 = syz_io_uring_setup(0x3e07, &(0x7f0000000000), &(0x7f0000ffc000/0x1000)=nil, &(0x7f0000ffb000/0x3000)=nil, &(0x7f0000000080), &(0x7f00000000c0)) io_uring_register$IORING_REGISTER_EVENTFD_ASYNC(r0, 0x7, 0x0, 0x1) 07:53:19 executing program 5: r0 = socket(0x10, 0x3, 0x0) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) r3 = socket(0x10, 0x3, 0x0) r4 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) sendmsg$nl_route_sched(r3, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) dup3(r3, r0, 0x80000) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000003c0)=ANY=[@ANYBLOB="3400000024000100"/20, @ANYRES32=r2, @ANYBLOB="00000000ffffffff000000000900010063616b65000000000400020015c0dd38d76b99eee916956b2ceb85446fb5909a7bbc8d256b067f532175e1bc1b1451f11ef9e5fc056c53352c5017191e9e3a7b2db97cc06a1317f8265a5420b5f5bfbe20d0d7c71daf1c146cfd48595573b74a593bc1ee3b8788e5016b425f061a564f"], 0x34}}, 0x0) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000340), &(0x7f0000000380)=0x14) socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000080)={'syzkaller1\x00'}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r6, 0x89f1, &(0x7f0000000180)={'ip6tnl0\x00', &(0x7f0000000100)={'syztnl0\x00', 0x0, 0x29, 0x5, 0x6, 0x4, 0x28, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x8000, 0x0, 0x7, 0x9}}) r8 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x8140, 0x0) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r8, 0x89f2, &(0x7f0000000280)={'syztnl2\x00', &(0x7f0000000200)={'ip6tnl0\x00', r5, 0x2f, 0x5, 0x1, 0x2, 0x20, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @private1={0xfc, 0x1, '\x00', 0x1}, 0x7800, 0x1, 0xef, 0xff}}) sendmsg$nl_route_sched(r6, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000002c0)=ANY=[@ANYBLOB="4800000059f8b5ffe024000b0f00"/25, @ANYRES32=r7, @ANYBLOB="00000000ffffffff000000000900010063616b6500000000180002000c000f0000000000000000000800090000000000"], 0x48}}, 0x0) preadv(r0, &(0x7f00000000c0)=[{&(0x7f0000000800)=""/4096, 0x1000}], 0x1, 0x80000000, 0x9ce4) fadvise64(r6, 0x400, 0x0, 0x0) 07:53:19 executing program 0: fsetxattr$trusted_overlay_nlink(0xffffffffffffffff, &(0x7f0000000140), &(0x7f00000001c0)={'U+', 0x5}, 0x16, 0x2) unshare(0x0) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x10, 0xffffffffffffffff, 0x0) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x2200c001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @ipv4={'\x00', '\xff\xff', @empty}}, 0x1c) sendto$inet6(r0, &(0x7f0000000180)="ec", 0x1, 0x400c001, 0x0, 0x0) setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f00000000c0), 0x4) sendto$inet6(r0, &(0x7f0000000040)="1f", 0x1, 0x0, 0x0, 0x0) sendto$inet6(r0, &(0x7f0000000080)='D', 0xfffff, 0x0, 0x0, 0x0) read(r0, &(0x7f0000000100)=""/49, 0x31) 07:53:19 executing program 4: close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) r0 = socket(0x10, 0x3, 0x0) write(r0, &(0x7f0000000180)="2000000012005f0214f9f4070000fbe40a0000000000", 0x41d) recvmmsg(r0, &(0x7f00000021c0)=[{{0x0, 0x0, &(0x7f0000000140)=[{&(0x7f0000000000)=""/43}, {&(0x7f0000000080)=""/180, 0xc80d}]}}, {{0x0, 0x0, &(0x7f0000000540)=[{&(0x7f00000001c0)=""/254}, {&(0x7f00000002c0)=""/93}, {&(0x7f0000000340)=""/208}, {&(0x7f0000000440)=""/208}]}}, {{&(0x7f0000000580)=@l2tp6={0xa, 0x0, 0x0, @initdev}, 0x0, &(0x7f0000001900)=[{&(0x7f0000000600)=""/220}, {&(0x7f0000000700)=""/249}, {&(0x7f0000000800)=""/126}, {&(0x7f0000000880)=""/4}, {&(0x7f00000008c0)=""/10}, {&(0x7f0000000900)=""/4096}], 0x0, &(0x7f0000001980)=""/188}}, {{0x0, 0x0, &(0x7f0000001ec0)=[{&(0x7f0000001a40)=""/167}, {&(0x7f0000001b00)=""/133}, {&(0x7f0000001bc0)=""/126}, {&(0x7f0000001c40)=""/200}, {&(0x7f0000001d40)=""/128}, {&(0x7f0000001dc0)=""/253}]}}, {{&(0x7f0000001f40)=@l2, 0x0, &(0x7f0000002080)=[{&(0x7f0000001fc0)=""/112}, {&(0x7f0000002040)=""/7}], 0x0, &(0x7f00000020c0)=""/247}}], 0x1f7, 0x40, 0x0) [ 1089.701346][T13781] netlink: 'syz-executor.5': attribute type 15 has an invalid length. 07:53:20 executing program 2: r0 = socket$inet6(0xa, 0x2, 0x0) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x0, 0x103, 0x1}, 0x20) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x2, 0x0, 0x0, 0x6, 0x6}, 0x20) 07:53:20 executing program 3: r0 = socket$packet(0x11, 0x2, 0x300) setsockopt$packet_tx_ring(r0, 0x107, 0xd, &(0x7f0000000040)=@req3={0x10000, 0x100000001, 0x10000, 0x1}, 0x1c) sendmmsg(r0, &(0x7f0000003b80)=[{{&(0x7f0000000140)=@isdn={0x22, 0x0, 0x0, 0x2}, 0x80, 0x0}}, {{&(0x7f00000000c0)=@vsock={0x28, 0x0, 0x2710, @local}, 0x80, 0x0}}], 0x2, 0x0) sendmmsg(0xffffffffffffffff, 0x0, 0x0, 0x0) 07:53:20 executing program 0: fsetxattr$trusted_overlay_nlink(0xffffffffffffffff, &(0x7f0000000140), &(0x7f00000001c0)={'U+', 0x5}, 0x16, 0x2) unshare(0x0) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x10, 0xffffffffffffffff, 0x0) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x2200c001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @ipv4={'\x00', '\xff\xff', @empty}}, 0x1c) sendto$inet6(r0, &(0x7f0000000180)="ec", 0x1, 0x400c001, 0x0, 0x0) setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f00000000c0), 0x4) sendto$inet6(r0, &(0x7f0000000040)="1f", 0x1, 0x0, 0x0, 0x0) sendto$inet6(r0, &(0x7f0000000080)='D', 0xfffff, 0x0, 0x0, 0x0) read(r0, &(0x7f0000000100)=""/49, 0x31) 07:53:20 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x241, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller0\x00', 0xffffffffffffffdd}) io_setup(0x20fe, &(0x7f00000001c0)=0x0) creat(&(0x7f00000001c0)='./file0\x00', 0x0) sendmsg$DCCPDIAG_GETSOCK(0xffffffffffffffff, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000680)=ANY=[], 0x300}}, 0x0) io_submit(r1, 0x1, &(0x7f0000001a40)=[&(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8, 0x0, r0, &(0x7f0000000180), 0xd}]) 07:53:20 executing program 4: close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) r0 = socket(0x10, 0x3, 0x0) write(r0, &(0x7f0000000180)="2000000012005f0214f9f4070000fbe40a0000000000", 0x41d) recvmmsg(r0, &(0x7f00000021c0)=[{{0x0, 0x0, &(0x7f0000000140)=[{&(0x7f0000000000)=""/43}, {&(0x7f0000000080)=""/180, 0xc80d}]}}, {{0x0, 0x0, &(0x7f0000000540)=[{&(0x7f00000001c0)=""/254}, {&(0x7f00000002c0)=""/93}, {&(0x7f0000000340)=""/208}, {&(0x7f0000000440)=""/208}]}}, {{&(0x7f0000000580)=@l2tp6={0xa, 0x0, 0x0, @initdev}, 0x0, &(0x7f0000001900)=[{&(0x7f0000000600)=""/220}, {&(0x7f0000000700)=""/249}, {&(0x7f0000000800)=""/126}, {&(0x7f0000000880)=""/4}, {&(0x7f00000008c0)=""/10}, {&(0x7f0000000900)=""/4096}], 0x0, &(0x7f0000001980)=""/188}}, {{0x0, 0x0, &(0x7f0000001ec0)=[{&(0x7f0000001a40)=""/167}, {&(0x7f0000001b00)=""/133}, {&(0x7f0000001bc0)=""/126}, {&(0x7f0000001c40)=""/200}, {&(0x7f0000001d40)=""/128}, {&(0x7f0000001dc0)=""/253}]}}, {{&(0x7f0000001f40)=@l2, 0x0, &(0x7f0000002080)=[{&(0x7f0000001fc0)=""/112}, {&(0x7f0000002040)=""/7}], 0x0, &(0x7f00000020c0)=""/247}}], 0x1f7, 0x40, 0x0) 07:53:20 executing program 5: r0 = socket(0x10, 0x3, 0x0) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) r3 = socket(0x10, 0x3, 0x0) r4 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) sendmsg$nl_route_sched(r3, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) dup3(r3, r0, 0x80000) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000003c0)=ANY=[@ANYBLOB="3400000024000100"/20, @ANYRES32=r2, @ANYBLOB="00000000ffffffff000000000900010063616b65000000000400020015c0dd38d76b99eee916956b2ceb85446fb5909a7bbc8d256b067f532175e1bc1b1451f11ef9e5fc056c53352c5017191e9e3a7b2db97cc06a1317f8265a5420b5f5bfbe20d0d7c71daf1c146cfd48595573b74a593bc1ee3b8788e5016b425f061a564f"], 0x34}}, 0x0) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000340), &(0x7f0000000380)=0x14) socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000080)={'syzkaller1\x00'}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r6, 0x89f1, &(0x7f0000000180)={'ip6tnl0\x00', &(0x7f0000000100)={'syztnl0\x00', 0x0, 0x29, 0x5, 0x6, 0x4, 0x28, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x8000, 0x0, 0x7, 0x9}}) r8 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x8140, 0x0) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r8, 0x89f2, &(0x7f0000000280)={'syztnl2\x00', &(0x7f0000000200)={'ip6tnl0\x00', r5, 0x2f, 0x5, 0x1, 0x2, 0x20, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @private1={0xfc, 0x1, '\x00', 0x1}, 0x7800, 0x1, 0xef, 0xff}}) sendmsg$nl_route_sched(r6, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000002c0)=ANY=[@ANYBLOB="4800000059f8b5ffe024000b0f00"/25, @ANYRES32=r7, @ANYBLOB="00000000ffffffff000000000900010063616b6500000000180002000c000f0000000000000000000800090000000000"], 0x48}}, 0x0) preadv(r0, &(0x7f00000000c0)=[{&(0x7f0000000800)=""/4096, 0x1000}], 0x1, 0x80000000, 0x9ce4) fadvise64(r6, 0x400, 0x0, 0x0) 07:53:20 executing program 3: r0 = socket$rxrpc(0x21, 0x2, 0x2) connect$rxrpc(r0, &(0x7f0000000000)=@in4={0x21, 0x0, 0x2, 0xa}, 0x24) 07:53:20 executing program 0: syz_clone(0x48200100, 0x0, 0x0, 0x0, 0x0, 0x0) syz_open_dev$loop(0x0, 0x0, 0xc000) ioctl$LOOP_CONFIGURE(0xffffffffffffffff, 0x4c0a, 0x0) 07:53:20 executing program 2: r0 = socket$inet6(0xa, 0x2, 0x0) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x0, 0x103, 0x1}, 0x20) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x2, 0x0, 0x0, 0x6, 0x6}, 0x20) 07:53:21 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x241, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'syzkaller0\x00', 0xffffffffffffffdd}) io_setup(0x20fe, &(0x7f00000001c0)=0x0) creat(&(0x7f00000001c0)='./file0\x00', 0x0) sendmsg$DCCPDIAG_GETSOCK(0xffffffffffffffff, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000680)=ANY=[], 0x300}}, 0x0) io_submit(r1, 0x1, &(0x7f0000001a40)=[&(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8, 0x0, r0, &(0x7f0000000180), 0xd}]) [ 1091.048612][T13807] netlink: 'syz-executor.5': attribute type 15 has an invalid length. 07:53:21 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="18010000000001000000000000000000850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000180)={&(0x7f0000000140)='kfree\x00', r0}, 0x10) r1 = creat(&(0x7f0000000140)='./cgroup.cpu/cpuset.cpus\x00', 0x0) io_setup(0xad, &(0x7f0000000000)=0x0) io_submit(r2, 0x1, &(0x7f0000000040)=[&(0x7f0000000200)={0x101010, 0x400000000000, 0x0, 0x1, 0x0, r1, &(0x7f0000000080)='N', 0x1}]) 07:53:21 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000001c0)={&(0x7f0000000140)=@delneigh={0x24, 0x1d, 0x1, 0x0, 0x0, {0xa}, [@NDA_DST_IPV4={0x8, 0x1, @private}]}, 0x24}}, 0x0) 07:53:21 executing program 2: r0 = socket$inet6(0xa, 0x2, 0x0) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x0, 0x103, 0x1}, 0x20) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x2, 0x0, 0x0, 0x6, 0x6}, 0x20) 07:53:22 executing program 5: r0 = socket(0x10, 0x3, 0x0) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) r3 = socket(0x10, 0x3, 0x0) r4 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) sendmsg$nl_route_sched(r3, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) dup3(r3, r0, 0x80000) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000003c0)=ANY=[@ANYBLOB="3400000024000100"/20, @ANYRES32=r2, @ANYBLOB="00000000ffffffff000000000900010063616b65000000000400020015c0dd38d76b99eee916956b2ceb85446fb5909a7bbc8d256b067f532175e1bc1b1451f11ef9e5fc056c53352c5017191e9e3a7b2db97cc06a1317f8265a5420b5f5bfbe20d0d7c71daf1c146cfd48595573b74a593bc1ee3b8788e5016b425f061a564f"], 0x34}}, 0x0) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000340), &(0x7f0000000380)=0x14) socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000080)={'syzkaller1\x00'}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r6, 0x89f1, &(0x7f0000000180)={'ip6tnl0\x00', &(0x7f0000000100)={'syztnl0\x00', 0x0, 0x29, 0x5, 0x6, 0x4, 0x28, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x8000, 0x0, 0x7, 0x9}}) r8 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x8140, 0x0) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r8, 0x89f2, &(0x7f0000000280)={'syztnl2\x00', &(0x7f0000000200)={'ip6tnl0\x00', r5, 0x2f, 0x5, 0x1, 0x2, 0x20, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @private1={0xfc, 0x1, '\x00', 0x1}, 0x7800, 0x1, 0xef, 0xff}}) sendmsg$nl_route_sched(r6, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000002c0)=ANY=[@ANYBLOB="4800000059f8b5ffe024000b0f00"/25, @ANYRES32=r7, @ANYBLOB="00000000ffffffff000000000900010063616b6500000000180002000c000f0000000000000000000800090000000000"], 0x48}}, 0x0) preadv(r0, &(0x7f00000000c0)=[{&(0x7f0000000800)=""/4096, 0x1000}], 0x1, 0x80000000, 0x9ce4) fadvise64(r6, 0x400, 0x0, 0x0) 07:53:22 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$inet_udplite(0x2, 0x2, 0x88) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000340)={'bridge_slave_0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000240)=@newlink={0x2c, 0x10, 0x80b, 0x0, 0x0, {0x0, 0x0, 0x2, r2}, [@IFLA_AF_SPEC={0x4}, @IFLA_PROTO_DOWN={0x5}]}, 0x2c}}, 0x0) 07:53:22 executing program 4: r0 = socket$inet6(0xa, 0x3, 0x6) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x3, 0x0) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x803, 0x0) socket$inet6(0xa, 0x3, 0x6) syz_open_procfs(0x0, &(0x7f00000004c0)='net/ip6_flowlabel\x00') socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) r2 = dup(r1) getpeername$packet(r2, &(0x7f0000000000)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000040)=0xfda6) ioctl$sock_inet6_SIOCADDRT(r0, 0x890b, &(0x7f00000001c0)={@local, @private1, @remote, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20c301e2, r3}) syz_emit_ethernet(0x5e, &(0x7f0000000a80)={@broadcast, @multicast, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "65db01", 0x28, 0x3a, 0xff, @remote, @mcast2, {[], @ndisc_redir={0x89, 0x0, 0x0, '\x00', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @mcast2}}}}}}, 0x0) 07:53:22 executing program 2: r0 = socket$inet6(0xa, 0x2, 0x0) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x0, 0x103, 0x1}, 0x20) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r0, 0x29, 0x20, &(0x7f00000000c0)={@mcast1, 0x800, 0x2, 0x0, 0x0, 0x6, 0x6}, 0x20) 07:53:22 executing program 1: syz_mount_image$tmpfs(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000140)=ANY=[@ANYBLOB='huge=always,mpol=interleave']) openat$dir(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x410481, 0x0) [ 1092.410080][T13829] netlink: 'syz-executor.5': attribute type 15 has an invalid length. 07:53:22 executing program 3: syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000100100000000000000f8000000000000000000000000000080008000ff010000000000000400000000000000ff000000000000000100000001", 0x45}, {&(0x7f0000010900)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f00100000010000000000000000000000600000003000000040000000000000000000000000000000000000000000000100000004800000000001800000000003000000018000000801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd801060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500801875c1344fd801801875c1344fd801801875c1344fd801801875c1344fd8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1f5, 0x6fe0}, {0x0, 0x0, 0x1001e0}], 0x0, &(0x7f000007a1e0)=ANY=[]) 07:53:24 executing program 0: seccomp$SECCOMP_SET_MODE_FILTER_LISTENER(0x1, 0x0, &(0x7f0000000100)={0x1, &(0x7f0000000000)=[{0x6, 0x0, 0x0, 0x7fffffff}]}) r0 = epoll_create(0x1ff) epoll_wait(r0, &(0x7f0000000040)=[{}], 0x1, 0x0) 07:53:24 executing program 4: r0 = socket$inet6(0xa, 0x3, 0x6) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x3, 0x0) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x803, 0x0) socket$inet6(0xa, 0x3, 0x6) syz_open_procfs(0x0, &(0x7f00000004c0)='net/ip6_flowlabel\x00') socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) r2 = dup(r1) getpeername$packet(r2, &(0x7f0000000000)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000040)=0xfda6) ioctl$sock_inet6_SIOCADDRT(r0, 0x890b, &(0x7f00000001c0)={@local, @private1, @remote, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20c301e2, r3}) syz_emit_ethernet(0x5e, &(0x7f0000000a80)={@broadcast, @multicast, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "65db01", 0x28, 0x3a, 0xff, @remote, @mcast2, {[], @ndisc_redir={0x89, 0x0, 0x0, '\x00', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @mcast2}}}}}}, 0x0) 07:53:24 executing program 2: r0 = socket$inet_mptcp(0x2, 0x1, 0x106) setsockopt$inet_tcp_buf(r0, 0x6, 0xd, &(0x7f0000000140)="b0", 0x1) ioctl$sock_inet_tcp_SIOCOUTQ(r0, 0x5411, &(0x7f0000000800)) 07:53:24 executing program 1: r0 = syz_open_dev$vivid(&(0x7f0000000340), 0x3, 0x2) r1 = openat$zero(0xffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$VIDIOC_QUERYBUF_DMABUF(r0, 0xc04c5609, &(0x7f0000000040)={0x0, 0x9, 0x4, 0x0, 0x0, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "03000140"}, 0x0, 0x4, {}, 0x0, 0xf6f36000, r1}) r2 = openat$rdma_cm(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) write$RDMA_USER_CM_CMD_CREATE_ID(r2, &(0x7f0000000380)={0x0, 0x18, 0xfa00, {0x0, &(0x7f0000000000)={0xffffffffffffffff}, 0x106}}, 0x20) write$RDMA_USER_CM_CMD_RESOLVE_IP(r2, &(0x7f00000000c0)={0x3, 0x40, 0xfa00, {{0x6000000, 0x0, 0x0, @remote}, {0xa, 0x0, 0x0, @private1}, r3}}, 0x48) 07:53:24 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$nl_generic(r0, &(0x7f00000029c0)={0x0, 0x1c00, &(0x7f0000000100)={&(0x7f0000000180)={0x1c, 0x10, 0x701, 0x0, 0x0, {0xa}, [@typed={0x6, 0x1, 0x0, 0x0, @str='\x0f\x00'}]}, 0x1c}}, 0x0) 07:53:24 executing program 5: r0 = socket(0x10, 0x3, 0x0) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) r3 = socket(0x10, 0x3, 0x0) r4 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) sendmsg$nl_route_sched(r3, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) dup3(r3, r0, 0x80000) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000003c0)=ANY=[@ANYBLOB="3400000024000100"/20, @ANYRES32=r2, @ANYBLOB="00000000ffffffff000000000900010063616b65000000000400020015c0dd38d76b99eee916956b2ceb85446fb5909a7bbc8d256b067f532175e1bc1b1451f11ef9e5fc056c53352c5017191e9e3a7b2db97cc06a1317f8265a5420b5f5bfbe20d0d7c71daf1c146cfd48595573b74a593bc1ee3b8788e5016b425f061a564f"], 0x34}}, 0x0) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000000)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_cake={{0x9}, {0x18, 0x2, [@TCA_CAKE_BASE_RATE64={0xc, 0xf}, @TCA_CAKE_AUTORATE={0x8}]}}]}, 0x48}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000340), &(0x7f0000000380)=0x14) socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000080)={'syzkaller1\x00'}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r6, 0x89f1, &(0x7f0000000180)={'ip6tnl0\x00', &(0x7f0000000100)={'syztnl0\x00', 0x0, 0x29, 0x5, 0x6, 0x4, 0x28, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x8000, 0x0, 0x7, 0x9}}) r8 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x8140, 0x0) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r8, 0x89f2, &(0x7f0000000280)={'syztnl2\x00', &(0x7f0000000200)={'ip6tnl0\x00', r5, 0x2f, 0x5, 0x1, 0x2, 0x20, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @private1={0xfc, 0x1, '\x00', 0x1}, 0x7800, 0x1, 0xef, 0xff}}) sendmsg$nl_route_sched(r6, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000002c0)=ANY=[@ANYBLOB="4800000059f8b5ffe024000b0f00"/25, @ANYRES32=r7, @ANYBLOB="00000000ffffffff000000000900010063616b6500000000180002000c000f0000000000000000000800090000000000"], 0x48}}, 0x0) preadv(r0, &(0x7f00000000c0)=[{&(0x7f0000000800)=""/4096, 0x1000}], 0x1, 0x80000000, 0x9ce4) fadvise64(r6, 0x400, 0x0, 0x0) [ 1094.943019][T13846] netlink: 'syz-executor.5': attribute type 15 has an invalid length. 07:53:25 executing program 1: syz_mount_image$gfs2(0x0, &(0x7f0000000040)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) syz_mount_image$hfs(&(0x7f0000000180), &(0x7f00000001c0)='./file0/file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x0, &(0x7f0000002640)={[{@part={'part', 0x3d, 0x7fffffffffffffff}}]}) 07:53:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000006c0)={&(0x7f0000000180)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_PACKETS_PER_SLAVE={0x8, 0x14, 0x1}]}}}]}, 0x3c}}, 0x0) 07:53:25 executing program 4: r0 = socket$inet6(0xa, 0x3, 0x6) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x3, 0x0) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x803, 0x0) socket$inet6(0xa, 0x3, 0x6) syz_open_procfs(0x0, &(0x7f00000004c0)='net/ip6_flowlabel\x00') socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) r2 = dup(r1) getpeername$packet(r2, &(0x7f0000000000)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000040)=0xfda6) ioctl$sock_inet6_SIOCADDRT(r0, 0x890b, &(0x7f00000001c0)={@local, @private1, @remote, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20c301e2, r3}) syz_emit_ethernet(0x5e, &(0x7f0000000a80)={@broadcast, @multicast, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "65db01", 0x28, 0x3a, 0xff, @remote, @mcast2, {[], @ndisc_redir={0x89, 0x0, 0x0, '\x00', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @mcast2}}}}}}, 0x0) 07:53:25 executing program 0: creat(&(0x7f00000004c0)='./file0\x00', 0x0) setxattr$security_ima(&(0x7f0000000280)='./file0\x00', &(0x7f00000002c0), &(0x7f00000000c0)=@md5={0x1, "0da9a176d20a118d9bc261261a174777"}, 0x11, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f000000c380)='./file0\x00', 0x80101, 0x0) write$P9_RREADDIR(r0, &(0x7f0000000100)=ANY=[], 0x49) open$dir(&(0x7f0000000000)='./file0\x00', 0x0, 0x0) 07:53:25 executing program 2: futex(&(0x7f0000000080), 0x5, 0x0, 0x0, &(0x7f0000000000), 0x91ffffff) [ 1095.915427][T13869] futex_wake_op: syz-executor.2 tries to shift op by -1; fix this program 07:53:26 executing program 1: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f0000000100)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r1, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r2) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000500)={&(0x7f0000000040)='sys_exit\x00', r0}, 0x10) bpf$BPF_TASK_FD_QUERY(0x12, 0x0, 0x0) [ 1096.028897][ T24] audit: type=1804 audit(1658303606.085:245): pid=13871 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=invalid_pcr cause=open_writers comm="syz-executor.0" name="/root/syzkaller-testdir3712101327/syzkaller.mSpFL4/645/file0" dev="sda1" ino=1182 res=1 errno=0 07:53:26 executing program 2: seccomp$SECCOMP_SET_MODE_FILTER_LISTENER(0x1, 0x0, &(0x7f00000000c0)={0x3, &(0x7f0000000080)=[{0x14}, {0x7}, {0x6}]}) ioctl$SECCOMP_IOCTL_NOTIF_ID_VALID(0xffffffffffffffff, 0x40082102, 0x0) 07:53:26 executing program 0: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) setsockopt$bt_l2cap_L2CAP_OPTIONS(r0, 0x6, 0x1, &(0x7f0000000040)={0x0, 0x401, 0x0, 0x4}, 0xc) bind$bt_l2cap(r0, &(0x7f0000000000)={0x1f, 0x0, @none}, 0xe) listen(r0, 0x0) 07:53:26 executing program 3: r0 = socket$nl_audit(0x10, 0x3, 0x9) ioctl$sock_SIOCETHTOOL(r0, 0x8946, &(0x7f0000000100)={'veth1_virt_wifi\x00', &(0x7f0000000000)=@ethtool_gstrings={0x18}}) 07:53:26 executing program 5: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:26 executing program 4: r0 = socket$inet6(0xa, 0x3, 0x6) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x3, 0x0) socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x803, 0x0) socket$inet6(0xa, 0x3, 0x6) syz_open_procfs(0x0, &(0x7f00000004c0)='net/ip6_flowlabel\x00') socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) r2 = dup(r1) getpeername$packet(r2, &(0x7f0000000000)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000040)=0xfda6) ioctl$sock_inet6_SIOCADDRT(r0, 0x890b, &(0x7f00000001c0)={@local, @private1, @remote, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20c301e2, r3}) syz_emit_ethernet(0x5e, &(0x7f0000000a80)={@broadcast, @multicast, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "65db01", 0x28, 0x3a, 0xff, @remote, @mcast2, {[], @ndisc_redir={0x89, 0x0, 0x0, '\x00', @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', @mcast2}}}}}}, 0x0) [ 1096.870051][ T24] audit: type=1326 audit(1658303606.925:246): auid=4294967295 uid=0 gid=0 ses=4294967295 subj==unconfined pid=13874 comm="syz-executor.2" exe="/root/syz-executor.2" sig=31 arch=40000003 syscall=240 compat=1 ip=0xf7f4e549 code=0x0 07:53:27 executing program 0: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) setsockopt$bt_l2cap_L2CAP_OPTIONS(r0, 0x6, 0x1, &(0x7f0000000040)={0x0, 0x401, 0x0, 0x4}, 0xc) bind$bt_l2cap(r0, &(0x7f0000000000)={0x1f, 0x0, @none}, 0xe) listen(r0, 0x0) 07:53:27 executing program 1: syz_open_dev$ttys(0xc, 0x2, 0x1) r0 = syz_open_dev$ptys(0xc, 0x3, 0x1) ioctl$TIOCMSET(r0, 0x5418, 0x0) 07:53:27 executing program 3: syz_emit_ethernet(0x106, &(0x7f0000000000)={@multicast, @empty, @void, {@ipv4={0x800, @udp={{0x5, 0x4, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x11, 0x0, @empty, @empty}, {0x0, 0x1b59, 0x64, 0x0, @wg=@response={0x2, 0x0, 0x0, "00f0000108653904040305ffffff09c56a3000", "9384bbeb3018ad591b661fe808b21b77", {"694c875dfb1be5d2a0057a62022a1564", "a329d3a13bd5b6cc6a9471314a1d8c69"}}}}}}}, 0x0) 07:53:27 executing program 5: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:27 executing program 4: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:27 executing program 2: r0 = socket$inet6(0xa, 0x1, 0x8010000000000084) sendto$inet6(r0, &(0x7f00000000c0)="de", 0x1, 0x0, &(0x7f0000000140)={0xa, 0x0, 0x0, @private1}, 0x1c) connect$inet6(r0, &(0x7f0000000100)={0xa, 0x0, 0x0, @private0}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_EVENTS(r0, 0x84, 0xb, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0xe) recvmmsg(r0, &(0x7f00000006c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) 07:53:28 executing program 0: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) setsockopt$bt_l2cap_L2CAP_OPTIONS(r0, 0x6, 0x1, &(0x7f0000000040)={0x0, 0x401, 0x0, 0x4}, 0xc) bind$bt_l2cap(r0, &(0x7f0000000000)={0x1f, 0x0, @none}, 0xe) listen(r0, 0x0) 07:53:28 executing program 1: socket(0x2b, 0x1, 0x1) pipe(&(0x7f0000000140)={0xffffffffffffffff, 0xffffffffffffffff}) r2 = socket$inet_udp(0x2, 0x2, 0x0) writev(r1, &(0x7f0000000200)=[{&(0x7f00000000c0)="580000001400adfd8a987e40da2e6a262b", 0x11}], 0x1) close(r2) r3 = socket$netlink(0x10, 0x3, 0x4) write$binfmt_misc(r1, &(0x7f0000000240)=ANY=[], 0xff36) splice(r0, 0x0, r2, 0x0, 0x80000001, 0x0) recvmsg(r3, &(0x7f0000001500)={0x0, 0x0, 0x0}, 0x0) 07:53:28 executing program 3: r0 = request_key(&(0x7f0000000000)='rxrpc\x00', &(0x7f0000000040)={'syz', 0x3}, &(0x7f0000000080)='#^\x00', 0xffffffffffffffff) request_key(&(0x7f0000002100)='asymmetric\x00', &(0x7f0000002140)={'syz', 0x2}, &(0x7f0000002180)='rxrpc\x00', r0) request_key(&(0x7f0000002100)='asymmetric\x00', &(0x7f0000002140)={'syz', 0x2}, &(0x7f0000002180)='rxrpc\x00', 0x0) 07:53:28 executing program 5: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:28 executing program 0: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) setsockopt$bt_l2cap_L2CAP_OPTIONS(r0, 0x6, 0x1, &(0x7f0000000040)={0x0, 0x401, 0x0, 0x4}, 0xc) bind$bt_l2cap(r0, &(0x7f0000000000)={0x1f, 0x0, @none}, 0xe) listen(r0, 0x0) 07:53:28 executing program 1: r0 = io_uring_setup(0xff3, &(0x7f00000006c0)) io_uring_register$IORING_REGISTER_FILES_UPDATE(r0, 0x16, &(0x7f0000000040)={0x0, 0x7, &(0x7f0000000200)=[0xffffffffffffffff]}, 0x1) 07:53:28 executing program 5: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:29 executing program 3: syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x20100000, 0x2, &(0x7f0000000300)=[{&(0x7f0000000080)="200000006300000005000025ce000b000f00c00c110000000000000000000000002000000020000220000000d7f4655fd7f4655f0100ffff53ef", 0x3a, 0x400}, {&(0x7f0000010400)="2e0000001300000002", 0x9, 0x800}], 0x0, &(0x7f0000013800)) 07:53:29 executing program 2: r0 = socket$inet6(0xa, 0x1, 0x8010000000000084) sendto$inet6(r0, &(0x7f00000000c0)="de", 0x1, 0x0, &(0x7f0000000140)={0xa, 0x0, 0x0, @private1}, 0x1c) connect$inet6(r0, &(0x7f0000000100)={0xa, 0x0, 0x0, @private0}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_EVENTS(r0, 0x84, 0xb, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0xe) recvmmsg(r0, &(0x7f00000006c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) 07:53:29 executing program 4: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:29 executing program 0: r0 = openat$adsp1(0xffffffffffffff9c, &(0x7f00000000c0), 0x82081, 0x0) ioctl$SNDCTL_DSP_SETFRAGMENT(r0, 0xc004500a, &(0x7f0000000000)) write$dsp(r0, &(0x7f0000000040)="83", 0x223) 07:53:29 executing program 1: r0 = syz_open_dev$evdev(&(0x7f0000000000), 0x0, 0x0) ioctl$EVIOCSCLOCKID(r0, 0x40284504, &(0x7f0000000040)=0x6fc8) 07:53:29 executing program 5: r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) bpf$MAP_CREATE(0x0, &(0x7f0000004080)=@base={0x10}, 0x48) 07:53:29 executing program 3: r0 = openat$sndseq(0xffffffffffffff9c, &(0x7f0000000080), 0x42441) ioctl$SNDRV_SEQ_IOCTL_GET_CLIENT_POOL(r0, 0xc058534b, &(0x7f0000000100)={0x80}) 07:53:30 executing program 1: r0 = syz_open_dev$evdev(&(0x7f0000000000), 0x0, 0x0) ioctl$EVIOCSCLOCKID(r0, 0x40284504, &(0x7f0000000040)=0x6fc8) 07:53:30 executing program 0: r0 = openat$adsp1(0xffffffffffffff9c, &(0x7f00000000c0), 0x82081, 0x0) ioctl$SNDCTL_DSP_SETFRAGMENT(r0, 0xc004500a, &(0x7f0000000000)) write$dsp(r0, &(0x7f0000000040)="83", 0x223) 07:53:30 executing program 2: r0 = socket$inet6(0xa, 0x1, 0x8010000000000084) sendto$inet6(r0, &(0x7f00000000c0)="de", 0x1, 0x0, &(0x7f0000000140)={0xa, 0x0, 0x0, @private1}, 0x1c) connect$inet6(r0, &(0x7f0000000100)={0xa, 0x0, 0x0, @private0}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_EVENTS(r0, 0x84, 0xb, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0xe) recvmmsg(r0, &(0x7f00000006c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) 07:53:30 executing program 3: r0 = syz_usb_connect$hid(0x0, 0x36, &(0x7f0000000340)=ANY=[@ANYBLOB="12010000090003206d041cc340000000000109022400010000a0000904000001030101000921000000012201000905810347"], 0x0) syz_usb_control_io$hid(r0, &(0x7f0000000240)={0x24, &(0x7f00000008c0)=ANY=[@ANYBLOB="00000c0000000c0001"], 0x0, 0x0, 0x0}, 0x0) syz_usb_control_io$hid(r0, 0x0, 0x0) syz_usb_control_io$hid(r0, 0x0, 0x0) syz_usb_control_io(r0, 0x0, &(0x7f0000002cc0)={0x84, 0x0, 0x0, 0x0, &(0x7f0000002980)={0x20, 0x0, 0x4, {0x0, 0x1}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) 07:53:30 executing program 4: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000200)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x82, &(0x7f0000000000), 0x8) 07:53:30 executing program 1: r0 = syz_open_dev$evdev(&(0x7f0000000000), 0x0, 0x0) ioctl$EVIOCSCLOCKID(r0, 0x40284504, &(0x7f0000000040)=0x6fc8) 07:53:30 executing program 5: r0 = syz_open_dev$sndctrl(&(0x7f0000001440), 0x0, 0x0) ioctl$SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE(r0, 0x40045532, &(0x7f0000000040)=0x1a) syz_open_dev$sndpcmp(&(0x7f00000001c0), 0x0, 0xa2c65) 07:53:31 executing program 1: r0 = syz_open_dev$evdev(&(0x7f0000000000), 0x0, 0x0) ioctl$EVIOCSCLOCKID(r0, 0x40284504, &(0x7f0000000040)=0x6fc8) 07:53:31 executing program 5: socket(0x28, 0x0, 0x28) 07:53:31 executing program 0: r0 = openat$adsp1(0xffffffffffffff9c, &(0x7f00000000c0), 0x82081, 0x0) ioctl$SNDCTL_DSP_SETFRAGMENT(r0, 0xc004500a, &(0x7f0000000000)) write$dsp(r0, &(0x7f0000000040)="83", 0x223) 07:53:31 executing program 1: mkdir(&(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000027000)='./file0\x00', &(0x7f00000000c0)='proc\x00', 0x0, 0x0) mount(0x0, &(0x7f0000000080)='./file0/bus\x00', &(0x7f0000000140)='rpc_pipefs\x00', 0x0, 0x0) mount$bind(&(0x7f0000000180)='./file0/bus\x00', &(0x7f00000001c0)='./file0/bus\x00', 0x0, 0x130c0, 0x0) umount2(&(0x7f0000000000)='./file0/bus\x00', 0x0) 07:53:31 executing program 3: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) unshare(0x480) ioctl$KVM_CREATE_VM(r0, 0xae03, 0x17) 07:53:32 executing program 4: unshare(0x26020480) r0 = socket(0x2c, 0x3, 0x0) bind$802154_raw(r0, &(0x7f0000000000)={0x24, @long}, 0x14) 07:53:32 executing program 1: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_TCP_MD5SIG(r0, 0x6, 0xe, &(0x7f00000002c0)={@in={{0x2, 0x0, @empty}}, 0x0, 0x0, 0x1c, 0x0, "246575a4000000004fb62fe6bce0eef5607264c7f28557a8046964d292934c2a2bb1dcc5a80c0107040000000000001e0000009000000000000800"}, 0xf0) setsockopt$inet_tcp_int(r0, 0x6, 0x20, &(0x7f0000000040)=0x2, 0xf6) socket$inet6(0xa, 0x0, 0x0) close(r0) 07:53:32 executing program 2: r0 = socket$inet6(0xa, 0x1, 0x8010000000000084) sendto$inet6(r0, &(0x7f00000000c0)="de", 0x1, 0x0, &(0x7f0000000140)={0xa, 0x0, 0x0, @private1}, 0x1c) connect$inet6(r0, &(0x7f0000000100)={0xa, 0x0, 0x0, @private0}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_EVENTS(r0, 0x84, 0xb, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0xe) recvmmsg(r0, &(0x7f00000006c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) 07:53:32 executing program 5: mprotect(&(0x7f0000ffa000/0x4000)=nil, 0x4000, 0x0) sigaltstack(&(0x7f0000ffb000), 0x0) 07:53:32 executing program 3: r0 = creat(&(0x7f0000000280)='./file0\x00', 0x0) close(r0) fanotify_init(0x0, 0x0) r1 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f0000001180)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000500000095000000000000009500a505000000007751e8ba639a67880141cca555077e3a159110193dd2ff1fa7c3205b14052ef99fb41a0cacfa7e15fe0231368b2264f9c504c9f1f65515b2e1a38d522be18bd10a48b043ccc42646d25dfd73d06d7535f7866907dc6751dfced1fd8accae669e173a649c1cfd6587d47578f4c35235138d5521f9453559c35da860e8efbc6f2b2a3e3173d566a0f0ee837a38903ef31c4d4acef2ce3599f455c7a3a48a01010000009f2f0517e4ca0e1803a2971a50f713d4e21b3336f1ae0796f23526ec0fd97f734c4c815bf697e6bd25eac36d4dfafe7cc03b0864009d2e7d7ff6ff72ba8972b122b09789d99b3d0524f39dc09244ba5dbe9180950f76f7049db5cb19d7962fed44e00f39ed8c13a11fa798de504e2865cd81f2b77fdd76c677f812d249c8130b018d4300000000000000db3947c8dc7b1b4c4554ffdca8b7fb05000000000000593d600600b3e67d127e56f3d3759dcfeb820634fd4d419efaefb24305b2bea20007840484511b6efaad206335a30ef7b9e01446a6285f4665a7fe37da2349f8bf4064726dc32add75cf971d54a9698cf3270f420edc85c176070bfff7909413f3fbd3ced3284db730b368ddca654dd7836f171b766ffd7526847a6bfda9c648e8aa5c558aa6d463ec9d840f396952be71b0417d33d3ab2549346818494d9d10d76e600001b81b7e2fc7a5758fcfb822de1dacc357341e000cc34c49914f1aa198b07b3610b7403930fd42051d4b7443e5b49c000000000000007d6173050027791c9c1e04ad3711a66d91254a6f911b1449c62a6e1e3f9ce19a9d1715c009a58e6eadac8f61b45853673df72dc813f7454ae22d79ac48034282f030408895886e9644179dcf66d93907cedd49e0c5752f953957143a0380d1f62acbf10b251ce62b29fe177745448ccc925770fac12cf9e291200df6bb669d5a57dd74df817ef2f8848f710c359afe73747afebdf5536ee2741e2edf95d64d07125ed5d59e16a05a37a378b128403ccf3734657b9079db2f9db0d4f061543b2caa92073211803a579383f39f82bbfcf78f5f9b206831ff8af3b9617023f5100b32334347c57c8b4e5f052280387fbe838d660b067c9285b22ed79a71e056c6d7a44aec99ff85786244d32da3c526fc1ba0bd3d21034a1d587c18b3d925d8787fb5d64ba703ef5f7d497beb5612a180db3ce93f760983d2fe97bc610a1edb570d8228d14ea9c4b1ab328951ed1da766a6df6668b90681c85e6424020551a9198651b191bf515fc90a3fe336e8cea1e5fb87bdb545689c4c132bbd150d81aba53d4482ac7c5d247368e8588386d3a80dcd1a16a1d39ab0f4b001c6d80e944bbcaa686d8e45b12b143c5676fb4454db6bc02eca84d5336f7ee2d3899cd6bbc7ee984f1207a0c08a1fbd0f85df6a56b3ef1a8a0a678a807588d7703d336aefb3b9cd99547460d5bc81a46215c44ad0b9731a9a30283b7697c87a5c8276442f852c4afe7f47bd8bcd603fb17d23b1fa898509dcb5a8925a4967952df1b12fc82e75ee9a7535c70771217faa8838c0679b47273cb08a6858994f1238ed5cbd2a196eb024207a63d0a2c28375427ef469341eec6a9d3ae3f7666b40f816a09ebd039c7f93f7b4affee2920fa0e119c478958518d9066af4848f8fa8e3d52fedb651792fff913110ce62cb028e0a360131f582e595f6000000004f882a2a00000000000000180000000000000038a0af877daa4ce8427ad3cead04626fb1d00713d17cf016e57cc3b8b34d1ad72c6bc8b8da72a553849a8fb060220c30f79d417a13cd0f4d4129f22971b53a78e79a3a4ee1cc61815c494ba1bf55eef5a3a909e56e2845ad70d312f20eaf9dafe398e7b84aecf60aa436b741882fc31346f382f5653c9b8489f55610b7c45f8dfe5f27157895ca49b35f7f2bacc7a9d7e1be45b4446d527a65135104698172a8442ab1de0dcfde809fdbe09db7776e3b7dc7c93e6b7957697c27caf093af20f569"], &(0x7f0000000080)='GPL\x00', 0x5, 0x29e, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x70) mount$9p_fd(0x0, &(0x7f0000000000)='./file0\x00', &(0x7f0000000040), 0x0, &(0x7f0000000340)={'trans=fd,', {'rfdno', 0x3d, r0}, 0x2c, {'wfdno', 0x3d, r1}}) 07:53:32 executing program 0: r0 = openat$adsp1(0xffffffffffffff9c, &(0x7f00000000c0), 0x82081, 0x0) ioctl$SNDCTL_DSP_SETFRAGMENT(r0, 0xc004500a, &(0x7f0000000000)) write$dsp(r0, &(0x7f0000000040)="83", 0x223) [ 1103.636066][ T3558] kernel write not supported for file bpf-prog (pid: 3558 comm: kworker/1:5) 07:53:33 executing program 5: syz_mount_image$tmpfs(0x0, &(0x7f00000003c0)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) mount$9p_unix(0x0, &(0x7f0000000040)='./file0\x00', &(0x7f0000000080), 0x0, &(0x7f00000000c0)={'trans=unix,', {[{@version_u}]}}) 07:53:33 executing program 3: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f0000000000)=ANY=[], 0x208e24b) r1 = syz_open_procfs(0x0, &(0x7f0000000080)='smaps\x00') preadv(r1, &(0x7f00000006c0)=[{&(0x7f00000002c0)=""/182, 0xb6}], 0x1, 0xfffffffe, 0x0) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f00000005c0)={r1, 0x0, 0x0}, 0x10) r2 = openat(r0, &(0x7f0000000140)='./file0\x00', 0x0, 0x0) syz_open_procfs(0x0, &(0x7f0000000600)='clear_refs\x00') syz_fuse_handle_req(r2, &(0x7f0000002140)="e3442329ada18e2c58fc466e8cd53859679865a5b2d2693b6505bf7956475d67e36d0168119a4d4dcee864e2f577ce475e07c82a4a173c5070bee4b6382049c83428c2b883bbe79377b78cead7b50ecdd2c010b1518599b5f41c4ecd810012c83cdaeae505c8e9663c8f9b25ca4b2dcdaf146a30dee6b22ce14242b08c71068c93c88ad91af5b7b63cba8bdc59307bf381df1873fc88c2f674e219ab9b8f8ae10c3ace5f31dac656b108321bc963367dec9113bd8694e1e0fe6631a74aa0ef1343db0999a2504181608b7f571b792cb2d7838ad5cbca05a03fefa778ceb82bfe5cb2e4a02edee27163e9278c3fc153b9dcedb7dedcd241b2d006a92107c0555b12d4a6e7e41785444cf392a9da18cf15145df01cea5322878818cc3fe1bf6fedf86781cfb72848c34159785e87afe8a7ed23f71e8fa446ae70a92fe15fb22279323edcc18108cb500f18bce6676f95f330e9809aa1ea614ffb3414a3b2b65cd5bfbd5097aea85da40dd36a5fbc3d1669e252c50569754d56ee4e81e0469116da0a400be77d5669d46783dda99d7cb72a58a061f4b9de692cc823dc6e81189c62d4d0120199acd975a9713e82ad09833f4b53ff16519ac3a7f52af93a5593ec3fab75c4ad126e1d23c51453960b9bc12ee19ee6579ce04c678bd4d9813ed1fc8582e00f11a96fcd66a2156e6f3fc0ab774713a6d39cd34f1f404dcfb6d641ff5aca3f9bf9a96d3c2b0581b55c194c4aa1793850d14490c433265710f51403b1d34378cbf011eef5851b3c01197d286baf8a20ee0af358cc7d43d16580a3e3cdacd57ecc6905cc139ac9d4a40401e8da1a9bdb8f616c1f268dd2d3f572a2d986793854122e3b2f16b94b42a2a079ea0fc46d2463036a17e4c3aacd4dc1a61aa4f9d6e4bbd7a0b7c31c3f5230775815d975e2d26a56ffb9a7d9934c3915c9e745ec521b58e4afa072e1e3550eb3248fe66f22e58263873261ce91f73fc083c0d1c019353805de3b00ff369050c48682619c5415a5a393c49bfe6608c4e007122854f66b78004d5496882217b032b1b9c47d649a540b9a6c654148bbc109ffc9a2b8b11673d8ad62290128726998190dbfebebdefc218d8b4e3b92362900fd08608e7d83d1f322851224bfa5ae2b6e41b68856cd4e97bb168f3575c2b4d0d2a826c7616ec01ce9d5c92f666b5ea441f79daa9a8c5da93c477ee4a172f6acc45743edee42c27379f2647380647ccf8b71ee9ad62870fc825db79fd117828460e8d8082beff41a2bb2da251c232cd4708fc1921ccd034b7ce66634c66f3390297a8f0cb4be94eb5fcb0ab6f25033a1855fda75d5d3b5face10ef6e15f8f9c06a8165a52d727d300ce4d76fa1fc56fbfd992ab413df3ba27a2c91ef4db87197559d5c6bdc60fd23f9fc99028243b1615dbf3c81f4585f31deb6805facfe85314a4e1c994e779bedb873e10fb2873e6f138209ed0bb12dc573710a1e2c21adbe2c064d6b61b08b0e90aaae134fe6cd359bbe37412c63db6ed46eed9df99827ecfc6ac6386966dff806887d314ae332f3917d1f6ddb08415def39f50a7c352134e6405167e9358506177973846656cf0ff80ff9bd253f1307043e268bca915991d33d443213a21981eb78e3d3dbd331ffaccb9762291afae773f7301ef781a3d0b83d3c9610e93709178f802f086b73357804942be74320000b8658dc8ae8c3d57b0bd813cae702f12ae5c93bb1b89972ab7945d3c99175e748f0a7813deebdfd16a2920098ceb6db593e49d1417d2fc9ac2f133e3e47b7fddca1d62d4fbc597b49a2ab8f9c4d3c0ed2519864b5bab2aac130be3e7ed0db22201a427306f148c12fe443222343b60c00747040af7ce534408da2a18107531fd32ca8141b14c6d447c4122d0800000000000000b5aacad8a6c1e82bd2bd727a646cc9c5ed0bed31bc3335d1844ee1efc0193a1d7de6ce3a41a62c3d46e557139165b405bb8f56cc18589d7640f732368d1663e53079bdc7d289c69b006139d4987aad589690a303a8d292f9d0e936e3bc3d2696895526e5c756e8d6236d927450967422a2fe17378dbcf1836daab79af36ff9d84007b74f476aa6af3c3ae4844ee2859b53333cf95b838271c2beaba09a2215c4a569c32e8cd734aece9b1933c2bf720f40750d58443c3bc7fcd23217c8e657c87d825ddfda2418806251470b1fc2bfad5cae7a1c2b27d5ebb0fc00e707f78ae36f5ced465b599856025ee631399263bef921133bd19df97e027f2a4d1b6d2f2b58cd762393844507860cd642df43c9a20e3bdb1527c25a36a26eab2aee457b7c4d2c7b00b4c5214083b2135461ca38663f2aa4fa418e118eedd1f4e7bd407904eb88c4f28a4f9ac9d91b6606a47ab45c7d5866ba3299c23002e059405c15acf83bc8833581c8406d011247261cb247a3ccab8a0c2619bed10ba974aaedc31bda79720e0f46867917c281b1bbd819fbc36a9a988b8d8c9cba5155bccffc32b5606e8433e8c4f3e5ab8bbca51f98ca410c46483a7c6cc96e449706a531c243ef7b7ab4aa865cd967220b1dd33e9d20c3e1b04158d8ebb337e367644372f1e8fd7065f521259671fa9f7c26e348d7ae79c7d22d5a04e8ed5a3125b93a3f708263a43c28eac06ae5db38c5b97c07eef29a7ee7b148bfc63f13e154c21ba89377a77e5cc1e59d45e500d9067e90cb4530b9816e96edaae4f7e8458439be14c8d10be7e3255fe588e330939641f1c81466549518b25d0cb79d7d476e3d4429719a8b690648310c7b1ac595ed745abeac26db990329f94068b799c4bbe202074056cfc4899ae6cbb3535704b763bc050fa1c8d669d03e2768e4fcba0ef5b73fd23bfe2b3c27626b1554279c1c8b295524aa8b4bf11288dbbb57ecb695c29f625dbe61ca626c2d01d2549f91b12a7af5c83665927a91ec37424e5cd5ccc2b7c7ae96f903e868909f429163741d4ce99254768350a4a2ef7ca918e2bc5d28c77e6bec721e31955be7db1c9c29cd3fecfcffe392a41a4a812ffda5acd80bf8d144ed46ba1801449123e3dfbf76339bce3a6b5325032dd7dd10c51bd1b1d5066597c3cf1328de5cdc49047d4eeba36b6bf7a72b900408f660318281623212c08e0c354391ad628ed6f190fca403534480236c3b3d99a4e25d58cfd6506803999f480428a229c67e29ad068af81c77cf3663d178bd0fef2e94275ac5e145d6ab4b794689a5b45f2ec3c97602aed6d675fc5bba86987b84a2e19404d7842a7d76cb866af5a2c71374470aa3fbc4eec9dce9bb14a4622d76ec79531b9025ab3b26d467b8e310de0489a132bdbc651e567e7e90e0a95a639d81f41d2bdf4cb4c9d91be5c409d7f2d5d78ab3708fc46e7903485f48acf9b9676c11c7b04a6034307271af3fee5e0c58c4d0de0864c8b7f6df366e64b0286b59591d7cd71ac227da760ebf2368c48bf94efd7481bfbb4dd8b94f3c463d97e6563860c4365fae74a5deaadb7a0ad0cc2df3b7cb165eb927ec8ec87dfecfc1785fab4d9c30a4def8c66fed139a13ba9a5b8980a326d0af57e69465e478bda911bfb3290da4efcf7c5635e4ff35dc5fa0344f141c0b8a587786c7745fe09b1ebe66bc3a7a67f44a1c131a9e6df645ef9ec4b5af5caeca6d719ed73478ac468fa6f00db5b0c13dc080d0cce32912e469ecc85db82da67295dc0ef72ce40981b97aae42b00a17ba7674140ebd50cbded5978affec0972537c6840f32f64904f55c8045eb3460a5d465a311865a51eaa775c25946de31b4fdc125eab6739e6a480d99e44fc122c653a957aada6e5055eb411d3eaf9600e3a8fe073c4086236a7b9692de8cba68d647c19769f37bb29b95cc97bb11f3ce0d3897bb391dbaabe0cafea17ae22b470c337c520bdd2b5c3b9e7c2bdf0cf307cef1a129495aa5867c017e771399a45bf0f82855d4b2c28b48ce5886d9bfc2e8bf3da73e8c22d8b2bc6e167979580979e6dbd6b3815d4a9a27248814c3caeca760bf79e61943d0ba934df9481210e7e32ff32700a3e2038a04f70552419babb3ab95937500730b5a1cff3591a5c8412f288b76b885971726daf3619a8710c270dc5904cea106a77d6635a593a6c94f1e1f67df9de0b79995a3216693c4c685641cf4b10361ad47a4980d8ed499fe8887441fa17383312201cf68385624077bace92839113f93d868e60c15292c708253f5aef58ba8eaacd6b0d998e41b89c3c3651d3f51cbeff80672372c3358d79cf864107b9ed24411a981d1908afe78c2b19397b2ea4572c3766eb24411bda6da64b3e17f589a254cec12c4b11366fad1b057a5d5a3fad8772664c723cc0cd60338d39677f51929ea896fb930e5b4e6096f65895aaf90092d37963eaa72c9ad9de6e5404be0d4ea7d81e63ce3a1d01c54c4fe25618056f2298f54a602f094e275faa0936b06d34076692007028a82f798f9d4b003d32fcb8520d8b6d9cd5e2ec731b57e1a467887d60bdc6021f0feac842bb4e671cd0138326e0ead80776f1fc2994024f1cdc1a43e65fb36ca04b01cd8ffb091e080f64171ca2d67132c8124a8f754507979fd149096564f74c517fd17a79bbc32f4ce9f33a1dc1d59eecf4fea7997cab040e82631d2adf7f9858a371941f62536664555d27bf19f6b74dacfab99053cef5db4a3c31951bfcf82b153b7be1da1f8ab992048b757a9578f902153a808294d4fa7768b02cc216eeede009400717b41a112c3c5db445e6aabc7d03d15a2e1db568ccb6558c6026a897fccb56ce88679853b8a60f98364b4073b847845bd168b4633198d725dbd2cdcb067cb252857c1e729bbf322c736807bd29c618fd5bb6395207a65ac4550cbad983ad627f13f54238a49326959c5a84401d69fb42eebf725af04c2475503ffd2031ad36e2ed530d87fdcf14bf17b275a66280d785cbd8ef19a4d43958540691f1a70949206dc0bd32b8e671b370f6b5a23ac5834d6c342a12ea544b3f76e48ce21ee2fdad9e02cdc838402ce5d6197a8c9a77757a1e439f58f8c567c94b13e4e2ee19d1cb91576d8fc0333a7ad6d033d919635f70980f09d630963e4b8c5377b192faf7d0d39e864c7b66b090810fd1a23f5247d57acd4e959149a81c0ad55cc20c94041d41b1a2428304a21795e57df03ba886673be34782af20d34dffb92ba762eba4ff249817939b2b3a0aebba05ceb11043552ebf81c4561dc0bc709206b039e5da1fbeaffc3954b3621cb783d10391e07db28a64d678850569b8de9906c4e27d89426ed680494c47905840199ea7d42b7361e6267bb6b6765fb10b17f0a8a31ad2e4103875c5fc904855af36abf979256a06e76fdfcc1c81282d02d81385b5beec6337453ba004e67edf41c60169fc62c85c610ba218ca05cf27eff42289f1b19317508f75676b4354dc0e53ab84b33823372f89a3bf0f92adb33699ff7fc20c9d7c326eadf5cb2f3dd7c838578634f61822af5336deefedfbcff2d57636f79d7906ef71859b428c033870d9ca380d49c699393da9cd57be8084f2b46f37824033fbe2d05c4184c55b54cf938d261ecb9cd0c13a870574a46b4122a0d516fbee6df79b14693d4159ef1aea8e476e7cf03a6780e4579435200930a41e1b25bb38f016e9d6a44a30cd8ac589474d6af67b55af1d41a44b4fc8f9e3ddbd371042945d9fd44f2d39df7d8e5c0cc15043af4a75973a1df34e49a9f3c768a479e39d0d4cffa242f420e9867d6b1bc14b6e7601e362b477425bd1b21c61cd7b662576cc477eaf6f92a0e8dec4e6d9659b840ac8375ff040a91a3ba49ba8e2a044538dfc5990f8edbc5ba580451eaaeb3c3a4545590ab15c81974a166eb4bc551a766831a4b6257d1c6e1e1bd3d2e86d6110ad6d17974a8eca7e60a9554f4c54bbb951de1558f1a6cd6a0191395754258d889ae2b1cc0aeba78cd7c211e7a747442020169b6f6e4787036c2434ed51f342146942c4e8c5eaaafb87ea76f9ef46505403810e7b182227db99d8379e15220f57cd41a02bf93058546a041a897eb5efb0559a7a794735d43f768ad3e59de38be82185ea8b5f551384569f39ffee12718a284637574802abc5aa4a3aa80ac41bbfd76379bb7926533e5b0422862eeb0043513834c08fa3620a5d7a6b223b50ea2d2da42b254916478fcffeca0d3f9eddad48976505a5ab84fa4bde8d99bd79f7034000d8bad9dccead47f6bd71f1f831a9914fecfd857ec9f6b07abdbe17d8318d06c1c895e673ed43c2c60af752c241856827bff635c1b48664a2f8d86ef2741644e29466dcfcae456ff053a55095385fe33bb8e172bb159ada1fffcd781738384bc3a52677f068f327c2c7293ab2e349b3594b85ec878a23e6d3b97e5d9eca1b47b9c2ef7e991a5c2952855a9198013d82fc5672dc1ac659ea1c0cdb0d7bf16b3cb4cf3a48e4e2ccf58572fa87d68e7d85a0c89354dd46b9248d3681ee7b62f0e9189dcb8d680bdb6ac9665f6342b431a8ad08c3ec47b018c7a3528c7ca940b06192dd7f10579d45e81ab27c64cfae89027cd26404c6a5a49c914f0dbc891474e7658bb44e4f9e4b62f0587137cbc6f7a683f4f8a35f5a3ac909412be8f3db935d099248ce379a2ac32ce1e335e320b03d7554617dc438d41c28628e021bf9a075a9d0da31da5d5d6904e64c666b4c050e319ef00c5c41cdef5a2d8deb95ef421040bc4f2b882ac9572f3a7536aabbef5dc8df144492c33adc9523d7d7a8c97b934223c9e696ddd9703b8e73d03cb3220cee862cf110d371b14fe00ef47349ce486da3e3499f2bad0031612cfc241761d9843bd2a76d19cf1de9c88763ca9b7742704ac41b3f5440a86bde8a846f89de090b3f7865669faaf18dd8bd2da5e3e02bd9055d2ef0613a967c9202e21724baf897671df69a2b82e3cba69b9deab93ae8588f56bba300a593af03da3546f247ba1fbdd3b6fa1449959d986236528b9d5b203e6e1ff79db63eeb8f6f17e8372dcc91c921eb3142f8a52f4f1c341f104d55689a9e7fc55307d3e635a12de0c94138dbaf7685b6d4a83cf69ea4c55e6e8d05e6ec78cddb0a89c3adcc1e861d3f8092fc3d41cdf47fdb4415ed514d6737c2b1255ec58732d68600e78d7699192d32a25338598a9b1c417b6814fc664552f704a0546328a055426204f430a32cd32d09004e159e5f3a05cdffffda43345d63257faab2c30f614192e412033947134ed08df5374ca5623b1362ea3b284e8ad098cbfbbe127fc3c8fd77e76a562fe265dc814be277f4494b616ec7d2b001d966210856c52d722b673fdab1ece434015d2433ca31f1559837dc6058eb4b3bc2d67f13fcfcfba5eb84344a64e32ab5d00f655991780c19589899c0a911da7989772a1257abb4ece2a913ca27cc9f652469f09923f4f12b4154b1a7c38ffec5240137989468d56f8c561510fadf90d72715d49205d9b41262b19c8925450c79681f420826f823346d177537058edb89bf07f2ae63758f9292b9a3dc732e6a34e8f8864661b57b68b24b6029a39060c06a6d459d8f92e0c6926fe36dc5507a9ec928913507743584ff23ba2c0493ef4586493dd6b6bceaab03c2a791f457dccd297fd376a1d6ba78db7197be1ff8edcee5f17417dd86dcde9ffe2ad380649581a3a24a7db8cf54c494365ce5aa99791e1ba9840ad1dd29f70da3aaaf24750724894106901154b561de7740e8a0d150b1da6dc70cecba2aa088cbaf0d50c1121b170aa6e2eb935a233d12903028c60774a50c5af6b8f2489ea51d916b5a7e874365cafd9f9cfd29381d890fd0649646f8da6d97d431f79f28fa29b1354e68fb8775dd54bf2274f19c4a8f7e2e5346313dbc61c47257422c4245bb6dddd2a40da1ddc7dbd9e404a36f5cd4f27e8be9b3200890347de4067bd9d73f5147151c5d3bcbf330f369ae18fe051301e0ab071e6f1da56da62358c29cbcc1d4e08aca1a211b0d4a24642c5503d93665faca4ee277ea6afb3c8b9e3c00cad376371282208d242753780c0e2a08b1cc072b219503f4bba9704a7c92128821f75bdb905c5c887f5c3b681cd516710b5b7338a55cc1ad87c454697a4d7d04ecae0f0ce45fe3d074a36a3ff456105a83eea83159323807646362493a8b112ea69e805802d8c8e0dbc615b1bce6647406e5f743573fb389a08afdc7d08e53c26ffaea68bbafd209ce598093d12c9c8aac2f741519781ecf96db36e5372e8e4935e34f273f2dc0bab5e6731b1d0c2f0fec588594aa7109320acd61fecdd62fe4c40d7bb60d8aaed7223f29c9e5ba75072fec504b26a5f485519f8635cd1dc07aafa29d2625b781878e60ae939f468d2fb431f9da6f6653da290ebcad9af3bfe8bd7c12d8293582ca6f70b05df10606ef4b2bfd1ac873428bfa6ac5e20aecd4bd78953acc7c9c34cd1d4dde77beb11712acdc23606e7fa2e3d1bc33f12407801a33b2ed688f812aeb2c5a3af53f35c55976836d2e04d12ec8c1e8ba48c5d035af58aec12896efb4dcaaafe11a188e50a56502842af17bf6e3895fd0e68ee5dd7117b0941cb95f633ccaa71a0f1c86f0313ab0e28a390c61ac7696666c4efccd25555c3dc4d62b9336da3dbd21789152cb5bc61477ee46a266c60fdc2c0d65aad52d7dc4e01332b56efc086dfdfcf70e4d6dd4dde04d54828845b9145ac084e27031e1219eb4262d6a62a55ea8aabeba0a0a2dd0f16d57f53de853d206d6cc89d2eb210fcc7f7c0730a204e7a0b13d621bbcaffa9ec2dc558b5ba4ed95636ce0dd2e9c72133626af0e7f2b5d2e9023eadad07a75e5d49a0b51738af401d0814ed3d381bdae2a89a1bdf11be1971e7a0a5a5099adb7b771f814552796c6947c35902decbb80b1255e53f01561c756efd9e77c5fd9e3be9ae470851af95dad2b17719dc0dd15874e037640c5c8edbca557e8cd8be83a787a0cea001f10955c9a8bdde049bdc6ea1cdcd550e0d65bc35e565013fe8e96f70f33f89a3c86f7ad89c0f86adc1e1650b6277d2cdbc1991272dab0ba24c11c1fc7bb55f9f9cf3e8c4fba7e47583c99901f5d51e2c54de5875d0f8f9fa5f63a17d3f6c445988a96d73807f0ee5a550f1f2e11aa235b6ff01205dc752b71b6ba3e88ae12fe0402b576e12127293765082871b477ca846dd34fd8730fca7ee899b82aab01ad05612b4c519e9a7c6ea19b9d55219ab2211d93485eb10305cd5c2c147d64caccadc87b8bde62c7d66272d6ed393c6885068487cc9a6b81bb2a0783f3f4b059bdb6f76cb32bad527cb72c557ff26702bd6492b80fc43dc44ec1204c952932d53274b6ecf43dc08a9abaf478bba26539443b154fca22f302614d78c19818e59ebe0a299c2bf90eaffed4262586abecdda87b579f86fd2f25fbef061092479ab1ddfdc2507fefe3f1614f417a7b830386fd1309ebc57c81f42f2ae375a5f1ccd3e849329be1548264ecdc6acd66aa09d00102ba0328290463b602d24356c194d7ba00887d55bcda09f3f051caecf3f7aa1a6b01feac852e8ffb0718b25cabfaf931dedf2e583249a5f1ec1d9cbfe6940da60cad0be9065ca8c74d5f0ef2939209ed8427f360d1319c251499dba91bae07ceb44e7ab8eef91f77d00134b342c4970c739ce8f4ac789a1e2e3d3daaa3022f841be5888f9e067eccf29d01f08a44db8db16663395d9811450c704bd637e723f1130cd567ff9710244872abeab4b7bb61db01a9cb00b321ee1cce29e7f66bd6b31fd1808c05e08b0fd8b7e5bf6b1b72f7a1d805cb9e6fcde6d8048e5f96bddb76a5eb7ef5d6d8b07d4a89baf5886d04a50da866865059613decf1cd9282c71cb4bea4f6fa38a596637b7361dd99a3a30d88fa678de8226f3fd51923fa7d3fc1b37b999aef306d952eb40c7191a849f0a4e9a98d4e670376e738a0a8d1b9fcdcbf7ec4668b67c2e84ae827346fb5aadaa631a28444f0f74b031d5c7f3d043db6655d7439f93c465c0ddccfd863572dac0bd169c45bda152257dcd829a567ba8f1c7a47ebc168bc431906c7f66855a4af35e54631da2d3883ec6d8e3a561125f6fdaa45aec1ea619ddfa13884c83a01b3d1b98f98b3c9c66d73961e5fe4261c3dc2e662ce4337816f4bf5a0c11d984f288daa8b85ab39575d423c2d37d7276dd9d68a5ae7ca0862bd8f07259ab8916bf0502d92e0bbb661726b71c2455d5bc2b240ba5d73887952baafb6ad89e578208627dd5ad0ef08e7a46a8aa0fa0cca764b1f65288065bd0e1d5e46e6ab6a952f1cbe75cb1889d222cfe4702f88f4952f4604add56e0acf5b32a0cbae469a9e8de525f21aa5bb0dccaec5b4b68ddf7986abdc6134caae4854ad4dd561b240d2dcf8b7eddacaf6d3453a4c5fa6bccb5a0247170dd016498a6a112a6f8f35d59f61ec6efba89f1e0a0dad2f36a287dcfd624bbbe2f02f3836d600d04c7c81cee91b137b249ea57ff28786b2797ce1a07742d0681f344886ace93e3e74cbd1a2a9be29b15fce577abcd19f9d89334a651fc8d44472331b24b2b72350e03d1dc11c02fa8b3ced9345621aa8c9ff52fbd19fb55c045d02f9df52c685bbde1cacf91517238d416429733c9b41d77ddf9580504fd3a5f85de6d5d094f67c226f5f65283c6eedf76af31fd48bf4f663d445412871a6c2a9f4c1ee62839f196e2a2411629ad553ad135bbf6431991e929841c861ba42a3cae814dd60a32f2939169327831c9433d7c9c2b2d1b7938366f85b3080938f745088c9fb646874ef59d03865144ba631c19a1f7d4d00524aca1761efd27c216b32623307e0f35795566b123d87d7097c5d6735202f82d91e2ccbb9850b9f8170f05e98e2c64f94628151e039ce234da2d1e48f239ccf401a179e71395d38dba4f84b8fbf36ffeaa565809c9f0acffdb98aa30e495d35a390de1a932fe712ffa5d1eaaf7ea600f94a02841b36d353861693f6b6c2a6c03a1cd93d01d31652d909f010a860f5abe737783ffd2dd079dc7e317e091f2d2dd632aa594786d30113f847df35fc81921afb1bfd8dd7ad18c2d4548aaf7750d5ef11dcb3887fd314da90b1209cd5121ee14fcc1b7dbae8e7e11ffe9ad81dc4040eb9ca33225e9dce3bfa5c572e7fc1ef16d9691263f1609d52054069119c1d334de41ea78a480cf218a06a2fa5eed87fa11df810b1ff7db7a21385d81d41d38eb80c4be34a8bc432b46ab128167d74ddcfaf7fdf0c8b6104566e4abb556c27009bf3093d1c3b3b163b5a73e72d1a8eaef9afa94c73109a49a6d64c986999cce42f2148ec5d9902558adfaabadc441f5e05f00d60e87d4bfa8e2444766aa1052db372c7e4249278a3bba64adc7c63ace4feaee7aae0aa923f0339d8478a64329448706bc2a51cf5a4be4eb24da2bcd6517db76fc81b6389cd8d50e6db259816295c1a4e16cf2c8d0a1c1fd74d69023ed590cd2d88ad9d96f6a21cf4da94d87054f65e2f619cce09bc8dda7de570a8b1bb80312929984b9a0cbc33654f76030ab5e579aeae548b63065ffcf901587420bd4dbb0e42f2266869affd6863ef0920729e34b53ad913babf5b6cfc9ab57ee503b8f222df0bcea859668b3373dbe735076000", 0xffffffffffffff32, 0x0) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r0, 0x0) getsockopt$inet6_tcp_TCP_REPAIR_WINDOW(0xffffffffffffffff, 0x6, 0x1d, 0x0, &(0x7f00000000c0)) ioctl$FIBMAP(r0, 0x1, &(0x7f0000001880)) close(r0) openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000040), 0x101041, 0x0) epoll_ctl$EPOLL_CTL_DEL(0xffffffffffffffff, 0x2, 0xffffffffffffffff) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x15) r3 = socket$xdp(0x2c, 0x3, 0x0) setsockopt$XDP_UMEM_REG(r3, 0x11b, 0x4, &(0x7f0000000080)={&(0x7f0000000000)=""/15, 0x200000, 0x1000, 0x20, 0x1}, 0x2e) 07:53:34 executing program 4: unshare(0x26020480) r0 = socket(0x2c, 0x3, 0x0) bind$802154_raw(r0, &(0x7f0000000000)={0x24, @long}, 0x14) 07:53:34 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000280)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb(cipher_null)\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) sendmmsg(r1, &(0x7f00000094c0)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=[{0x10, 0x117, 0x3}], 0x10}}], 0x2, 0x0) 07:53:34 executing program 0: r0 = openat$thread_pidfd(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) fchdir(r0) openat(0xffffffffffffff9c, &(0x7f0000004400)='./bus\x00', 0x5a042, 0x0) 07:53:34 executing program 5: r0 = openat$binderfs(0xffffffffffffff9c, &(0x7f0000000000)='./binderfs/binder1\x00', 0x0, 0x0) ioctl$BINDER_GET_NODE_INFO_FOR_REF(r0, 0xc018620c, 0x0) ioctl$BINDER_ENABLE_ONEWAY_SPAM_DETECTION(r0, 0x40046210, &(0x7f0000000080)) [ 1104.636136][T13990] syz-executor.1 sent an empty control message without MSG_MORE. 07:53:34 executing program 2: r0 = openat$capi20(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$CAPI_NCCI_GETUNIT(r0, 0x80044327, 0x0) 07:53:34 executing program 0: r0 = openat$thread_pidfd(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) fchdir(r0) openat(0xffffffffffffff9c, &(0x7f0000004400)='./bus\x00', 0x5a042, 0x0) 07:53:34 executing program 4: unshare(0x26020480) r0 = socket(0x2c, 0x3, 0x0) bind$802154_raw(r0, &(0x7f0000000000)={0x24, @long}, 0x14) 07:53:34 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000280)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb(cipher_null)\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) sendmmsg(r1, &(0x7f00000094c0)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=[{0x10, 0x117, 0x3}], 0x10}}], 0x2, 0x0) 07:53:35 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$devlink(&(0x7f0000000180), 0xffffffffffffffff) sendmsg$DEVLINK_CMD_TRAP_GET(r0, &(0x7f0000000400)={&(0x7f0000000140), 0xc, &(0x7f00000003c0)={&(0x7f00000001c0)={0x103, r1, 0x219, 0x0, 0x0, {0x1b}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0xffffffffffffff6b}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}]}, 0x1e4}}, 0x0) [ 1105.155416][T13996] binder: 13994:13996 ioctl c018620c 0 returned -14 07:53:35 executing program 2: syz_usb_connect(0x0, 0x2d, &(0x7f0000000280)={{0x12, 0x1, 0x0, 0x17, 0x1c, 0x25, 0x20, 0xbda, 0x139, 0x4025, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x1, 0xbb, 0x87, 0x6a, 0x0, [], [{{0x9, 0x5, 0x1}}]}}]}}]}}, 0x0) 07:53:35 executing program 5: unshare(0x400) r0 = socket$tipc(0x1e, 0x2, 0x0) ioctl$SIOCGETNODEID(r0, 0x8904, &(0x7f0000000000)) 07:53:35 executing program 4: unshare(0x26020480) r0 = socket(0x2c, 0x3, 0x0) bind$802154_raw(r0, &(0x7f0000000000)={0x24, @long}, 0x14) 07:53:35 executing program 0: r0 = openat$thread_pidfd(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) fchdir(r0) openat(0xffffffffffffff9c, &(0x7f0000004400)='./bus\x00', 0x5a042, 0x0) 07:53:35 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000280)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb(cipher_null)\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) sendmmsg(r1, &(0x7f00000094c0)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=[{0x10, 0x117, 0x3}], 0x10}}], 0x2, 0x0) [ 1105.662962][T14007] netlink: 3 bytes leftover after parsing attributes in process `syz-executor.3'. 07:53:35 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$devlink(&(0x7f0000000180), 0xffffffffffffffff) sendmsg$DEVLINK_CMD_TRAP_GET(r0, &(0x7f0000000400)={&(0x7f0000000140), 0xc, &(0x7f00000003c0)={&(0x7f00000001c0)={0x103, r1, 0x219, 0x0, 0x0, {0x1b}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0xffffffffffffff6b}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}]}, 0x1e4}}, 0x0) 07:53:36 executing program 5: ioctl$TIOCL_SELLOADLUT(0xffffffffffffffff, 0x541c, &(0x7f0000000000)={0x5, 0x8, 0x1, 0x7ff, 0x2}) bpf$ENABLE_STATS(0x20, 0x0, 0x0) r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/diskstats\x00', 0x0, 0x0) read$FUSE(r0, &(0x7f00000020c0)={0x2020}, 0x2022) ioctl$VT_WAITACTIVE(r0, 0x5607) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r3 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f0000000fc0)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000700000095000000000000009500a5050000000077d8f3b423cdac8d80000000000000002be16ad10a48b243ccc42606d25dfd73a015e0ca7fc2506a0f68a7d06d75357f216907dc6751dfb265a0e3ccae669e173a649c1cfd6587d472d64e7cc955d77578f4c35235138d5421f9453559c35da860e8ef14142b2a3e314422b854421eed734ceb1efeecb9c66c54c3b3ffe1b4ce25d7c983c044c03bf3a48dfe3e26e7a23129d6606fd28a697a9d552af6d9a9df2c3af36e0360050011bbec0727cb3f647535deb6277f5696833a71011a7d06602e2fd5234712596b696418f163d1a13ed38a682f87925bfa753f541cd027edd68149ee99eebc6f7d6dd4aed4af7588c8e1b4efab57644ccb1973d7879b70a70001040000000000000000d7900a820b63278f4e9a217b98ef7042ad2a923132f208fd8289eaf8cd50cbe43a1ed25268816b00000000000009d27d753a30a147c24a48435bd8a5686f2fccc33e3e34c3969c5ad781302d40e97a8ad10ce0cbe17366d5ac6af2fca2360a15b8d5b1d52040ef7b28d300747877e176fe4c4b8e40dbf260f5a9f7eee30293c1b163b795d0aef4deb851a3fc9df569dc8f39943f889008e1ec914faa9e6cd0b3b4b3b5dbf48126516c3c94f1e376459e70b459543c4ac42e53b4ad4c77cff373ebd95848f01864e456969cd28000170996016aceb583d95dd148a0620d000af489f9a900000000a0dcc36b3d7c734a9cce0439f8ba92dd66afb9d74aa222038994dcd3e7784dbea1e51a15b0f1a040cc63177f8fafa3192fc8e5552da1c882ab8dfe31ad1a0968faa47c2069d6bf09c3aa4f0fc128cb578d99b08a150b4cc4b22f6a464c6398c952519818a44a1b223ff502df878c5c276588ea478e328e8277e811b99ce1acfecaf8e2c55ccc4b8eae0a61635514e99ffd438784060f23ba74c0b30b1180d935832debf76d789ba1d436d116394534e88492a42b8bf050c719661a2dc50b3a1dcfbc871e5c27e3d7260f6fa589e44845f6b49c12e89291398bcb3c06ef1289f74e0b0e2cab592d35f82a69e72842230b3076e8e852f6efafd8a171c616b1f0fee6c4711d7aecb69746064d2c096554975d605ebebf3d5cf32a9a09915ae3f3d4eb96615d7b237da56cd5e9904a19e145f25b6d98eb2c019967f553b61d0e80d6913cee9f8d18469a654a239a8fa85debbc02846ac5791278f18c6759e3b513a68284d2efc30587e433431b2896a3bd48020af67e9ac071b2dd6dc3b9efae4ff03558fa619aea909c7f2416e7e7da1c51ccc7e6ac27412f728dc6d80da8adf317ca863ed683897321f8c8bb5a5d953d6783b7a06353ee496bbdff41bb8cbb4534df87756eb99e330253cf5d14aadaa4aa1a9648a38f07e2d302b4165983db4f7b8972923fffa8c03c288512a3a38fbd7c816a44634f7a03fab30811b7b93257bea4369ba46024dee5e9b0b2c3d3324e8b7c1f99ab9bb3f498"], &(0x7f0000000080)='GPL\x00', 0x5, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000140)={&(0x7f0000000100)='svc_xprt_dequeue\x00', r3}, 0x10) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f00000000c0)={&(0x7f0000000080)='sched_switch\x00', r3}, 0x10) r4 = socket$packet(0x11, 0x3, 0x300) dup3(r4, r1, 0x80000) poll(&(0x7f0000000180)=[{r2, 0x1004}], 0x10, 0x2004) lstat(&(0x7f0000000e40)='./file1\x00', &(0x7f0000000e80)={0x0, 0x0, 0x0, 0x0, 0x0}) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000001040)=[{{&(0x7f0000000640)=@file={0x1, './file1\x00'}, 0x6e, &(0x7f0000000540)=[{&(0x7f00000006c0)="8a8c49f6400867374e92895453002e7e2dccd1537d7e57d49cdf645963815fa415ab4b373efa3fa8e568eef7671c8d52cb064793d4d15fc069f9acabd35b0fc49933f89ed9646a8e859b98b04b88abba1b3fc6637adc04c572057f26ea7d43d4d3203604d1e33b03d1e2a8156d8a1b8bdaa13609961855d5325b643e0720e454ff8faa09d3d4a3a1f657ffcc2753903514accbc25e5c25778fd472726df70d623f0473", 0xa3}], 0x1}}, {{&(0x7f0000000780)=@abs={0x0, 0x0, 0x4e21}, 0x6e, &(0x7f0000000900)=[{&(0x7f0000002e00)="3147217092b6d282f30dff80ac0c353f3cf5ce93c71db5bd9ea778d925f5cdf394f4fc2bace7bdcc75b578d1023e0f607b42738ef58f08ff459d9715e66c4979da1d5de532c19b590ee16eb4ca8e86291dd6e284170f6adf5ef6dc897aec769ccaf8050a4b0dc349a07e1bc7b74f3988319536eab154dac838ed5ca2fa901a622abab63c55f7197d39d13d12e8d946dcc65a280201f6a076fb388d160c0bae51b0af6f0add9a68873a054621b4708d1c770c41df30cfe801716aca7723a6548f1a6c26ba62877073be3f0551c65de7c3680c19cf9fa496452a1ec0aa29de24dfef9545b96b9884c2572bdc5cd2ce5aea68975d2baa72b7790d4d8d2c3ac7a7ed2019fd02f5bc45f096647ce9f8617310401db1bc1de0b6c44ffd6903a017b24030f08027f159e44c88f584c6eb6722c413362442cb6fbd7379ed9ece352a29def0643f1240c621dc2060c806721c38ccd80c31c5eaa0f078e0aaf6d8e0fd9a658e3e9b6e30e4c8623126658e795351eedcb6057811e53c9047a49e40cd553daf37fce2a2d0b570fd8caf580eee032a48e38bffb69530a0f061286df355bc153576bea3a455fe9b2a03452ecd1f7342fce33a04c30a0b1895530c59c49f0b452afcdb66a4609073feacbda20972634e39f708648ed6f0d93b7a05d2d923261e50bc14b8ed2baf692f7922bc990f936ca97b8746904116539f021e8e5638d793cdefe7bd47a9ed478a9944525f0f76cb79cfc82f6a8d11472092cc6d13024e36a66ba55cb9dd0135b653f9063cd743b8a89730bda77b828ef9f953b7e22311deb29986a99139d8d1fc77ed83cda1a1985068264513be9641546b10080ea8001b6913fa7cc47cbc23e385df2aa3e4153cd65b5cd1638be5a16609aaff8a834746e6e3d9e1b25fcfb2b145c075a07fdcb6b8f2aa8bd831d8b5b59b23c43f7b377c0466417032783189afd2cfdd3881dce6330b5942bab4c0defa20dfcea9ba95100df5e8454fd0ce54b9146ed41013d99476bf32c617f93b58abeb095f9c998cc579f4ae45b985ef6d130db817bab36902e4abe517b9e4cb2665680639c9a5bde41d58ea92232aa99d8da5483f43c7c5f40bd930c7ee1691eeb9f564bb75066305e5e6f68291f2fd84055f971e3470e9119fb28575fb5e734660d413a3301bfb23a73eddea28400045e625d5b089b17dfc4749f6b25304f052df4a0519be94498fb86a65283bd00386d8b8e7fa01701c105c86c5b799a4338073e1efe3cbbb96556dc7db84c3bd70322a5b8e71ebf2a60b5a1d081bac211c422c9fe48eabcba8bba71d31bdcc9f52b5d516632a375bb303551097065bd368a96a5ac9a8bd351b417571a7c7729f7d220f20866e48fc0c84ecc4fb6156350d5e9c5db2afa1665088cb73a2d497cd6a39e45a44174ea0c3d5a804f365dae926e0cf3c7bab6d77c89f79a34f8a6cb87ff629aa96d4583de7bac7575dad9c2f433ff199fe0ddf4f0ceff0e73fd5287f89909b77976d2dd8559dfdee4a845882cb39fe0b3171415a8f3aceb46a72a0abc7a3c08391adb2c388a49f2f846d2c3e93a04704b42be860454beb2f073d5b404c7bec239c64293460c35e8099d0b64c172319a526fafd4fa7c27b01e27e949bdae9d46ce82cba0f733fed9e8482ff454b692b7e137094fdd158a5e1c6995585f319ba1923b1304d63f924cd63457b62e0a620e61f72d237771d17508d5b8317f64c2f4a856c8cd372f29cd2420b535841e32cba2011f28f43f267c6a6adc025e7bea45cd3532e7d1c097a76ff7b066f821fd4081f8393861cc83bea7526dd0c73d6b29e19b32c495efcabd3e5093e2d9779170879408eed4ef5afb09cac7e6a84fc545f6d0e20b8e383af22ae57cf63d7357ca4d73406ba9dce91ac33030a48f0de46b623ec25ab5c73e6b3cb24566cd12d0bc7bc5b526fa8a5fd8ac1a798d6dc21459043f7f2ae5551241cf6f554ed2f057050df126a8d3a45a955032bc2b3d01d82b0c35a6be76046750076dedc07e23abee8101847b5321b7dca89acc3008a318e002e9c2212f919a29b93199e46d7d263bf33e2467adc1b6389f69e157fe8b85f08e020e3ee48d3a3dc072600b697692d1f2d50282328e0b9775705c8c38a6b3fba2b0b03989a9d106fe153cedd68135e89eb7e1ed739c327ab33cb1a58255836383256df478a72d9d3f0d0f945b5dd307b47d7e8488bd36d529b58a9bb4fa7999d77c13c9a723abaaa11f3e28bc9205a070f0f757140aef652f74524399cbc8fc0bb25d5ca9046d285110eed3128bf1bc1619063ee4ad617353d38ddd663fad8a29b15993a2970fd5b375ed7dc16cdbb439d2246ff9e453864f21e75dd7eca7c08be0ceabf2a3734f3d95cad8eedcf28b42205b5fa212efbe0731789a4aba2bd5095c3dbcf5ad14b0238b5ea56a0d136432c16fd685de548a9d9ef5aeac2c3f600245c17a63d3b9cfd5aacea2da2015d8503dd6f8ab1c4d4865b9bc1daa06cd6154be75f9c63167f3dfa574b142db5e9522bbf09d5f1407fd70937d8c2f6222d823a1bcb82d15d918af0ae2dfbff463e55aa058e5764a2c2662e74e7f091e527b5e8d3aa5b3b27a6b05deeb0ea9f7b61b9ae6950808dd9006058d218c94a6e7d2d5a3e8c917bba25f6cdfdb4a75970c5af444facf293cc3047abee1a6107db5e34758edac1eaf5a9fc3f7c65744f7a0351e32a03e730d9209907b6c85bd86a2d2952bddb29824d68e6bcc1824c12fa6e533dc5c7888dbce368f7e4a49d6d33864ba047b0116e07e2c605ca835ad2b7697aace8338475585b0ca9d08cc778e562793a1fc552b982023e9f2ddd89f03214d5128eea51ece7909f281d60bb4a25b221e06ec4d0d127c44b6438a3a3155e54e72e929d92b7e0e008eabd57d546bbb618ef4dd103ee93db12f1a77eb09559e160648195a89d34e78728062d15b35f4e1f768ef4d62a077fca8d2e2a7f59be04550610f7d23bf49ffdb625b13b55de358cc5b201eb1e9e48e2b327af81dda9f769ac7916c655a26658c1e756daff8fa9f805249637646d9f2117a433d03e3856a50b5dd6659557474455e838b41ce9187a131fc57522ea84328cea42927b32713c38c72f1bd8799f5f2be1fb1e09a2ba2a79128f58cf6041f576e416cd5d88f5e8dc0335fae8853d20fee2a0e655aa59058f45235df472b3936a80aca2943329ff9c801e6398f1e6f55d140b5b546d3ad3e2fc4e148920da69fcd6ac4d8b73dad4269569e6ffcc073862eedc4f46d2afeaaa0a62f86402e318bed514f7a77cfee22fecb62ee9363db5024b9240748b5906bd7c27d3e33a3142341333d01711e551fce518a59aff8dda654e09caeb30d44f3c65ac5ae9bb329954013adef13f31604bcf87f32b9d75521a8ce9a6a30a2b328478fbe724e62c5707eee256203ee553fd937bfad926d4ce95ff94c5b666ed3f78b6b9118d3c08a53206d2d7307da2c7e363a0534e234bdd04a5b38d00f960cc7bc559aad6fd6f6d5ce088548fcf51ff7926042324ffa7ede391451da9bbbd6a76b6c51ff091827c9d6457f06158fc3c2f922d5437140bbb4a33dc850dc15c7bbd77aaa0b100d8a3b7df611e55c3c17898a985dcd16d88d24ea074198111bf7a1cd7a7d7eee2930c02e548ae06af4d5bd3dd8ed850c00f8ce94b9c8cdc0af53901f43f6fb0eb74dde2e0d5837389616c94a8cd13ba73da5a5f94cf7ef6ca33c5c0c1b6eacc5f4af21209f21e293f1702e2d9f7643bc9c41d57abd7809aa75720ae1dd2758707b066fa993c7f00856b90b31a20991b0b6e545d350496b56e5d5be1f26aa50258f061fdc07eee84babbf34f7089f5062c3abecbe44228b665096879e54fbef19706ff04b4269137f8620d46918bae4c3d553055b3ba88e438c857230f5d6891c421bf9217628455ff60c9c84c1c5b7738d5d865d51873d979d20f5cf4074f3fbb4798a58dc558b87ffe9542ed93831a50600384b2fe6bc010ed3b8a2802543c1362ffb6646ed1a277f99c7e51d18f5d2b0291efa3cc9d5960b4dca0f63a824a04537a0d96ed30c0050a92ba2057d86197e1d2f1ee3b2af0ae5c4369e3bd573495ddd6300be15af2d19f595b2aa8b6b6d497ade0ef5838f1d82ac20c45d15c661ee283f26ca37ffc998a860d644cbbabc4bcb2b28cdab10a5a8b290cdbee04d44d4da26790061ca89ac05a41fa9704a58f3356b0068a6a1f580af859fcca72b039c68fc005c23367e7c6553700d87a5b67e9218bed5aca9c632ae7854278af9578945d1e3809dac6ca8cc5eb9e0a368f6592b6be27dc18ea433fd97f825ea99880dd08de37ad49f17b41b673fc4855728a984b3e591bc651184b795a9c97698089bebde40d078d3a121067618e4b2654e3004590fb82178c5fe170534471c120e0a89ff647932ef6559ce36ece4b719756c09eadea1bfaf11d81c70965c108d8393b98b1530c91edb126f4edeebf8ec4bd672b77a425636cb14bbb300201969849e09a93299d5fe83e33fd9f9b1d221c76abcbce8ef88089f2d28c7b4cd4fda720a19f9288104d3a6bc620d2daeea877aea7ad36370ffce6db60801bf8e56464ef824560a325b4aa365bedd15160063b75561d3b97855cdabf087472097660820bcee3bac86c5a5008f3de02a6dc94bb03ccf19223cebf4923256eb855440c8f80c790763d1560d3a6378f49087764d6d23ea9ec205f63aefae3ba9bc2ba39ec79899d0065ea52beb425920be64ae3a6d6b913709e95ebc6026a3376bef7dceb75a3925df37fd817ec29aabd6f9fe9faf6b80d750fbb6ca8c864f9d8751d8a2ddeef652c7342d47af0b2c4b59ce8db59393dbf4aafbecda2daecb01cef43fba126bc1d90e576c8da664dc90d02915fc29adbd03e5fc7f7bf9c1bd4f3da1d682770f0b962bbbeb98693848dacd324369588f2938dceb200fc96af2f038f31233e5584d7b9189101cd8535bbaac4ae9c38fb9d6234b9dc178dd4f86833a3adc7241ef84889de1682f6654615d9bec521243ebe8170957977b4dc31ffb9f0aab0e108a53482983f775a097d67694f5ae99bc2d6789701a734b9de9e918b147b289e9c61feaeae54c74b754f1bbb743c16a1d69a158b5a2f86b5e89babd48396df5c3a33d84b79795cb553c855d280f586427e2c61b9390b6a1c56c6a82c1b193769d7fe96452258ace8e97fd7f620cb9014c62a2dbf473993ecc5690d604c06696417f621cc513df9e0b2414e3f681697dfa26c4d1912fd0228bbd6a00e7fc4b23f6b3ad118d28dbd4c5c8089a23e4cb5bee70e9ea37eb6b0d6075b8df26ddbfd6fd020a4e69a609fb2228a9c1ec21ef5e0a681fb7cde7bfeb2194165beac5b46e61996308bd218c455c1d1980350c6c93dd0eac6d7825e9f74c9f1c161aebb6c42c6de510980e3b3e37afc04daa899225e89b5dc6b91952552ba8a99604eb4bed91e07371cbcb6516b15cb70e2ec1ab79df4ba9c96340b2e8653e9c22432d5bf216fba55ddf7b5808fa8c79e52b01851e2292cc6fc1a39c37fdbc180aa168c84070a0ea39fcf9adf1153e50fb1a480ef0aa880ebb7a58506a6cca41b99b15ab8099e632a92aa99f748125874f3aa30ac401e2b66c0623d04fb4ae6b80c3745010c8234c94099ea14ef51669310ad68bea9f778afe1d33e3586b05659ffc0c97a94ad4d3b11e55230a089cc102adb483536ad8f6b54a56703799fd3a78c61bdbf1c9dc411e1f2a7566400e34e67500c1de1c1ead48f52c9d7617195c57221b8ee392e894c82963be433f8569e9486e450f53559", 0x1000}, {&(0x7f0000000800)="81df4992aa00930bcbd777e2606ef5fd9263ab8776355d0eeaecb976803cf0f8d44326637dfe1490b33fd5953d437aadb60294cd68c380ea53f9fde0f02aea576f695cc0a8808efd61fa5a885eae5e3b9193ccfd432bd005002846de82a5a5460454bdb0e571242ccc1e8b6ba72f9a0b6cd17bf6e75f90d6c7fc8ea3b4ef85c2314fe0e4be2df88a8a8ce774f776e03abff257c4a0b83901be877f38e4ee034c03066bb5fa92ae29e5d296a88ebdd2397f271f05884c79cb50de41", 0xbb}, {&(0x7f00000008c0)="824b793ef60a962c5c3044ad4d", 0xd}], 0x3, &(0x7f0000000f00)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0xee00}}}, @cred={{0x1c}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, r5}}}], 0x108, 0x44080}}], 0x2, 0x20040800) memfd_create(0x0, 0x2) 07:53:36 executing program 2: r0 = socket$tipc(0x1e, 0x2, 0x0) setsockopt$TIPC_GROUP_JOIN(r0, 0x10f, 0x87, &(0x7f0000000280)={0x41}, 0x10) r1 = socket$tipc(0x1e, 0x5, 0x0) setsockopt$TIPC_GROUP_JOIN(r1, 0x10f, 0x87, &(0x7f0000000900)={0x41, 0x3}, 0x10) r2 = socket$tipc(0x1e, 0x5, 0x0) sendmsg$tipc(r2, &(0x7f0000000240)={&(0x7f0000000040)=@nameseq={0x1e, 0x2, 0x0, {0x41, 0x3}}, 0x10, 0x0}, 0x0) 07:53:36 executing program 4: r0 = syz_open_dev$video4linux(&(0x7f0000000640), 0x5, 0x0) ioctl$VIDIOC_S_CTRL(r0, 0xc008561c, &(0x7f0000000680)) [ 1106.302953][T14018] netlink: 3 bytes leftover after parsing attributes in process `syz-executor.3'. 07:53:36 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000280)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb(cipher_null)\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) sendmmsg(r1, &(0x7f00000094c0)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=[{0x10, 0x117, 0x3}], 0x10}}], 0x2, 0x0) 07:53:36 executing program 0: r0 = openat$thread_pidfd(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) fchdir(r0) openat(0xffffffffffffff9c, &(0x7f0000004400)='./bus\x00', 0x5a042, 0x0) 07:53:36 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$devlink(&(0x7f0000000180), 0xffffffffffffffff) sendmsg$DEVLINK_CMD_TRAP_GET(r0, &(0x7f0000000400)={&(0x7f0000000140), 0xc, &(0x7f00000003c0)={&(0x7f00000001c0)={0x103, r1, 0x219, 0x0, 0x0, {0x1b}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0xffffffffffffff6b}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}]}, 0x1e4}}, 0x0) 07:53:36 executing program 2: mkdir(&(0x7f0000000000)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000280)='sysfs\x00', 0x0, 0x0) mount(0x0, &(0x7f0000000100)='./file0\x00', 0x0, 0x100000, 0x0) mount(0x0, &(0x7f0000000080)='.', 0x0, 0x0, 0x0) mount(&(0x7f0000000000), &(0x7f00000000c0)='.', 0x0, 0x23080, 0x0) mount(0x0, &(0x7f00000002c0)='./file0\x00', 0x0, 0x80000, 0x0) mount(&(0x7f0000000080), &(0x7f0000000240)='./file0\x00', 0x0, 0x865410, 0x0) mount(&(0x7f0000000080), &(0x7f0000000140)='.', 0x0, 0x5110, 0x0) umount2(&(0x7f0000000040)='./file0\x00', 0x0) umount2(&(0x7f00000001c0)='./file0\x00', 0xa) [ 1106.931516][T14033] netlink: 3 bytes leftover after parsing attributes in process `syz-executor.3'. 07:53:37 executing program 4: r0 = socket$inet6(0xa, 0x80002, 0x0) setsockopt$inet6_mreq(r0, 0x29, 0x1b, &(0x7f0000000180)={@dev={0xfe, 0x80, '\x00', 0xd}}, 0x14) r1 = socket$inet6(0xa, 0x80002, 0x0) setsockopt$inet6_mreq(r1, 0x29, 0x1b, &(0x7f0000000100)={@remote}, 0x14) r2 = socket$inet6_udp(0xa, 0x2, 0x0) setsockopt$inet6_mreq(r2, 0x29, 0x1b, &(0x7f0000000000)={@dev}, 0x14) setsockopt$inet6_mreq(r2, 0x29, 0x1b, &(0x7f0000000000)={@dev={0xfe, 0x80, '\x00', 0x26}}, 0x14) r3 = socket$inet6(0xa, 0x80002, 0x0) setsockopt$inet6_mreq(r3, 0x29, 0x1b, &(0x7f0000000180)={@dev={0xfe, 0x80, '\x00', 0xd}}, 0x14) close(r3) 07:53:37 executing program 1: r0 = syz_open_dev$vivid(&(0x7f00000013c0), 0x0, 0x2) r1 = openat$zero(0xffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$VIDIOC_QUERYBUF_DMABUF(r0, 0xc04c5609, &(0x7f0000000040)={0x0, 0x9, 0x4, 0x0, 0x0, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "03000140"}, 0x0, 0x4, {}, 0x0, 0xf6f36000, r1}) mount_setattr(0xffffffffffffffff, 0x0, 0x0, &(0x7f00000000c0)={0x0, 0x0, 0x20000}, 0x20) 07:53:37 executing program 0: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000280), 0xffffffffffffffff) sendmsg$NL80211_CMD_REQ_SET_REG(r0, &(0x7f0000000380)={0x0, 0x0, &(0x7f0000000340)={&(0x7f00000002c0)={0x1c, r1, 0x1, 0x0, 0x0, {}, [@NL80211_ATTR_USER_REG_HINT_TYPE={0x8, 0x9a, 0x1}]}, 0x1c}}, 0x0) 07:53:37 executing program 5: ioctl$TIOCL_SELLOADLUT(0xffffffffffffffff, 0x541c, &(0x7f0000000000)={0x5, 0x8, 0x1, 0x7ff, 0x2}) bpf$ENABLE_STATS(0x20, 0x0, 0x0) r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/diskstats\x00', 0x0, 0x0) read$FUSE(r0, &(0x7f00000020c0)={0x2020}, 0x2022) ioctl$VT_WAITACTIVE(r0, 0x5607) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r3 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f0000000fc0)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000700000095000000000000009500a5050000000077d8f3b423cdac8d80000000000000002be16ad10a48b243ccc42606d25dfd73a015e0ca7fc2506a0f68a7d06d75357f216907dc6751dfb265a0e3ccae669e173a649c1cfd6587d472d64e7cc955d77578f4c35235138d5421f9453559c35da860e8ef14142b2a3e314422b854421eed734ceb1efeecb9c66c54c3b3ffe1b4ce25d7c983c044c03bf3a48dfe3e26e7a23129d6606fd28a697a9d552af6d9a9df2c3af36e0360050011bbec0727cb3f647535deb6277f5696833a71011a7d06602e2fd5234712596b696418f163d1a13ed38a682f87925bfa753f541cd027edd68149ee99eebc6f7d6dd4aed4af7588c8e1b4efab57644ccb1973d7879b70a70001040000000000000000d7900a820b63278f4e9a217b98ef7042ad2a923132f208fd8289eaf8cd50cbe43a1ed25268816b00000000000009d27d753a30a147c24a48435bd8a5686f2fccc33e3e34c3969c5ad781302d40e97a8ad10ce0cbe17366d5ac6af2fca2360a15b8d5b1d52040ef7b28d300747877e176fe4c4b8e40dbf260f5a9f7eee30293c1b163b795d0aef4deb851a3fc9df569dc8f39943f889008e1ec914faa9e6cd0b3b4b3b5dbf48126516c3c94f1e376459e70b459543c4ac42e53b4ad4c77cff373ebd95848f01864e456969cd28000170996016aceb583d95dd148a0620d000af489f9a900000000a0dcc36b3d7c734a9cce0439f8ba92dd66afb9d74aa222038994dcd3e7784dbea1e51a15b0f1a040cc63177f8fafa3192fc8e5552da1c882ab8dfe31ad1a0968faa47c2069d6bf09c3aa4f0fc128cb578d99b08a150b4cc4b22f6a464c6398c952519818a44a1b223ff502df878c5c276588ea478e328e8277e811b99ce1acfecaf8e2c55ccc4b8eae0a61635514e99ffd438784060f23ba74c0b30b1180d935832debf76d789ba1d436d116394534e88492a42b8bf050c719661a2dc50b3a1dcfbc871e5c27e3d7260f6fa589e44845f6b49c12e89291398bcb3c06ef1289f74e0b0e2cab592d35f82a69e72842230b3076e8e852f6efafd8a171c616b1f0fee6c4711d7aecb69746064d2c096554975d605ebebf3d5cf32a9a09915ae3f3d4eb96615d7b237da56cd5e9904a19e145f25b6d98eb2c019967f553b61d0e80d6913cee9f8d18469a654a239a8fa85debbc02846ac5791278f18c6759e3b513a68284d2efc30587e433431b2896a3bd48020af67e9ac071b2dd6dc3b9efae4ff03558fa619aea909c7f2416e7e7da1c51ccc7e6ac27412f728dc6d80da8adf317ca863ed683897321f8c8bb5a5d953d6783b7a06353ee496bbdff41bb8cbb4534df87756eb99e330253cf5d14aadaa4aa1a9648a38f07e2d302b4165983db4f7b8972923fffa8c03c288512a3a38fbd7c816a44634f7a03fab30811b7b93257bea4369ba46024dee5e9b0b2c3d3324e8b7c1f99ab9bb3f498"], &(0x7f0000000080)='GPL\x00', 0x5, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000140)={&(0x7f0000000100)='svc_xprt_dequeue\x00', r3}, 0x10) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f00000000c0)={&(0x7f0000000080)='sched_switch\x00', r3}, 0x10) r4 = socket$packet(0x11, 0x3, 0x300) dup3(r4, r1, 0x80000) poll(&(0x7f0000000180)=[{r2, 0x1004}], 0x10, 0x2004) lstat(&(0x7f0000000e40)='./file1\x00', &(0x7f0000000e80)={0x0, 0x0, 0x0, 0x0, 0x0}) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000001040)=[{{&(0x7f0000000640)=@file={0x1, './file1\x00'}, 0x6e, &(0x7f0000000540)=[{&(0x7f00000006c0)="8a8c49f6400867374e92895453002e7e2dccd1537d7e57d49cdf645963815fa415ab4b373efa3fa8e568eef7671c8d52cb064793d4d15fc069f9acabd35b0fc49933f89ed9646a8e859b98b04b88abba1b3fc6637adc04c572057f26ea7d43d4d3203604d1e33b03d1e2a8156d8a1b8bdaa13609961855d5325b643e0720e454ff8faa09d3d4a3a1f657ffcc2753903514accbc25e5c25778fd472726df70d623f0473", 0xa3}], 0x1}}, {{&(0x7f0000000780)=@abs={0x0, 0x0, 0x4e21}, 0x6e, &(0x7f0000000900)=[{&(0x7f0000002e00)="3147217092b6d282f30dff80ac0c353f3cf5ce93c71db5bd9ea778d925f5cdf394f4fc2bace7bdcc75b578d1023e0f607b42738ef58f08ff459d9715e66c4979da1d5de532c19b590ee16eb4ca8e86291dd6e284170f6adf5ef6dc897aec769ccaf8050a4b0dc349a07e1bc7b74f3988319536eab154dac838ed5ca2fa901a622abab63c55f7197d39d13d12e8d946dcc65a280201f6a076fb388d160c0bae51b0af6f0add9a68873a054621b4708d1c770c41df30cfe801716aca7723a6548f1a6c26ba62877073be3f0551c65de7c3680c19cf9fa496452a1ec0aa29de24dfef9545b96b9884c2572bdc5cd2ce5aea68975d2baa72b7790d4d8d2c3ac7a7ed2019fd02f5bc45f096647ce9f8617310401db1bc1de0b6c44ffd6903a017b24030f08027f159e44c88f584c6eb6722c413362442cb6fbd7379ed9ece352a29def0643f1240c621dc2060c806721c38ccd80c31c5eaa0f078e0aaf6d8e0fd9a658e3e9b6e30e4c8623126658e795351eedcb6057811e53c9047a49e40cd553daf37fce2a2d0b570fd8caf580eee032a48e38bffb69530a0f061286df355bc153576bea3a455fe9b2a03452ecd1f7342fce33a04c30a0b1895530c59c49f0b452afcdb66a4609073feacbda20972634e39f708648ed6f0d93b7a05d2d923261e50bc14b8ed2baf692f7922bc990f936ca97b8746904116539f021e8e5638d793cdefe7bd47a9ed478a9944525f0f76cb79cfc82f6a8d11472092cc6d13024e36a66ba55cb9dd0135b653f9063cd743b8a89730bda77b828ef9f953b7e22311deb29986a99139d8d1fc77ed83cda1a1985068264513be9641546b10080ea8001b6913fa7cc47cbc23e385df2aa3e4153cd65b5cd1638be5a16609aaff8a834746e6e3d9e1b25fcfb2b145c075a07fdcb6b8f2aa8bd831d8b5b59b23c43f7b377c0466417032783189afd2cfdd3881dce6330b5942bab4c0defa20dfcea9ba95100df5e8454fd0ce54b9146ed41013d99476bf32c617f93b58abeb095f9c998cc579f4ae45b985ef6d130db817bab36902e4abe517b9e4cb2665680639c9a5bde41d58ea92232aa99d8da5483f43c7c5f40bd930c7ee1691eeb9f564bb75066305e5e6f68291f2fd84055f971e3470e9119fb28575fb5e734660d413a3301bfb23a73eddea28400045e625d5b089b17dfc4749f6b25304f052df4a0519be94498fb86a65283bd00386d8b8e7fa01701c105c86c5b799a4338073e1efe3cbbb96556dc7db84c3bd70322a5b8e71ebf2a60b5a1d081bac211c422c9fe48eabcba8bba71d31bdcc9f52b5d516632a375bb303551097065bd368a96a5ac9a8bd351b417571a7c7729f7d220f20866e48fc0c84ecc4fb6156350d5e9c5db2afa1665088cb73a2d497cd6a39e45a44174ea0c3d5a804f365dae926e0cf3c7bab6d77c89f79a34f8a6cb87ff629aa96d4583de7bac7575dad9c2f433ff199fe0ddf4f0ceff0e73fd5287f89909b77976d2dd8559dfdee4a845882cb39fe0b3171415a8f3aceb46a72a0abc7a3c08391adb2c388a49f2f846d2c3e93a04704b42be860454beb2f073d5b404c7bec239c64293460c35e8099d0b64c172319a526fafd4fa7c27b01e27e949bdae9d46ce82cba0f733fed9e8482ff454b692b7e137094fdd158a5e1c6995585f319ba1923b1304d63f924cd63457b62e0a620e61f72d237771d17508d5b8317f64c2f4a856c8cd372f29cd2420b535841e32cba2011f28f43f267c6a6adc025e7bea45cd3532e7d1c097a76ff7b066f821fd4081f8393861cc83bea7526dd0c73d6b29e19b32c495efcabd3e5093e2d9779170879408eed4ef5afb09cac7e6a84fc545f6d0e20b8e383af22ae57cf63d7357ca4d73406ba9dce91ac33030a48f0de46b623ec25ab5c73e6b3cb24566cd12d0bc7bc5b526fa8a5fd8ac1a798d6dc21459043f7f2ae5551241cf6f554ed2f057050df126a8d3a45a955032bc2b3d01d82b0c35a6be76046750076dedc07e23abee8101847b5321b7dca89acc3008a318e002e9c2212f919a29b93199e46d7d263bf33e2467adc1b6389f69e157fe8b85f08e020e3ee48d3a3dc072600b697692d1f2d50282328e0b9775705c8c38a6b3fba2b0b03989a9d106fe153cedd68135e89eb7e1ed739c327ab33cb1a58255836383256df478a72d9d3f0d0f945b5dd307b47d7e8488bd36d529b58a9bb4fa7999d77c13c9a723abaaa11f3e28bc9205a070f0f757140aef652f74524399cbc8fc0bb25d5ca9046d285110eed3128bf1bc1619063ee4ad617353d38ddd663fad8a29b15993a2970fd5b375ed7dc16cdbb439d2246ff9e453864f21e75dd7eca7c08be0ceabf2a3734f3d95cad8eedcf28b42205b5fa212efbe0731789a4aba2bd5095c3dbcf5ad14b0238b5ea56a0d136432c16fd685de548a9d9ef5aeac2c3f600245c17a63d3b9cfd5aacea2da2015d8503dd6f8ab1c4d4865b9bc1daa06cd6154be75f9c63167f3dfa574b142db5e9522bbf09d5f1407fd70937d8c2f6222d823a1bcb82d15d918af0ae2dfbff463e55aa058e5764a2c2662e74e7f091e527b5e8d3aa5b3b27a6b05deeb0ea9f7b61b9ae6950808dd9006058d218c94a6e7d2d5a3e8c917bba25f6cdfdb4a75970c5af444facf293cc3047abee1a6107db5e34758edac1eaf5a9fc3f7c65744f7a0351e32a03e730d9209907b6c85bd86a2d2952bddb29824d68e6bcc1824c12fa6e533dc5c7888dbce368f7e4a49d6d33864ba047b0116e07e2c605ca835ad2b7697aace8338475585b0ca9d08cc778e562793a1fc552b982023e9f2ddd89f03214d5128eea51ece7909f281d60bb4a25b221e06ec4d0d127c44b6438a3a3155e54e72e929d92b7e0e008eabd57d546bbb618ef4dd103ee93db12f1a77eb09559e160648195a89d34e78728062d15b35f4e1f768ef4d62a077fca8d2e2a7f59be04550610f7d23bf49ffdb625b13b55de358cc5b201eb1e9e48e2b327af81dda9f769ac7916c655a26658c1e756daff8fa9f805249637646d9f2117a433d03e3856a50b5dd6659557474455e838b41ce9187a131fc57522ea84328cea42927b32713c38c72f1bd8799f5f2be1fb1e09a2ba2a79128f58cf6041f576e416cd5d88f5e8dc0335fae8853d20fee2a0e655aa59058f45235df472b3936a80aca2943329ff9c801e6398f1e6f55d140b5b546d3ad3e2fc4e148920da69fcd6ac4d8b73dad4269569e6ffcc073862eedc4f46d2afeaaa0a62f86402e318bed514f7a77cfee22fecb62ee9363db5024b9240748b5906bd7c27d3e33a3142341333d01711e551fce518a59aff8dda654e09caeb30d44f3c65ac5ae9bb329954013adef13f31604bcf87f32b9d75521a8ce9a6a30a2b328478fbe724e62c5707eee256203ee553fd937bfad926d4ce95ff94c5b666ed3f78b6b9118d3c08a53206d2d7307da2c7e363a0534e234bdd04a5b38d00f960cc7bc559aad6fd6f6d5ce088548fcf51ff7926042324ffa7ede391451da9bbbd6a76b6c51ff091827c9d6457f06158fc3c2f922d5437140bbb4a33dc850dc15c7bbd77aaa0b100d8a3b7df611e55c3c17898a985dcd16d88d24ea074198111bf7a1cd7a7d7eee2930c02e548ae06af4d5bd3dd8ed850c00f8ce94b9c8cdc0af53901f43f6fb0eb74dde2e0d5837389616c94a8cd13ba73da5a5f94cf7ef6ca33c5c0c1b6eacc5f4af21209f21e293f1702e2d9f7643bc9c41d57abd7809aa75720ae1dd2758707b066fa993c7f00856b90b31a20991b0b6e545d350496b56e5d5be1f26aa50258f061fdc07eee84babbf34f7089f5062c3abecbe44228b665096879e54fbef19706ff04b4269137f8620d46918bae4c3d553055b3ba88e438c857230f5d6891c421bf9217628455ff60c9c84c1c5b7738d5d865d51873d979d20f5cf4074f3fbb4798a58dc558b87ffe9542ed93831a50600384b2fe6bc010ed3b8a2802543c1362ffb6646ed1a277f99c7e51d18f5d2b0291efa3cc9d5960b4dca0f63a824a04537a0d96ed30c0050a92ba2057d86197e1d2f1ee3b2af0ae5c4369e3bd573495ddd6300be15af2d19f595b2aa8b6b6d497ade0ef5838f1d82ac20c45d15c661ee283f26ca37ffc998a860d644cbbabc4bcb2b28cdab10a5a8b290cdbee04d44d4da26790061ca89ac05a41fa9704a58f3356b0068a6a1f580af859fcca72b039c68fc005c23367e7c6553700d87a5b67e9218bed5aca9c632ae7854278af9578945d1e3809dac6ca8cc5eb9e0a368f6592b6be27dc18ea433fd97f825ea99880dd08de37ad49f17b41b673fc4855728a984b3e591bc651184b795a9c97698089bebde40d078d3a121067618e4b2654e3004590fb82178c5fe170534471c120e0a89ff647932ef6559ce36ece4b719756c09eadea1bfaf11d81c70965c108d8393b98b1530c91edb126f4edeebf8ec4bd672b77a425636cb14bbb300201969849e09a93299d5fe83e33fd9f9b1d221c76abcbce8ef88089f2d28c7b4cd4fda720a19f9288104d3a6bc620d2daeea877aea7ad36370ffce6db60801bf8e56464ef824560a325b4aa365bedd15160063b75561d3b97855cdabf087472097660820bcee3bac86c5a5008f3de02a6dc94bb03ccf19223cebf4923256eb855440c8f80c790763d1560d3a6378f49087764d6d23ea9ec205f63aefae3ba9bc2ba39ec79899d0065ea52beb425920be64ae3a6d6b913709e95ebc6026a3376bef7dceb75a3925df37fd817ec29aabd6f9fe9faf6b80d750fbb6ca8c864f9d8751d8a2ddeef652c7342d47af0b2c4b59ce8db59393dbf4aafbecda2daecb01cef43fba126bc1d90e576c8da664dc90d02915fc29adbd03e5fc7f7bf9c1bd4f3da1d682770f0b962bbbeb98693848dacd324369588f2938dceb200fc96af2f038f31233e5584d7b9189101cd8535bbaac4ae9c38fb9d6234b9dc178dd4f86833a3adc7241ef84889de1682f6654615d9bec521243ebe8170957977b4dc31ffb9f0aab0e108a53482983f775a097d67694f5ae99bc2d6789701a734b9de9e918b147b289e9c61feaeae54c74b754f1bbb743c16a1d69a158b5a2f86b5e89babd48396df5c3a33d84b79795cb553c855d280f586427e2c61b9390b6a1c56c6a82c1b193769d7fe96452258ace8e97fd7f620cb9014c62a2dbf473993ecc5690d604c06696417f621cc513df9e0b2414e3f681697dfa26c4d1912fd0228bbd6a00e7fc4b23f6b3ad118d28dbd4c5c8089a23e4cb5bee70e9ea37eb6b0d6075b8df26ddbfd6fd020a4e69a609fb2228a9c1ec21ef5e0a681fb7cde7bfeb2194165beac5b46e61996308bd218c455c1d1980350c6c93dd0eac6d7825e9f74c9f1c161aebb6c42c6de510980e3b3e37afc04daa899225e89b5dc6b91952552ba8a99604eb4bed91e07371cbcb6516b15cb70e2ec1ab79df4ba9c96340b2e8653e9c22432d5bf216fba55ddf7b5808fa8c79e52b01851e2292cc6fc1a39c37fdbc180aa168c84070a0ea39fcf9adf1153e50fb1a480ef0aa880ebb7a58506a6cca41b99b15ab8099e632a92aa99f748125874f3aa30ac401e2b66c0623d04fb4ae6b80c3745010c8234c94099ea14ef51669310ad68bea9f778afe1d33e3586b05659ffc0c97a94ad4d3b11e55230a089cc102adb483536ad8f6b54a56703799fd3a78c61bdbf1c9dc411e1f2a7566400e34e67500c1de1c1ead48f52c9d7617195c57221b8ee392e894c82963be433f8569e9486e450f53559", 0x1000}, {&(0x7f0000000800)="81df4992aa00930bcbd777e2606ef5fd9263ab8776355d0eeaecb976803cf0f8d44326637dfe1490b33fd5953d437aadb60294cd68c380ea53f9fde0f02aea576f695cc0a8808efd61fa5a885eae5e3b9193ccfd432bd005002846de82a5a5460454bdb0e571242ccc1e8b6ba72f9a0b6cd17bf6e75f90d6c7fc8ea3b4ef85c2314fe0e4be2df88a8a8ce774f776e03abff257c4a0b83901be877f38e4ee034c03066bb5fa92ae29e5d296a88ebdd2397f271f05884c79cb50de41", 0xbb}, {&(0x7f00000008c0)="824b793ef60a962c5c3044ad4d", 0xd}], 0x3, &(0x7f0000000f00)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0xee00}}}, @cred={{0x1c}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, r5}}}], 0x108, 0x44080}}], 0x2, 0x20040800) memfd_create(0x0, 0x2) 07:53:37 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$devlink(&(0x7f0000000180), 0xffffffffffffffff) sendmsg$DEVLINK_CMD_TRAP_GET(r0, &(0x7f0000000400)={&(0x7f0000000140), 0xc, &(0x7f00000003c0)={&(0x7f00000001c0)={0x103, r1, 0x219, 0x0, 0x0, {0x1b}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x1c}}, {@pci={{0x8}, {0xffffffffffffff6b}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}, {@pci={{0x8}, {0x11}}, {0x1c}}]}, 0x1e4}}, 0x0) 07:53:37 executing program 1: madvise(&(0x7f0000bdc000/0x4000)=nil, 0x86ac726dff2f4713, 0x14) 07:53:37 executing program 4: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f00000000c0)={0x26, 'skcipher\x00', 0x0, 0x0, 'cbc(aes)\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) recvfrom(r1, &(0x7f0000000000)=""/2, 0x2, 0x0, 0x0, 0x0) sendto$unix(r1, &(0x7f0000000180), 0xfeed, 0x0, 0x0, 0x0) 07:53:37 executing program 0: bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x1, 0x4, &(0x7f0000000080)=@framed={{0xffffffb4, 0x5, 0x0, 0x0, 0x0, 0x71, 0x10, 0x60}, [@ldst={0x6, 0x2}]}, &(0x7f0000003ff6)='GPL\x00', 0x5, 0xfd90, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f00000000c0), 0x366, 0x10, &(0x7f0000000000), 0x2b2}, 0x39) bpf$PROG_LOAD(0x5, 0x0, 0x0) bpf$ITER_CREATE(0x21, 0x0, 0x0) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) [ 1107.785570][T14047] netlink: 3 bytes leftover after parsing attributes in process `syz-executor.3'. 07:53:38 executing program 2: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f00000008c0)={0x2, 0x0, @local}, 0x10) 07:53:38 executing program 5: ioctl$TIOCL_SELLOADLUT(0xffffffffffffffff, 0x541c, &(0x7f0000000000)={0x5, 0x8, 0x1, 0x7ff, 0x2}) bpf$ENABLE_STATS(0x20, 0x0, 0x0) r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/diskstats\x00', 0x0, 0x0) read$FUSE(r0, &(0x7f00000020c0)={0x2020}, 0x2022) ioctl$VT_WAITACTIVE(r0, 0x5607) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r3 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f0000000fc0)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000700000095000000000000009500a5050000000077d8f3b423cdac8d80000000000000002be16ad10a48b243ccc42606d25dfd73a015e0ca7fc2506a0f68a7d06d75357f216907dc6751dfb265a0e3ccae669e173a649c1cfd6587d472d64e7cc955d77578f4c35235138d5421f9453559c35da860e8ef14142b2a3e314422b854421eed734ceb1efeecb9c66c54c3b3ffe1b4ce25d7c983c044c03bf3a48dfe3e26e7a23129d6606fd28a697a9d552af6d9a9df2c3af36e0360050011bbec0727cb3f647535deb6277f5696833a71011a7d06602e2fd5234712596b696418f163d1a13ed38a682f87925bfa753f541cd027edd68149ee99eebc6f7d6dd4aed4af7588c8e1b4efab57644ccb1973d7879b70a70001040000000000000000d7900a820b63278f4e9a217b98ef7042ad2a923132f208fd8289eaf8cd50cbe43a1ed25268816b00000000000009d27d753a30a147c24a48435bd8a5686f2fccc33e3e34c3969c5ad781302d40e97a8ad10ce0cbe17366d5ac6af2fca2360a15b8d5b1d52040ef7b28d300747877e176fe4c4b8e40dbf260f5a9f7eee30293c1b163b795d0aef4deb851a3fc9df569dc8f39943f889008e1ec914faa9e6cd0b3b4b3b5dbf48126516c3c94f1e376459e70b459543c4ac42e53b4ad4c77cff373ebd95848f01864e456969cd28000170996016aceb583d95dd148a0620d000af489f9a900000000a0dcc36b3d7c734a9cce0439f8ba92dd66afb9d74aa222038994dcd3e7784dbea1e51a15b0f1a040cc63177f8fafa3192fc8e5552da1c882ab8dfe31ad1a0968faa47c2069d6bf09c3aa4f0fc128cb578d99b08a150b4cc4b22f6a464c6398c952519818a44a1b223ff502df878c5c276588ea478e328e8277e811b99ce1acfecaf8e2c55ccc4b8eae0a61635514e99ffd438784060f23ba74c0b30b1180d935832debf76d789ba1d436d116394534e88492a42b8bf050c719661a2dc50b3a1dcfbc871e5c27e3d7260f6fa589e44845f6b49c12e89291398bcb3c06ef1289f74e0b0e2cab592d35f82a69e72842230b3076e8e852f6efafd8a171c616b1f0fee6c4711d7aecb69746064d2c096554975d605ebebf3d5cf32a9a09915ae3f3d4eb96615d7b237da56cd5e9904a19e145f25b6d98eb2c019967f553b61d0e80d6913cee9f8d18469a654a239a8fa85debbc02846ac5791278f18c6759e3b513a68284d2efc30587e433431b2896a3bd48020af67e9ac071b2dd6dc3b9efae4ff03558fa619aea909c7f2416e7e7da1c51ccc7e6ac27412f728dc6d80da8adf317ca863ed683897321f8c8bb5a5d953d6783b7a06353ee496bbdff41bb8cbb4534df87756eb99e330253cf5d14aadaa4aa1a9648a38f07e2d302b4165983db4f7b8972923fffa8c03c288512a3a38fbd7c816a44634f7a03fab30811b7b93257bea4369ba46024dee5e9b0b2c3d3324e8b7c1f99ab9bb3f498"], &(0x7f0000000080)='GPL\x00', 0x5, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000140)={&(0x7f0000000100)='svc_xprt_dequeue\x00', r3}, 0x10) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f00000000c0)={&(0x7f0000000080)='sched_switch\x00', r3}, 0x10) r4 = socket$packet(0x11, 0x3, 0x300) dup3(r4, r1, 0x80000) poll(&(0x7f0000000180)=[{r2, 0x1004}], 0x10, 0x2004) lstat(&(0x7f0000000e40)='./file1\x00', &(0x7f0000000e80)={0x0, 0x0, 0x0, 0x0, 0x0}) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000001040)=[{{&(0x7f0000000640)=@file={0x1, './file1\x00'}, 0x6e, &(0x7f0000000540)=[{&(0x7f00000006c0)="8a8c49f6400867374e92895453002e7e2dccd1537d7e57d49cdf645963815fa415ab4b373efa3fa8e568eef7671c8d52cb064793d4d15fc069f9acabd35b0fc49933f89ed9646a8e859b98b04b88abba1b3fc6637adc04c572057f26ea7d43d4d3203604d1e33b03d1e2a8156d8a1b8bdaa13609961855d5325b643e0720e454ff8faa09d3d4a3a1f657ffcc2753903514accbc25e5c25778fd472726df70d623f0473", 0xa3}], 0x1}}, {{&(0x7f0000000780)=@abs={0x0, 0x0, 0x4e21}, 0x6e, &(0x7f0000000900)=[{&(0x7f0000002e00)="3147217092b6d282f30dff80ac0c353f3cf5ce93c71db5bd9ea778d925f5cdf394f4fc2bace7bdcc75b578d1023e0f607b42738ef58f08ff459d9715e66c4979da1d5de532c19b590ee16eb4ca8e86291dd6e284170f6adf5ef6dc897aec769ccaf8050a4b0dc349a07e1bc7b74f3988319536eab154dac838ed5ca2fa901a622abab63c55f7197d39d13d12e8d946dcc65a280201f6a076fb388d160c0bae51b0af6f0add9a68873a054621b4708d1c770c41df30cfe801716aca7723a6548f1a6c26ba62877073be3f0551c65de7c3680c19cf9fa496452a1ec0aa29de24dfef9545b96b9884c2572bdc5cd2ce5aea68975d2baa72b7790d4d8d2c3ac7a7ed2019fd02f5bc45f096647ce9f8617310401db1bc1de0b6c44ffd6903a017b24030f08027f159e44c88f584c6eb6722c413362442cb6fbd7379ed9ece352a29def0643f1240c621dc2060c806721c38ccd80c31c5eaa0f078e0aaf6d8e0fd9a658e3e9b6e30e4c8623126658e795351eedcb6057811e53c9047a49e40cd553daf37fce2a2d0b570fd8caf580eee032a48e38bffb69530a0f061286df355bc153576bea3a455fe9b2a03452ecd1f7342fce33a04c30a0b1895530c59c49f0b452afcdb66a4609073feacbda20972634e39f708648ed6f0d93b7a05d2d923261e50bc14b8ed2baf692f7922bc990f936ca97b8746904116539f021e8e5638d793cdefe7bd47a9ed478a9944525f0f76cb79cfc82f6a8d11472092cc6d13024e36a66ba55cb9dd0135b653f9063cd743b8a89730bda77b828ef9f953b7e22311deb29986a99139d8d1fc77ed83cda1a1985068264513be9641546b10080ea8001b6913fa7cc47cbc23e385df2aa3e4153cd65b5cd1638be5a16609aaff8a834746e6e3d9e1b25fcfb2b145c075a07fdcb6b8f2aa8bd831d8b5b59b23c43f7b377c0466417032783189afd2cfdd3881dce6330b5942bab4c0defa20dfcea9ba95100df5e8454fd0ce54b9146ed41013d99476bf32c617f93b58abeb095f9c998cc579f4ae45b985ef6d130db817bab36902e4abe517b9e4cb2665680639c9a5bde41d58ea92232aa99d8da5483f43c7c5f40bd930c7ee1691eeb9f564bb75066305e5e6f68291f2fd84055f971e3470e9119fb28575fb5e734660d413a3301bfb23a73eddea28400045e625d5b089b17dfc4749f6b25304f052df4a0519be94498fb86a65283bd00386d8b8e7fa01701c105c86c5b799a4338073e1efe3cbbb96556dc7db84c3bd70322a5b8e71ebf2a60b5a1d081bac211c422c9fe48eabcba8bba71d31bdcc9f52b5d516632a375bb303551097065bd368a96a5ac9a8bd351b417571a7c7729f7d220f20866e48fc0c84ecc4fb6156350d5e9c5db2afa1665088cb73a2d497cd6a39e45a44174ea0c3d5a804f365dae926e0cf3c7bab6d77c89f79a34f8a6cb87ff629aa96d4583de7bac7575dad9c2f433ff199fe0ddf4f0ceff0e73fd5287f89909b77976d2dd8559dfdee4a845882cb39fe0b3171415a8f3aceb46a72a0abc7a3c08391adb2c388a49f2f846d2c3e93a04704b42be860454beb2f073d5b404c7bec239c64293460c35e8099d0b64c172319a526fafd4fa7c27b01e27e949bdae9d46ce82cba0f733fed9e8482ff454b692b7e137094fdd158a5e1c6995585f319ba1923b1304d63f924cd63457b62e0a620e61f72d237771d17508d5b8317f64c2f4a856c8cd372f29cd2420b535841e32cba2011f28f43f267c6a6adc025e7bea45cd3532e7d1c097a76ff7b066f821fd4081f8393861cc83bea7526dd0c73d6b29e19b32c495efcabd3e5093e2d9779170879408eed4ef5afb09cac7e6a84fc545f6d0e20b8e383af22ae57cf63d7357ca4d73406ba9dce91ac33030a48f0de46b623ec25ab5c73e6b3cb24566cd12d0bc7bc5b526fa8a5fd8ac1a798d6dc21459043f7f2ae5551241cf6f554ed2f057050df126a8d3a45a955032bc2b3d01d82b0c35a6be76046750076dedc07e23abee8101847b5321b7dca89acc3008a318e002e9c2212f919a29b93199e46d7d263bf33e2467adc1b6389f69e157fe8b85f08e020e3ee48d3a3dc072600b697692d1f2d50282328e0b9775705c8c38a6b3fba2b0b03989a9d106fe153cedd68135e89eb7e1ed739c327ab33cb1a58255836383256df478a72d9d3f0d0f945b5dd307b47d7e8488bd36d529b58a9bb4fa7999d77c13c9a723abaaa11f3e28bc9205a070f0f757140aef652f74524399cbc8fc0bb25d5ca9046d285110eed3128bf1bc1619063ee4ad617353d38ddd663fad8a29b15993a2970fd5b375ed7dc16cdbb439d2246ff9e453864f21e75dd7eca7c08be0ceabf2a3734f3d95cad8eedcf28b42205b5fa212efbe0731789a4aba2bd5095c3dbcf5ad14b0238b5ea56a0d136432c16fd685de548a9d9ef5aeac2c3f600245c17a63d3b9cfd5aacea2da2015d8503dd6f8ab1c4d4865b9bc1daa06cd6154be75f9c63167f3dfa574b142db5e9522bbf09d5f1407fd70937d8c2f6222d823a1bcb82d15d918af0ae2dfbff463e55aa058e5764a2c2662e74e7f091e527b5e8d3aa5b3b27a6b05deeb0ea9f7b61b9ae6950808dd9006058d218c94a6e7d2d5a3e8c917bba25f6cdfdb4a75970c5af444facf293cc3047abee1a6107db5e34758edac1eaf5a9fc3f7c65744f7a0351e32a03e730d9209907b6c85bd86a2d2952bddb29824d68e6bcc1824c12fa6e533dc5c7888dbce368f7e4a49d6d33864ba047b0116e07e2c605ca835ad2b7697aace8338475585b0ca9d08cc778e562793a1fc552b982023e9f2ddd89f03214d5128eea51ece7909f281d60bb4a25b221e06ec4d0d127c44b6438a3a3155e54e72e929d92b7e0e008eabd57d546bbb618ef4dd103ee93db12f1a77eb09559e160648195a89d34e78728062d15b35f4e1f768ef4d62a077fca8d2e2a7f59be04550610f7d23bf49ffdb625b13b55de358cc5b201eb1e9e48e2b327af81dda9f769ac7916c655a26658c1e756daff8fa9f805249637646d9f2117a433d03e3856a50b5dd6659557474455e838b41ce9187a131fc57522ea84328cea42927b32713c38c72f1bd8799f5f2be1fb1e09a2ba2a79128f58cf6041f576e416cd5d88f5e8dc0335fae8853d20fee2a0e655aa59058f45235df472b3936a80aca2943329ff9c801e6398f1e6f55d140b5b546d3ad3e2fc4e148920da69fcd6ac4d8b73dad4269569e6ffcc073862eedc4f46d2afeaaa0a62f86402e318bed514f7a77cfee22fecb62ee9363db5024b9240748b5906bd7c27d3e33a3142341333d01711e551fce518a59aff8dda654e09caeb30d44f3c65ac5ae9bb329954013adef13f31604bcf87f32b9d75521a8ce9a6a30a2b328478fbe724e62c5707eee256203ee553fd937bfad926d4ce95ff94c5b666ed3f78b6b9118d3c08a53206d2d7307da2c7e363a0534e234bdd04a5b38d00f960cc7bc559aad6fd6f6d5ce088548fcf51ff7926042324ffa7ede391451da9bbbd6a76b6c51ff091827c9d6457f06158fc3c2f922d5437140bbb4a33dc850dc15c7bbd77aaa0b100d8a3b7df611e55c3c17898a985dcd16d88d24ea074198111bf7a1cd7a7d7eee2930c02e548ae06af4d5bd3dd8ed850c00f8ce94b9c8cdc0af53901f43f6fb0eb74dde2e0d5837389616c94a8cd13ba73da5a5f94cf7ef6ca33c5c0c1b6eacc5f4af21209f21e293f1702e2d9f7643bc9c41d57abd7809aa75720ae1dd2758707b066fa993c7f00856b90b31a20991b0b6e545d350496b56e5d5be1f26aa50258f061fdc07eee84babbf34f7089f5062c3abecbe44228b665096879e54fbef19706ff04b4269137f8620d46918bae4c3d553055b3ba88e438c857230f5d6891c421bf9217628455ff60c9c84c1c5b7738d5d865d51873d979d20f5cf4074f3fbb4798a58dc558b87ffe9542ed93831a50600384b2fe6bc010ed3b8a2802543c1362ffb6646ed1a277f99c7e51d18f5d2b0291efa3cc9d5960b4dca0f63a824a04537a0d96ed30c0050a92ba2057d86197e1d2f1ee3b2af0ae5c4369e3bd573495ddd6300be15af2d19f595b2aa8b6b6d497ade0ef5838f1d82ac20c45d15c661ee283f26ca37ffc998a860d644cbbabc4bcb2b28cdab10a5a8b290cdbee04d44d4da26790061ca89ac05a41fa9704a58f3356b0068a6a1f580af859fcca72b039c68fc005c23367e7c6553700d87a5b67e9218bed5aca9c632ae7854278af9578945d1e3809dac6ca8cc5eb9e0a368f6592b6be27dc18ea433fd97f825ea99880dd08de37ad49f17b41b673fc4855728a984b3e591bc651184b795a9c97698089bebde40d078d3a121067618e4b2654e3004590fb82178c5fe170534471c120e0a89ff647932ef6559ce36ece4b719756c09eadea1bfaf11d81c70965c108d8393b98b1530c91edb126f4edeebf8ec4bd672b77a425636cb14bbb300201969849e09a93299d5fe83e33fd9f9b1d221c76abcbce8ef88089f2d28c7b4cd4fda720a19f9288104d3a6bc620d2daeea877aea7ad36370ffce6db60801bf8e56464ef824560a325b4aa365bedd15160063b75561d3b97855cdabf087472097660820bcee3bac86c5a5008f3de02a6dc94bb03ccf19223cebf4923256eb855440c8f80c790763d1560d3a6378f49087764d6d23ea9ec205f63aefae3ba9bc2ba39ec79899d0065ea52beb425920be64ae3a6d6b913709e95ebc6026a3376bef7dceb75a3925df37fd817ec29aabd6f9fe9faf6b80d750fbb6ca8c864f9d8751d8a2ddeef652c7342d47af0b2c4b59ce8db59393dbf4aafbecda2daecb01cef43fba126bc1d90e576c8da664dc90d02915fc29adbd03e5fc7f7bf9c1bd4f3da1d682770f0b962bbbeb98693848dacd324369588f2938dceb200fc96af2f038f31233e5584d7b9189101cd8535bbaac4ae9c38fb9d6234b9dc178dd4f86833a3adc7241ef84889de1682f6654615d9bec521243ebe8170957977b4dc31ffb9f0aab0e108a53482983f775a097d67694f5ae99bc2d6789701a734b9de9e918b147b289e9c61feaeae54c74b754f1bbb743c16a1d69a158b5a2f86b5e89babd48396df5c3a33d84b79795cb553c855d280f586427e2c61b9390b6a1c56c6a82c1b193769d7fe96452258ace8e97fd7f620cb9014c62a2dbf473993ecc5690d604c06696417f621cc513df9e0b2414e3f681697dfa26c4d1912fd0228bbd6a00e7fc4b23f6b3ad118d28dbd4c5c8089a23e4cb5bee70e9ea37eb6b0d6075b8df26ddbfd6fd020a4e69a609fb2228a9c1ec21ef5e0a681fb7cde7bfeb2194165beac5b46e61996308bd218c455c1d1980350c6c93dd0eac6d7825e9f74c9f1c161aebb6c42c6de510980e3b3e37afc04daa899225e89b5dc6b91952552ba8a99604eb4bed91e07371cbcb6516b15cb70e2ec1ab79df4ba9c96340b2e8653e9c22432d5bf216fba55ddf7b5808fa8c79e52b01851e2292cc6fc1a39c37fdbc180aa168c84070a0ea39fcf9adf1153e50fb1a480ef0aa880ebb7a58506a6cca41b99b15ab8099e632a92aa99f748125874f3aa30ac401e2b66c0623d04fb4ae6b80c3745010c8234c94099ea14ef51669310ad68bea9f778afe1d33e3586b05659ffc0c97a94ad4d3b11e55230a089cc102adb483536ad8f6b54a56703799fd3a78c61bdbf1c9dc411e1f2a7566400e34e67500c1de1c1ead48f52c9d7617195c57221b8ee392e894c82963be433f8569e9486e450f53559", 0x1000}, {&(0x7f0000000800)="81df4992aa00930bcbd777e2606ef5fd9263ab8776355d0eeaecb976803cf0f8d44326637dfe1490b33fd5953d437aadb60294cd68c380ea53f9fde0f02aea576f695cc0a8808efd61fa5a885eae5e3b9193ccfd432bd005002846de82a5a5460454bdb0e571242ccc1e8b6ba72f9a0b6cd17bf6e75f90d6c7fc8ea3b4ef85c2314fe0e4be2df88a8a8ce774f776e03abff257c4a0b83901be877f38e4ee034c03066bb5fa92ae29e5d296a88ebdd2397f271f05884c79cb50de41", 0xbb}, {&(0x7f00000008c0)="824b793ef60a962c5c3044ad4d", 0xd}], 0x3, &(0x7f0000000f00)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0xee00}}}, @cred={{0x1c}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, r5}}}], 0x108, 0x44080}}], 0x2, 0x20040800) memfd_create(0x0, 0x2) 07:53:38 executing program 3: r0 = socket$inet_dccp(0x2, 0x6, 0x0) getsockopt$IP_VS_SO_GET_VERSION(r0, 0x10d, 0xb9, &(0x7f00000001c0), &(0x7f00000002c0)=0x40) 07:53:38 executing program 1: bpf$PROG_LOAD_XDP(0x5, &(0x7f00000001c0)={0x12, 0x4, &(0x7f0000001300)=@framed={{}, [@ldst={0x1, 0x3, 0x3, 0x0, 0x1, 0x18}]}, &(0x7f0000000040)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0xf, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:53:38 executing program 0: r0 = epoll_create1(0x0) r1 = openat$vga_arbiter(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) epoll_ctl$EPOLL_CTL_ADD(r0, 0x1, r1, &(0x7f0000000000)={0xa000000b}) epoll_wait(r0, &(0x7f0000000080)=[{}], 0x1, 0x0) 07:53:38 executing program 3: capset(&(0x7f0000000000)={0x20080522}, &(0x7f0000000040)) capset(&(0x7f00000011c0)={0x19980330}, &(0x7f0000001200)) 07:53:38 executing program 4: r0 = openat$sysctl(0xffffffffffffff9c, &(0x7f00000004c0)='/proc/self/clear_refs\x00', 0x1, 0x0) write$sysctl(r0, &(0x7f0000000500)='3\x00', 0x2) 07:53:38 executing program 2: syz_mount_image$f2fs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000010000)="1020f5f201000b0009000000030000000c000000090000000100000001000000000000000040000000000000180000001f0000000200000002000000020000000100000018000000000200000002000000060000000a0000000e000000100000030000000100000002", 0x69, 0x400}, {0x0, 0x0, 0x1400}], 0x0, &(0x7f00000000c0)={[{@lazytime}, {@grpjquota={'grpjquota', 0x3d, 'f2fs\x00'}}]}) 07:53:39 executing program 1: mremap(&(0x7f0000ffd000/0x1000)=nil, 0x1000, 0x1000, 0x3, &(0x7f0000ff9000/0x1000)=nil) mbind(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1, 0x0, 0x0, 0x0) mlock(&(0x7f0000ffe000/0x1000)=nil, 0x1000) 07:53:39 executing program 3: r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$inet_group_source_req(0xffffffffffffffff, 0x0, 0x0, &(0x7f0000000340)={0x0, {{0x2, 0x0, @multicast2}}, {{0x2, 0x0, @dev}}}, 0x104) setsockopt$inet_group_source_req(r0, 0x0, 0x2e, &(0x7f0000000000)={0x3, {{0x2, 0x0, @multicast2}}, {{0x2, 0x0, @initdev={0xac, 0x1e, 0x0, 0x0}}}}, 0x104) getsockopt$inet_buf(r0, 0x0, 0x30, &(0x7f0000000340)=""/225, &(0x7f0000000140)=0xe1) 07:53:39 executing program 5: ioctl$TIOCL_SELLOADLUT(0xffffffffffffffff, 0x541c, &(0x7f0000000000)={0x5, 0x8, 0x1, 0x7ff, 0x2}) bpf$ENABLE_STATS(0x20, 0x0, 0x0) r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/diskstats\x00', 0x0, 0x0) read$FUSE(r0, &(0x7f00000020c0)={0x2020}, 0x2022) ioctl$VT_WAITACTIVE(r0, 0x5607) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r3 = bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x11, 0x6, &(0x7f0000000fc0)=ANY=[@ANYBLOB="050000000000000061110c00000000008510000002000000850000000700000095000000000000009500a5050000000077d8f3b423cdac8d80000000000000002be16ad10a48b243ccc42606d25dfd73a015e0ca7fc2506a0f68a7d06d75357f216907dc6751dfb265a0e3ccae669e173a649c1cfd6587d472d64e7cc955d77578f4c35235138d5421f9453559c35da860e8ef14142b2a3e314422b854421eed734ceb1efeecb9c66c54c3b3ffe1b4ce25d7c983c044c03bf3a48dfe3e26e7a23129d6606fd28a697a9d552af6d9a9df2c3af36e0360050011bbec0727cb3f647535deb6277f5696833a71011a7d06602e2fd5234712596b696418f163d1a13ed38a682f87925bfa753f541cd027edd68149ee99eebc6f7d6dd4aed4af7588c8e1b4efab57644ccb1973d7879b70a70001040000000000000000d7900a820b63278f4e9a217b98ef7042ad2a923132f208fd8289eaf8cd50cbe43a1ed25268816b00000000000009d27d753a30a147c24a48435bd8a5686f2fccc33e3e34c3969c5ad781302d40e97a8ad10ce0cbe17366d5ac6af2fca2360a15b8d5b1d52040ef7b28d300747877e176fe4c4b8e40dbf260f5a9f7eee30293c1b163b795d0aef4deb851a3fc9df569dc8f39943f889008e1ec914faa9e6cd0b3b4b3b5dbf48126516c3c94f1e376459e70b459543c4ac42e53b4ad4c77cff373ebd95848f01864e456969cd28000170996016aceb583d95dd148a0620d000af489f9a900000000a0dcc36b3d7c734a9cce0439f8ba92dd66afb9d74aa222038994dcd3e7784dbea1e51a15b0f1a040cc63177f8fafa3192fc8e5552da1c882ab8dfe31ad1a0968faa47c2069d6bf09c3aa4f0fc128cb578d99b08a150b4cc4b22f6a464c6398c952519818a44a1b223ff502df878c5c276588ea478e328e8277e811b99ce1acfecaf8e2c55ccc4b8eae0a61635514e99ffd438784060f23ba74c0b30b1180d935832debf76d789ba1d436d116394534e88492a42b8bf050c719661a2dc50b3a1dcfbc871e5c27e3d7260f6fa589e44845f6b49c12e89291398bcb3c06ef1289f74e0b0e2cab592d35f82a69e72842230b3076e8e852f6efafd8a171c616b1f0fee6c4711d7aecb69746064d2c096554975d605ebebf3d5cf32a9a09915ae3f3d4eb96615d7b237da56cd5e9904a19e145f25b6d98eb2c019967f553b61d0e80d6913cee9f8d18469a654a239a8fa85debbc02846ac5791278f18c6759e3b513a68284d2efc30587e433431b2896a3bd48020af67e9ac071b2dd6dc3b9efae4ff03558fa619aea909c7f2416e7e7da1c51ccc7e6ac27412f728dc6d80da8adf317ca863ed683897321f8c8bb5a5d953d6783b7a06353ee496bbdff41bb8cbb4534df87756eb99e330253cf5d14aadaa4aa1a9648a38f07e2d302b4165983db4f7b8972923fffa8c03c288512a3a38fbd7c816a44634f7a03fab30811b7b93257bea4369ba46024dee5e9b0b2c3d3324e8b7c1f99ab9bb3f498"], &(0x7f0000000080)='GPL\x00', 0x5, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000140)={&(0x7f0000000100)='svc_xprt_dequeue\x00', r3}, 0x10) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f00000000c0)={&(0x7f0000000080)='sched_switch\x00', r3}, 0x10) r4 = socket$packet(0x11, 0x3, 0x300) dup3(r4, r1, 0x80000) poll(&(0x7f0000000180)=[{r2, 0x1004}], 0x10, 0x2004) lstat(&(0x7f0000000e40)='./file1\x00', &(0x7f0000000e80)={0x0, 0x0, 0x0, 0x0, 0x0}) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000001040)=[{{&(0x7f0000000640)=@file={0x1, './file1\x00'}, 0x6e, &(0x7f0000000540)=[{&(0x7f00000006c0)="8a8c49f6400867374e92895453002e7e2dccd1537d7e57d49cdf645963815fa415ab4b373efa3fa8e568eef7671c8d52cb064793d4d15fc069f9acabd35b0fc49933f89ed9646a8e859b98b04b88abba1b3fc6637adc04c572057f26ea7d43d4d3203604d1e33b03d1e2a8156d8a1b8bdaa13609961855d5325b643e0720e454ff8faa09d3d4a3a1f657ffcc2753903514accbc25e5c25778fd472726df70d623f0473", 0xa3}], 0x1}}, {{&(0x7f0000000780)=@abs={0x0, 0x0, 0x4e21}, 0x6e, &(0x7f0000000900)=[{&(0x7f0000002e00)="3147217092b6d282f30dff80ac0c353f3cf5ce93c71db5bd9ea778d925f5cdf394f4fc2bace7bdcc75b578d1023e0f607b42738ef58f08ff459d9715e66c4979da1d5de532c19b590ee16eb4ca8e86291dd6e284170f6adf5ef6dc897aec769ccaf8050a4b0dc349a07e1bc7b74f3988319536eab154dac838ed5ca2fa901a622abab63c55f7197d39d13d12e8d946dcc65a280201f6a076fb388d160c0bae51b0af6f0add9a68873a054621b4708d1c770c41df30cfe801716aca7723a6548f1a6c26ba62877073be3f0551c65de7c3680c19cf9fa496452a1ec0aa29de24dfef9545b96b9884c2572bdc5cd2ce5aea68975d2baa72b7790d4d8d2c3ac7a7ed2019fd02f5bc45f096647ce9f8617310401db1bc1de0b6c44ffd6903a017b24030f08027f159e44c88f584c6eb6722c413362442cb6fbd7379ed9ece352a29def0643f1240c621dc2060c806721c38ccd80c31c5eaa0f078e0aaf6d8e0fd9a658e3e9b6e30e4c8623126658e795351eedcb6057811e53c9047a49e40cd553daf37fce2a2d0b570fd8caf580eee032a48e38bffb69530a0f061286df355bc153576bea3a455fe9b2a03452ecd1f7342fce33a04c30a0b1895530c59c49f0b452afcdb66a4609073feacbda20972634e39f708648ed6f0d93b7a05d2d923261e50bc14b8ed2baf692f7922bc990f936ca97b8746904116539f021e8e5638d793cdefe7bd47a9ed478a9944525f0f76cb79cfc82f6a8d11472092cc6d13024e36a66ba55cb9dd0135b653f9063cd743b8a89730bda77b828ef9f953b7e22311deb29986a99139d8d1fc77ed83cda1a1985068264513be9641546b10080ea8001b6913fa7cc47cbc23e385df2aa3e4153cd65b5cd1638be5a16609aaff8a834746e6e3d9e1b25fcfb2b145c075a07fdcb6b8f2aa8bd831d8b5b59b23c43f7b377c0466417032783189afd2cfdd3881dce6330b5942bab4c0defa20dfcea9ba95100df5e8454fd0ce54b9146ed41013d99476bf32c617f93b58abeb095f9c998cc579f4ae45b985ef6d130db817bab36902e4abe517b9e4cb2665680639c9a5bde41d58ea92232aa99d8da5483f43c7c5f40bd930c7ee1691eeb9f564bb75066305e5e6f68291f2fd84055f971e3470e9119fb28575fb5e734660d413a3301bfb23a73eddea28400045e625d5b089b17dfc4749f6b25304f052df4a0519be94498fb86a65283bd00386d8b8e7fa01701c105c86c5b799a4338073e1efe3cbbb96556dc7db84c3bd70322a5b8e71ebf2a60b5a1d081bac211c422c9fe48eabcba8bba71d31bdcc9f52b5d516632a375bb303551097065bd368a96a5ac9a8bd351b417571a7c7729f7d220f20866e48fc0c84ecc4fb6156350d5e9c5db2afa1665088cb73a2d497cd6a39e45a44174ea0c3d5a804f365dae926e0cf3c7bab6d77c89f79a34f8a6cb87ff629aa96d4583de7bac7575dad9c2f433ff199fe0ddf4f0ceff0e73fd5287f89909b77976d2dd8559dfdee4a845882cb39fe0b3171415a8f3aceb46a72a0abc7a3c08391adb2c388a49f2f846d2c3e93a04704b42be860454beb2f073d5b404c7bec239c64293460c35e8099d0b64c172319a526fafd4fa7c27b01e27e949bdae9d46ce82cba0f733fed9e8482ff454b692b7e137094fdd158a5e1c6995585f319ba1923b1304d63f924cd63457b62e0a620e61f72d237771d17508d5b8317f64c2f4a856c8cd372f29cd2420b535841e32cba2011f28f43f267c6a6adc025e7bea45cd3532e7d1c097a76ff7b066f821fd4081f8393861cc83bea7526dd0c73d6b29e19b32c495efcabd3e5093e2d9779170879408eed4ef5afb09cac7e6a84fc545f6d0e20b8e383af22ae57cf63d7357ca4d73406ba9dce91ac33030a48f0de46b623ec25ab5c73e6b3cb24566cd12d0bc7bc5b526fa8a5fd8ac1a798d6dc21459043f7f2ae5551241cf6f554ed2f057050df126a8d3a45a955032bc2b3d01d82b0c35a6be76046750076dedc07e23abee8101847b5321b7dca89acc3008a318e002e9c2212f919a29b93199e46d7d263bf33e2467adc1b6389f69e157fe8b85f08e020e3ee48d3a3dc072600b697692d1f2d50282328e0b9775705c8c38a6b3fba2b0b03989a9d106fe153cedd68135e89eb7e1ed739c327ab33cb1a58255836383256df478a72d9d3f0d0f945b5dd307b47d7e8488bd36d529b58a9bb4fa7999d77c13c9a723abaaa11f3e28bc9205a070f0f757140aef652f74524399cbc8fc0bb25d5ca9046d285110eed3128bf1bc1619063ee4ad617353d38ddd663fad8a29b15993a2970fd5b375ed7dc16cdbb439d2246ff9e453864f21e75dd7eca7c08be0ceabf2a3734f3d95cad8eedcf28b42205b5fa212efbe0731789a4aba2bd5095c3dbcf5ad14b0238b5ea56a0d136432c16fd685de548a9d9ef5aeac2c3f600245c17a63d3b9cfd5aacea2da2015d8503dd6f8ab1c4d4865b9bc1daa06cd6154be75f9c63167f3dfa574b142db5e9522bbf09d5f1407fd70937d8c2f6222d823a1bcb82d15d918af0ae2dfbff463e55aa058e5764a2c2662e74e7f091e527b5e8d3aa5b3b27a6b05deeb0ea9f7b61b9ae6950808dd9006058d218c94a6e7d2d5a3e8c917bba25f6cdfdb4a75970c5af444facf293cc3047abee1a6107db5e34758edac1eaf5a9fc3f7c65744f7a0351e32a03e730d9209907b6c85bd86a2d2952bddb29824d68e6bcc1824c12fa6e533dc5c7888dbce368f7e4a49d6d33864ba047b0116e07e2c605ca835ad2b7697aace8338475585b0ca9d08cc778e562793a1fc552b982023e9f2ddd89f03214d5128eea51ece7909f281d60bb4a25b221e06ec4d0d127c44b6438a3a3155e54e72e929d92b7e0e008eabd57d546bbb618ef4dd103ee93db12f1a77eb09559e160648195a89d34e78728062d15b35f4e1f768ef4d62a077fca8d2e2a7f59be04550610f7d23bf49ffdb625b13b55de358cc5b201eb1e9e48e2b327af81dda9f769ac7916c655a26658c1e756daff8fa9f805249637646d9f2117a433d03e3856a50b5dd6659557474455e838b41ce9187a131fc57522ea84328cea42927b32713c38c72f1bd8799f5f2be1fb1e09a2ba2a79128f58cf6041f576e416cd5d88f5e8dc0335fae8853d20fee2a0e655aa59058f45235df472b3936a80aca2943329ff9c801e6398f1e6f55d140b5b546d3ad3e2fc4e148920da69fcd6ac4d8b73dad4269569e6ffcc073862eedc4f46d2afeaaa0a62f86402e318bed514f7a77cfee22fecb62ee9363db5024b9240748b5906bd7c27d3e33a3142341333d01711e551fce518a59aff8dda654e09caeb30d44f3c65ac5ae9bb329954013adef13f31604bcf87f32b9d75521a8ce9a6a30a2b328478fbe724e62c5707eee256203ee553fd937bfad926d4ce95ff94c5b666ed3f78b6b9118d3c08a53206d2d7307da2c7e363a0534e234bdd04a5b38d00f960cc7bc559aad6fd6f6d5ce088548fcf51ff7926042324ffa7ede391451da9bbbd6a76b6c51ff091827c9d6457f06158fc3c2f922d5437140bbb4a33dc850dc15c7bbd77aaa0b100d8a3b7df611e55c3c17898a985dcd16d88d24ea074198111bf7a1cd7a7d7eee2930c02e548ae06af4d5bd3dd8ed850c00f8ce94b9c8cdc0af53901f43f6fb0eb74dde2e0d5837389616c94a8cd13ba73da5a5f94cf7ef6ca33c5c0c1b6eacc5f4af21209f21e293f1702e2d9f7643bc9c41d57abd7809aa75720ae1dd2758707b066fa993c7f00856b90b31a20991b0b6e545d350496b56e5d5be1f26aa50258f061fdc07eee84babbf34f7089f5062c3abecbe44228b665096879e54fbef19706ff04b4269137f8620d46918bae4c3d553055b3ba88e438c857230f5d6891c421bf9217628455ff60c9c84c1c5b7738d5d865d51873d979d20f5cf4074f3fbb4798a58dc558b87ffe9542ed93831a50600384b2fe6bc010ed3b8a2802543c1362ffb6646ed1a277f99c7e51d18f5d2b0291efa3cc9d5960b4dca0f63a824a04537a0d96ed30c0050a92ba2057d86197e1d2f1ee3b2af0ae5c4369e3bd573495ddd6300be15af2d19f595b2aa8b6b6d497ade0ef5838f1d82ac20c45d15c661ee283f26ca37ffc998a860d644cbbabc4bcb2b28cdab10a5a8b290cdbee04d44d4da26790061ca89ac05a41fa9704a58f3356b0068a6a1f580af859fcca72b039c68fc005c23367e7c6553700d87a5b67e9218bed5aca9c632ae7854278af9578945d1e3809dac6ca8cc5eb9e0a368f6592b6be27dc18ea433fd97f825ea99880dd08de37ad49f17b41b673fc4855728a984b3e591bc651184b795a9c97698089bebde40d078d3a121067618e4b2654e3004590fb82178c5fe170534471c120e0a89ff647932ef6559ce36ece4b719756c09eadea1bfaf11d81c70965c108d8393b98b1530c91edb126f4edeebf8ec4bd672b77a425636cb14bbb300201969849e09a93299d5fe83e33fd9f9b1d221c76abcbce8ef88089f2d28c7b4cd4fda720a19f9288104d3a6bc620d2daeea877aea7ad36370ffce6db60801bf8e56464ef824560a325b4aa365bedd15160063b75561d3b97855cdabf087472097660820bcee3bac86c5a5008f3de02a6dc94bb03ccf19223cebf4923256eb855440c8f80c790763d1560d3a6378f49087764d6d23ea9ec205f63aefae3ba9bc2ba39ec79899d0065ea52beb425920be64ae3a6d6b913709e95ebc6026a3376bef7dceb75a3925df37fd817ec29aabd6f9fe9faf6b80d750fbb6ca8c864f9d8751d8a2ddeef652c7342d47af0b2c4b59ce8db59393dbf4aafbecda2daecb01cef43fba126bc1d90e576c8da664dc90d02915fc29adbd03e5fc7f7bf9c1bd4f3da1d682770f0b962bbbeb98693848dacd324369588f2938dceb200fc96af2f038f31233e5584d7b9189101cd8535bbaac4ae9c38fb9d6234b9dc178dd4f86833a3adc7241ef84889de1682f6654615d9bec521243ebe8170957977b4dc31ffb9f0aab0e108a53482983f775a097d67694f5ae99bc2d6789701a734b9de9e918b147b289e9c61feaeae54c74b754f1bbb743c16a1d69a158b5a2f86b5e89babd48396df5c3a33d84b79795cb553c855d280f586427e2c61b9390b6a1c56c6a82c1b193769d7fe96452258ace8e97fd7f620cb9014c62a2dbf473993ecc5690d604c06696417f621cc513df9e0b2414e3f681697dfa26c4d1912fd0228bbd6a00e7fc4b23f6b3ad118d28dbd4c5c8089a23e4cb5bee70e9ea37eb6b0d6075b8df26ddbfd6fd020a4e69a609fb2228a9c1ec21ef5e0a681fb7cde7bfeb2194165beac5b46e61996308bd218c455c1d1980350c6c93dd0eac6d7825e9f74c9f1c161aebb6c42c6de510980e3b3e37afc04daa899225e89b5dc6b91952552ba8a99604eb4bed91e07371cbcb6516b15cb70e2ec1ab79df4ba9c96340b2e8653e9c22432d5bf216fba55ddf7b5808fa8c79e52b01851e2292cc6fc1a39c37fdbc180aa168c84070a0ea39fcf9adf1153e50fb1a480ef0aa880ebb7a58506a6cca41b99b15ab8099e632a92aa99f748125874f3aa30ac401e2b66c0623d04fb4ae6b80c3745010c8234c94099ea14ef51669310ad68bea9f778afe1d33e3586b05659ffc0c97a94ad4d3b11e55230a089cc102adb483536ad8f6b54a56703799fd3a78c61bdbf1c9dc411e1f2a7566400e34e67500c1de1c1ead48f52c9d7617195c57221b8ee392e894c82963be433f8569e9486e450f53559", 0x1000}, {&(0x7f0000000800)="81df4992aa00930bcbd777e2606ef5fd9263ab8776355d0eeaecb976803cf0f8d44326637dfe1490b33fd5953d437aadb60294cd68c380ea53f9fde0f02aea576f695cc0a8808efd61fa5a885eae5e3b9193ccfd432bd005002846de82a5a5460454bdb0e571242ccc1e8b6ba72f9a0b6cd17bf6e75f90d6c7fc8ea3b4ef85c2314fe0e4be2df88a8a8ce774f776e03abff257c4a0b83901be877f38e4ee034c03066bb5fa92ae29e5d296a88ebdd2397f271f05884c79cb50de41", 0xbb}, {&(0x7f00000008c0)="824b793ef60a962c5c3044ad4d", 0xd}], 0x3, &(0x7f0000000f00)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0xee00}}}, @cred={{0x1c}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, r5}}}], 0x108, 0x44080}}], 0x2, 0x20040800) memfd_create(0x0, 0x2) 07:53:39 executing program 4: bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0xa, 0x6, &(0x7f0000000000)=@framed={{0x5, 0x0, 0x0, 0x0, 0x0, 0x63, 0x11, 0x4a}, [@func={0x85, 0x0, 0x1, 0x0, 0x2}, @call, @exit], {0x95, 0x0, 0x5a5}}, &(0x7f0000000080)='GPL\x00', 0x5, 0x29e, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x70) 07:53:39 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000040)={0x18, 0x3, &(0x7f0000000240)=ANY=[@ANYBLOB="1800000000000000000000000000000095"], &(0x7f0000000100)='GPL\x00', 0x5, 0xc5, &(0x7f0000000140)=""/197, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f00000000c0)={&(0x7f0000000000)='kvm_ioapic_delayed_eoi_inj\x00', r0}, 0x10) bpf$BPF_LINK_UPDATE(0x1d, &(0x7f00000002c0)={r1, r0, 0x4}, 0x10) 07:53:39 executing program 2: capset(&(0x7f0000000000)={0x20080522}, &(0x7f0000000280)) bpf$PROG_LOAD(0x5, &(0x7f00000017c0)={0x1, 0xe, &(0x7f0000000200)=ANY=[@ANYBLOB="b7000000ff000000bfa30000000000000703000000feffff720af0fff8ffffff71a4f0ff000000002d040200000000001d400200000000004704000001ed000062030000000000001f440000000000007a0a00fe00ffffffc3030000f1000000b5000000000000009500000000000000023bc065b58111c6dfa041b63af4a3912435f1a864a710e4d58db6a693002e7f3be361917adef6ee1c8a2a4f8ef1e50becb19bc461e91a7168c50000000190f32050e436fe275daf51efd601b6bf01c8e8b1b526375ec4dd6fcd82e4fee5bef7af9aa0d7d600c095199fe3ff3128e599b0eaebbdbd732c9cc00eec363e4a8f6456e2cc21557c0afc646cb7798b3e6440c2fbdb00c37dfca3e35208b0bb0d2cd829e654400e2438ec649dc74a28610643a98d9ec21ead2ed51b104d4d91af25b845d8a7925c3109b151b8b9f75dd08d123deda88c658d42ecbf28bf7076c15b463bebba2c598b4fc72f526d8e8afcb913466aaa7f6df70252e79166d858fcd0e06dd31af9612f2460d0b11008e59a5923906f88b53987ad1714e72ba7a54f0c33d39000d06a59ff616236fd9aa58f2477184b6a89adaf17b0a6041bdef728d236619074d6ebdfd1f5089048ddff6da40f9411fe722631cb467600ade70063e5291569b33d21dae356e1c51f03a801be8189679a16da18ec0ae564162a27afea62d84f3a1074649c6bc6ea9f2bca4464f56e24e6d2105bd901204a1deeed4155617572652d950ad31928b0b0c0dc2869f478341d02d0f5ad94b081fcd507acb4b9c65fee9d5a17f48a7382f13d000000225d85ae49cee383dc5049076b989b40000000000000da60d2ae20cfb91d6acdf538f9ce2bdb1ab062cd54e67011d355d84ce97bb0c6b4a595e487efbb2d71cde2c140952f9a0f0bc6980fe78683ac5c0c31032599ddd71063be9261b2e1aab1675b34a22048ef8c126aeef5f510a8f1aded94a129e4aec6f8d9ab06faffc3a15d96c2ea3e2e04cfe031b2875353193f82ade69d0540059fe6c7fe7cd8697502c7596566d674e425da5e87e59602a9f6590521d31d3804b3e0a1053abdc31282dfb15eb6841bb64a1b304502dda787343ce3c953992e4a982f3c48153baae244e7bf37548c7f1a4cad2422ee965a38f7defbd2160242b104e20dc2d9b0c35608d402ccdd9069bd50b994fda7a9de44028d6112a0c2d21b2dc98816106dec28eaeb883418f562ae00003ea96d10f172c0374d6eed826416050000000bfe9b4a9c5a90ff59d54d1f92ecc4e95dd2d18383117c039862198899b212c55318294270a1ad10c80fef7c24d47afce829ba0f85da6d888f18ea40ab959f6074ab2a40d85d15017ab513cdc6c0e57fb1c1ca571380d7b4ead35a385e0b4a26b702396df7e0c1e02b6e4114f244a9bf93f04bf072f0861f7580e69db384ac7eeedcf2ba1a9508f9d6aba582a896a9f1ffa968eacea75caf822a7a63ba34015ea5aacb1188883ad2a3b1832371fe5bc621426d1ed0a4a99702cc1b6912a1e717d29135753208165b9cdbae2ed9dc7358f0ebadde0b727f27feeb744ddcc536cbae315c7d1fe1399562ba6824840bd2951680f6f2f9a6a8346962a350845ffa0d829e4f79adc287906943408e6df3c3bfd03aac93df8866fb010aec0e92bed1fe39af169d2a466f0db6f3d9436a7d55fc30511d00000000c95265b2bd83d64a532869d701723fed000000007baa5b6a686b50f0937f778af083e055f6138a757ebd0ed93517a6b244f9acf41ac5d73a008364e0606a594817031fc2f52c8785fe0721719b3d654026c6ea08b83b123145ab5703dad844ceb201ddeb6dc5f6a903792283c42efc54fa84323afc4c10eff462c8843187f1dd48ef3fa293774d582956ff0f40b10ca94f6feeb2893c17888e1cdba94a6ea80c33ead5722c3293a493f1479531dd88261458f40d31fe8df15efaaeea831555877f9538d6ee6ba65893ff1f908ba7554ba583fef3ec7932f5954f31a878e2fae6691d1aee1da02ba516467df3e7d1daac43738012e4fee18a22da19fcdb4c2890cda1f96b952511e3a69d694d625e0b2f808890205f3a6da2819d2f9e77c7c64affa54fec0136cbafa5f62e96753b639a924599c1f69219927ea5301fff0a6063d427f0688430754c02180d61542c25000000000000000005a7b57f03ca91a01ba2e30ca99e8ebc15ecb4d91675767999d146aef7799738b292fd640dfef6b04d086f737a159d7e0c6e4d81ad64a8bbca485683252b15f36b788bce5ccdbaf75c94cb93499f6947a967a7bce14c6de4e7c0660d80010f5c653d22d49030a8c2a4ab595bf4238f18ca428dafc7ac96d404607a0000000051a2104f22e6db5a62b5089c1b45282d38864daa3ae81d6b0968d1d2867b91b7d120617d12d91db2633d6864da40b54783a17aaeb6737c323f9f98e354cc98dcfe23ad01bd1c61563e69ffe1c2c73e1661261173f359e93d2c5e424c17998809ec8f0232b3955e052a4cecd89008f70314a0bdd491ec86a4555d89fe0120f64c62e8e3ed8bcb45202c3d4bbec8d722824c0ebca8db1ea4a0032f37ff559be78537756ab5bbe4fe9af5d785d0128171c90d9900ce2532b0f9d01c4b45294fbba468df3e1b393cb4e62e754598e47df6bd06431c94bc5d047899fd219f448bf9189c65c9d91eda6b52a373803a9efe44f86909bc90addb7b9aee813df534aac4b3093c91b8068cd849904568916694d461b76a58d88cf0f520310a1e9fdc18cde98d662eee07751532d5e7d0a8811922929e085392ab3d1311b8243266d87047f601fa88a0da36b9f302e8262395174328f2482d14008de83070744f143fdec90ba5a82668d5fac114c13955ad6dca5db2231d8ba14c54c47ed04a4b4ace17e357e1d6432399f87a7a14245bbd796a09313b247b95d37ff40a404bdad74bd20000000000000000000099fef7cd7af3ce64a92f95d89d125b1e641240d7e5e2fa3d1f7684448c3e3822d617e205061298b939a191be4b48e169bde2cae3accc5bd40a2968b59c93d35f8e42366fdef907000000f01ce68abff28861aac8302d268569dd42e194e330c7aaa54ebbcefd23f21ce8153b9926e12e015cb56119df72c7533a48d028ad0c74e2a9478fa3be18a1a2b65079cc1c7bc46dd12305a1ae9dd19e8d525206c0a728cfd42193abe8130b51d6c9b94c5513df2d85e8c01a2d69841f3d7799ac04bdc590bb1c89b9c695f163e57343c9bfb59909433c9001c5f8b23e38534a538fc933cac6c2a92d038df638a0f226df9fb857bd414c2cd69985e8053e3dfa41614d7c74d04d8c2471041d17c730fad28395f8d4688898cd58b9d600c851626529bb581012fd7a8139166fd5e59c84f4ab279b1b99c028db4cb9680c8035f967db18de738844da7e260a830c1ffa49f5af3c15423a0e315acb82a3e89218cb314e68fda4d94aa1d815babc13b9fd336d205c5913ef670000000000000000ba470bfe62fe2933082149d42e8a0000000000000000"], &(0x7f00000001c0)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x0, 0x10, &(0x7f0000000000), 0xfffffffffffffd00}, 0x48) 07:53:39 executing program 1: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:39 executing program 3: r0 = syz_open_dev$vim2m(&(0x7f0000000140), 0x3, 0x2) ioctl$vim2m_VIDIOC_ENUM_FRAMESIZES(r0, 0xc02c564a, &(0x7f0000000180)={0x0, 0x31384142}) 07:53:39 executing program 4: setsockopt$IP6T_SO_SET_REPLACE(0xffffffffffffffff, 0x29, 0x40, &(0x7f0000000600)=@filter={'filter\x00', 0xe, 0x4, 0x358, 0xffffffff, 0x310, 0x310, 0x0, 0xffffffff, 0xffffffff, 0x408, 0x408, 0x408, 0xffffffff, 0x4, 0x0, {[{{@uncond, 0x0, 0xa8, 0xd0}, @REJECT={0x28}}, {{@ipv6={@private2, @mcast2, [], [], 'veth1_vlan\x00', 'pim6reg0\x00'}, 0x0, 0xa8, 0xe8}, @common=@inet=@TCPOPTSTRIP={0x40}}, {{@uncond, 0x0, 0xa8, 0xd0}, @REJECT={0x28}}], {{'\x00', 0x0, 0xa8, 0xd0}, {0x28}}}}, 0x3b8) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000001c0)={&(0x7f0000000140)=@bridge_delvlan={0x18, 0x71, 0x0, 0x70bd2d}, 0x18}}, 0x0) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000040)='./file0\x00', 0x0, 0x41c, &(0x7f0000000540)=[{&(0x7f0000010000)="200000000002000019000000600100000f000000000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d26400004003", 0x66, 0x400}, {&(0x7f0000010100)="0000000000000000000000026856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000010300)="03", 0xfeb1, 0x640}, {&(0x7f0000010400)="030000000400000005", 0xffc3, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f000000000000040020", 0x1d, 0x1500}, {&(0x7f00000000c0)="80810000007f", 0xfc3b, 0x1600}], 0x81, &(0x7f0000000180)={[{@errors_remount}]}) 07:53:40 executing program 2: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000014c0), 0x0, 0x0) ioctl$BTRFS_IOC_SUBVOL_CREATE_V2(r0, 0x541b, 0x0) 07:53:40 executing program 0: openat$btrfs_control(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) r0 = add_key$user(&(0x7f0000000000), &(0x7f0000000040)={'syz', 0x1}, &(0x7f0000000380)="a8", 0x1, 0xfffffffffffffffe) add_key$user(0x0, &(0x7f0000000100)={'syz', 0x2}, &(0x7f00000003c0)="afd5853d303dcd171bd390d9880e8e1e51d20ee68d37451624a55f0aac09955c66563be70c61a917ecf8090d93bd1e3b0dce4896d112a932975b4d0bde4683d8804c8dc3e849573ae6fbc2c42f77fdcaca41a61e9e00d6fb1d7dcf3e0d46bae9bc25811ec0eeb1ab26963e30d853fbdee7437077e88dde41c83868dbf020087e4972496a8f0ab4a24b6f7667901e9e45", 0x90, 0xfffffffffffffffa) r1 = add_key$user(&(0x7f0000000200), &(0x7f00000005c0), &(0x7f00000000c0), 0x390, 0xfffffffffffffffd) keyctl$dh_compute(0x17, &(0x7f0000000140)={r0, r1, r1}, 0x0, 0x0, &(0x7f00000001c0)={&(0x7f0000000280)={'sha3-512-generic\x00'}}) 07:53:40 executing program 1: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:40 executing program 3: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:40 executing program 2: r0 = socket$unix(0x1, 0x2, 0x0) ioctl$ifreq_SIOCGIFINDEX_vcan(r0, 0x8933, &(0x7f0000000100)={'vcan0\x00', 0x0}) r2 = socket$can_bcm(0x1d, 0x2, 0x2) connect$can_bcm(r2, &(0x7f0000000000), 0x10) sendmsg$can_bcm(r2, &(0x7f0000000480)={&(0x7f0000000340)={0x1d, r1, 0x3f420f00}, 0x10, &(0x7f0000000040)={&(0x7f0000000580)=ANY=[@ANYBLOB="01000000d7fe68ca0000000000000000", @ANYRES64=0x0, @ANYRES64=0x0, @ANYRES64=0x0, @ANYRES64=r0, @ANYBLOB="7bf81bb9f1"], 0x20000600}}, 0x0) r3 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) bind$bt_l2cap(r3, &(0x7f0000000380)={0x1f, 0x0, @fixed, 0x0, 0x1}, 0xe) getsockopt$bt_BT_RCVMTU(r3, 0x112, 0xd, 0x0, &(0x7f00000000c0)) 07:53:40 executing program 4: r0 = socket(0x100000000011, 0x2, 0x0) bind(r0, &(0x7f0000000940)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836010004b0e0301a4ce875f2e3ff5f163ee340b767950080f5ff000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r0, &(0x7f0000000100)={0x11, 0x0, 0x0}, &(0x7f0000000040)=0x14) r2 = socket$xdp(0x2c, 0x3, 0x0) setsockopt$XDP_UMEM_REG(r2, 0x11b, 0x4, &(0x7f0000000180)={&(0x7f0000000000)=""/5, 0x1000, 0x800}, 0x20) setsockopt$XDP_UMEM_FILL_RING(r2, 0x11b, 0x5, &(0x7f00000004c0)=0x80, 0x4) setsockopt$XDP_TX_RING(r2, 0x11b, 0x3, &(0x7f0000000080)=0x2, 0x4) setsockopt$XDP_UMEM_COMPLETION_RING(r2, 0x11b, 0x6, &(0x7f0000000140)=0x400, 0x4) bind$xdp(r2, &(0x7f0000000900)={0x2c, 0x0, r1}, 0x10) setsockopt$XDP_RX_RING(r2, 0x11b, 0x2, &(0x7f00000000c0), 0x4) 07:53:40 executing program 1: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:41 executing program 0: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:41 executing program 5: r0 = syz_open_dev$video4linux(&(0x7f00000000c0), 0x0, 0x0) ioctl$VIDIOC_DECODER_CMD(r0, 0xc038563b, &(0x7f0000000180)={0x0, 0x0, @raw_data}) 07:53:41 executing program 3: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:41 executing program 2: r0 = syz_usb_connect(0x0, 0x2d, &(0x7f0000001000)={{0x12, 0x1, 0x0, 0x30, 0xf7, 0xb3, 0x40, 0xccd, 0xa5, 0xf156, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x1, 0x88, 0x8a, 0xb4, 0x0, [], [{}]}}]}}]}}, 0x0) syz_usb_ep_read(r0, 0x1, 0x0, 0x0) 07:53:41 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000400)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000140)=@bridge_newvlan={0x28, 0x69, 0x1, 0x0, 0x0, {}, [@BRIDGE_VLANDB_ENTRY={0x8, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_TUNNEL_INFO={0xc, 0x4, 0x0, 0x1, @BRIDGE_VLANDB_TINFO_ID={0x8}}}]}, 0x28}}, 0x0) 07:53:41 executing program 4: bpf$PROG_LOAD_XDP(0x5, &(0x7f00000001c0)={0x12, 0x4, &(0x7f0000001300)=@framed={{}, [@ldst={0x1, 0x2, 0x3, 0x2, 0x1, 0xb}]}, &(0x7f0000000040)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x9, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:53:41 executing program 1: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:42 executing program 3: r0 = syz_open_dev$dri(&(0x7f0000000000), 0x1, 0x0) ioctl$DRM_IOCTL_MODE_OBJ_SETPROPERTY(r0, 0xc01864ba, &(0x7f0000000040)={0x300, 0x10, 0x1f}) close(r0) 07:53:42 executing program 5: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000080)={0xffffffffffffffff}) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$int_in(r0, 0x5452, &(0x7f0000000040)=0x1) splice(r0, 0x0, r2, 0x0, 0x6, 0x0) close(r1) close_range(r0, 0xffffffffffffffff, 0x0) 07:53:42 executing program 0: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:42 executing program 4: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:42 executing program 1: r0 = syz_open_dev$sg(&(0x7f0000000080), 0x0, 0x0) r1 = open(&(0x7f0000000100)='./bus\x00', 0x1c1142, 0x0) mmap(&(0x7f0000001000/0xa000)=nil, 0xa000, 0x0, 0x11, r1, 0x0) ioctl$SCSI_IOCTL_SEND_COMMAND(r0, 0x1, &(0x7f0000000340)={0xcb3, 0x0, 0x0, "2633f06882e95ac820a58bd8f4114f9ec63fc5d2acddd511a20b2fd1931cf1a1dfa084e1cc3018766e482e5d2dcd78915f863683d9fb0decf5900b2bd903dd02c6aa44bd6323033ef934db877afd271ee8806a1a6002cb7bfe93b4791707ceca2bc700ea07da13dcd529032f3753a9fc85cb5ee0aec7b352ed535aeb5f529049aae79917bf7e1156578d76f2c285050e26316a205ca30d03043d8a1c4806c14f65e5f6691b994f527e3cde9229dabd2712da7a64310b4482188994e65a50977ba3a833bae8a878284232a250ce12c1fb3577e34830f47cb526ef24c2be807f1779df537dadf78c69acdd3bf84862d1cce70a62904f4fb4e62f40c337a9e129c030cb796c5e8386e128b3801feb615ed0628dd111c6570a5f63c168841afc832acfd981708cfcc0938442bcb76e33ac722872aba4061a37c31bbe3fdd9915d96fd45e4ef363038bc825edb1769e3bf2b56a6eb7e7cc9f71e2a3122eaa8ac064b18de29d202444a9489ad6e40c89ae9bd861d98fbde89f84ccc09e323773253abf466b30ea4a7b3add811451288924bdb976cc16ed363d5555e561ea05a231c8beacd474afa37fc07ffc116b17244f7955fc297e20c497418ac6251173e0fae1590e4ff147caf9e34849d90a627f6dfbaca19e5d8de234a6ac84b56e7fa8caf6a46d3e1675a843f7c67a47a155400e5f09a9f9b8d8b2b544898ef679e20cf2c9d022b528d08ceb9ed0c48d416c668ba72c1c94fdd4df775e89e2fdbfb270fb916623c544e68a7e3c54c6fa9d38c65f1360a72e4dacab28630ecccce0140c899162d9af23f8c88459fa61afd18ff7c4f57e4e943ed0994237de7aab6905f7b94b19e95bd63ad0276791882feb22bbda5e2af052b44afdf9554c53caa778297b4f7a78e5ba5bed0116f315effc6004ecb79a457cee09e658672f6d8d3f2b2c67268364ba8979113a7c4e8ac1e96502ca50b13f17eed5b26efbbe13b18b821ef31aa51dfd1385fbd77316b3c95449c689f766246d30a00e7d4cd09ca4c46ab410b6a5933ab61c0cf48afe3afba73105add81dd6d75f7218b547fc030463ea5c015ec4ef9f63d4720107c2c66d89a2bcca1adbaa9d1a59dbd06eb65a59739bbcfd064ad54f4ee67c57a0a0bb854e8dc432f6c7de070e75db07336244eabd5cb945778d40faacfba437910fec08c42977dd55786c3b3f73477c6b883a24e67b702085254ac8009d541f246091faca5567558aada7ba6c9d92db87ca53f1b4051f3f042e0471c34146be8dd98f0f8115abd5ed78ec248ac07624c431b155cc9675de5c8bf9936f520c71208c1d1f03dd671f1d90f11ca15619821d1f61b96b7325667bdd93dd3712195cb69694f8bd1431bacb7b7facbafc257fa434b5e600c76e01493dd254577a1b485bcde4edcc4e8e71ca2d71a928ec5a6149705f25004963cd6c85f14a8702f2d835440e6f1c8839d6565aee6dc0276bb38bcee7d8e0699c9e23292b9ce4e453bf19b88f65bbf308b7a9a8e933dd311a230424562a04f658bad66405f47cb6b9d3cdaea9e53ffd6b184f2087f8d35eb0e8c1200665ead01c40ae782e950ccc5fe54d2f157c904c06174da1ba489de014b3a8065d51ac3b50f8bcad73eca1f71bce2f4dc4f1297a65339fab5d511e6e69a9cc5aa670248d9e3c38c727101c5245cf1f25e083e4c35a6b5daa2038640994444f9a388625fb97b23806ebc856727d8014a54f4cdb274d84916c304827340c6ea80a613c70e790813444603908a8fd3b73b923b14705b4259c8ebac05e3dd28278c95b2419f9b6b4f52ee7fb233926d6b0d431488a0314b47fac9cdf203a70ee9749f599f13a7b547b745801f3bcffdfca3f973c21a7f3940448965b3cf3629f90b55c54cf6f03bf5d3de39f4fe925a4213f20fd5c09a431d7ac3b6467956c01cfd1b30dcf9cfec9dc3ec0eacc455fb8aa878e8f07a79a361c591548eee79ccd9ca78889174d4a0d6123f1092e1a38b454648cabdf706d46bf9bb481617dff4e317337814de3c0dcc0dfa6094dc2a6fbb9b8626a999c6bf4b4a503678364cfb058594ac7fe55e4e091a77321d5b929b9a4e19503dc8c50215fdfc15865e94d054b67960352fb6652b295def3896ef29948381ae2521cbc7df92069ebfa7eccc16c240fef48bde410b195222a136baef30f95e85e028018d345e64a89513cbb43f6128d9dbcb06a90911289d4f2399627852c41b3ae23f447cffa2112fe193ca3137f25980490a93cd2d69cedd6583bbe6d74a328a35de0cdeccfe70b8baa4b6f1580642147c0d711b7c8f7c3675a6ea246dd40cf9509725524cbac811238f9eb8692606ff9a445be6048f5fa2d42a7b6852c0c437c2004f4b54b56ce3b493d3cd9aa8e90a2372b44abc59031381b50ccfddb58777eb9fb0ffc47d87a68fdab671cbf1e4d3bb6dc196ce23a0f33e2491cdf6ed6db14046c31814cef1001ea6cd1bf0233423e2c850dcfd3cc635080b77c521058c07db72e06fd10e7fc62f318bff4eea83f70f158f5452131853e3f4eebe74da7f3b3a32841bbd2cd8733a7b0fe8e481c0e5a9a3351da31afa1fbcfbdd0e9455f69c50a34fbfcc25bb108fea83f32e668b29a3ea4298c303429bbfb54af5d37316c9eb8b645cb8c97fb2ba9dbb487c899bd225a12d5fbd4ca0b44b281fb4447c8ef245c7456bd54a817fdd84805eb3b77320a115deec97ccd9f3d1117c32a1ece8117ec394a06f6a432ed90e1376be181dcb280e0623198eaa6b760ee5f7cf9a8ea9a466902f0e62af7c7a41d1f9eb0e828137d83d84ebd32a4c0c8b556efaa4f26f5d6edf972812b29f7d0b0e6c468f8ed295e11ce5573551d2a3a9ec0354bae12b3ac7345a884542ee04fcfe9f08a91a6a33d93eee6a41a34bf08efd178565941dbdce50d9a4889b4e90df0a7453214a5489783bae82ff3a2405c6055df244bf89aaabb92319b8a148a49d408377f49b1642c5ce791dbb6e520fb98f0774cc9bbce57bc9d4af51b2fa887bdc1d46c27792a82c967daedb7aa66da9dea4970279c3d3a2d57bc465e1c4700f5770ed2e5849f8fec066947289a5094ffce312def2655fe582ce9ea8fcbb87ab42b4350b7d211c0280b21a3e47a8b294e4eac0f0a2439934dcc3119a3765003d003dfe11befaa715820cbe7aa9152354763fdde7f7e3186d2a7a3fa3e44dcb9b33ce8501948cb3a944d41687c586b9e863512d1ab750e2d52c619ab4190676877786bc4dc514adef01e0a38b58c49301cccc4490210609e4d9036be1e83326b700c9197a394f7b8f651efd557bc97332ad0161b0e28aab5c80506d740f58dad2e205712668a241fb88b65fdffda9541c626189040c76992325af778d718d839bb8cdf1f8b3aac264c01bf7b7b5a6ef773a50e7b60da1c52c4853aa875ea5216d92b33657e8136708b07896ce75aec04d0debd6d3baa8fd38ae9c8c4f93199f8d332b49adf8964f928e45d1d144ac70d29126274bd558bc706f398b99e102466ddd61745cc2d7e4b6949a1fc24e828d1ff144aa8d03f4c1fc8157473fea7699b3b329f7511898f8f749c24709a7c55f47dde5ab7d1303504859a43e59b69e84dd5f21793ad5ef5ee90845f0452f9f155c7f37213af7697b3e1e10535307c316650ba7cac71158ee3779b4d6963de4be7c160b6e1bd986be5b169d31bfe4e8c4719ee380e093786bb841d785bf56b2f2b6e646c06251a369865610fba2bdf2a652bb6b1aa36e304fc8118fe12ad9720c80a34e2386167169134e749483064685f9eb9d72221a871a00dacb42d4bb647b36cb84f7e5e182cf203bca3138171a3c00d085e061fa0d6ebbb1bc47ea91a2d31e94b7e7e55aee1219772d9784cbdd284cffd7e89eee7d8542fe1e14f6405eac15126463ee20a67aca3268fff186be91d490de62f2d70ce3825315d9d0e4f3b69696c608e9b6688e7bb5d87b43b53f60a1fc12e118ae3f15d0fa73d28602692379b810222b8e7f243bbc19d037aa3fcc158a7d48d0359e8efd4acc8afc682b179ca4e98fc2ba39c618a1a968cad3f98fe24aab0d02a88d3ff32f3d24f736aec137d2cbfe4841765d9829ec9baec5cd3a6a4d92848576ff827b66f99c44774104631ef00b3bb9682528db8d71d95df0291d49ccb86cd591f0ce323bda105c798922fb4d5e54bcb5e3aa51384f423d86475d4c3cbb6088338e47d69baa2ee16b369e725989ecd88320945b2949c968253e8bec86a0ab802d42e2257ed54d3bbb4462add79de630b3a9cd969895739b71cc3ed848cc4c0187af3b42d9277590470b9fc067b22d9bc445921eef657cea7480f9b1e073f18ff60b0cb187a9bfe02611f1c8135ec6715abf751a861dc38848c700db2c7ce4f37335c8c5cbdc2eca275fcd6a250a5cd4f79b0054920c756301decab69c3a985ba3210fdaf8a3008033415dd7e6182015f8c599a76d86db95cb7c20694bf6d437906f55ee2a31bb3ddb29b9a16ecd7bfef23d908bba5ca4179db6100ae9b71c94979f9edda213afce0c7c3f18b7e881f383ed076b73fbcef920eb28168c3df1cd287e3581d6f7a5f5304d2da40caf0d03f1b9d468c24e582187c"}) 07:53:42 executing program 2: r0 = openat$vim2m(0xffffffffffffff9c, &(0x7f0000000040), 0x2, 0x0) ioctl$vim2m_VIDIOC_S_CTRL(r0, 0xc008561c, &(0x7f0000000080)={0x980915, 0xe7}) 07:53:42 executing program 3: r0 = socket$nl_crypto(0x10, 0x3, 0x15) sendmsg$netlink(r0, &(0x7f0000006ec0)={0x0, 0x0, &(0x7f0000006e40)=[{&(0x7f0000002400)={0x10, 0x3d, 0xa05}, 0x10}], 0x1}, 0x0) [ 1112.953121][T14134] program syz-executor.1 is using a deprecated SCSI ioctl, please convert it to SG_IO 07:53:43 executing program 2: r0 = syz_open_dev$video4linux(&(0x7f0000000040), 0x5, 0x0) ioctl$VIDIOC_SUBDEV_G_SELECTION(r0, 0xc040563d, &(0x7f0000000000)={0x0, 0x0, 0x2}) 07:53:43 executing program 5: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000080)={0xffffffffffffffff}) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$int_in(r0, 0x5452, &(0x7f0000000040)=0x1) splice(r0, 0x0, r2, 0x0, 0x6, 0x0) close(r1) close_range(r0, 0xffffffffffffffff, 0x0) 07:53:43 executing program 1: r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0x4, 0xe, &(0x7f00000006c0)=ANY=[@ANYBLOB="b702000000000000bfa30000000000000703000000fef7ff7a0af0fff80000ff79a4f0ff00000000b7060000efffffff2d6405000000000065040400010000000404000001007d60b7030000000000006a0a00fe00ba2300850000009b000000b70000000000000095000000000000006f88300eaa179843d24f95acf0af8329ce97285803a352097d3999ae5f5d9ec5300a584fe44c80de0b061417e9adb31b0e536cc3d2f2518a73b560f982c81ddfe3961a29ea15fa7ea97e1e33ba261446f6da6fe8af496d22585ffab3af24974fae7b28e6902c04006cc6983945dd3663f79f67b9f0f0af9f42df3588c012df45855e54c1f5740f16f5bf23560bc220b971cf4f4bd43473a5ac2acab9768cbc521157fae52a3e6470711727c4a32a6b7e0ed7f139814b20263d6acdae05d2b3fed476d2adda686d3ccb9a1de46037f57fadf535d8b3078e70a7b558f7a56f41022feec18e013abd8fda2b9677fd5b49521d5cb2ced401d7b6fce658f203a9c2da91116d98bf30da1be85b9c7f2814820fbf7be91cd13b77f4e421af2ef9e5996273686e9908bbca3882478560cd18fa2c0b7d7810616e8848da842c661577818c2069cb41aa3f4b7fc28882cad315db3fffc5183deca7a32538ec0ad70d4f55382c1879b71ec504d2f3e38820895a3984a989b7712104533a863d57f690a83428ee3d0123a5d5ff070000000000005f03f419a6e45fd98e8f819bd982293c5e3270e8e477da4a8202ebbdafe6b2e38c9d7e506f5da2958cf7f0d9b31ca36719fcf3275e64e29d39d158cebe433088f8760545ee1172e1963005329385e9a334aec76530860419df627805971b772a1da96f0a227514bd0bc26df2b51e45e4eceae1ddd43c33ebcf6cb98db295ce2edecb253e0471714fa1760615ffb20ae13a1a94f7ae229fbf5da7cae4f99cee82fc98c860c3e352ad16f98208cf1469dd6c3212582a3687f7dbdf70ef5e34a83c7986d9c3892964e0210f4e94ae5daccec78d4543526877e10054330801b1412b390864190520f18bc66aca912321c9d465dad604bc0dc5732ecf625328fb7938ac528f51c9d50300000000000000b3336ed3a96936b415df4d0711fec100000000000037e77e568b7f6cf7eae765f31d05854fefa8850f5e00754b9dc41f3e474e714a058127cde39900ede1a9e4c6786ef1bae0f400251a97d2c1b96496dfe7ed8aedd45cb5b78615bb5878fb22e66139ea9fffdb7574e7274e17b067f5693ac9541f07de61e17de4d132c36e2ba4e976fd615cd9981d39fd668e0b253de2ac07fdd26166322978eaaa95c21beab7f0f8ede6bed12f8281a313140dd586f220189c4da17304bff3dc1c06291fd13eafebf14b2bf9b6ad71b81a8eaceb59a777f08b21783b55445943fe55dd2c939351a7a3a18395bad71d8dd65b56f60324187da6b1299e02889b9ef650e01666bb3510e25c463dd6d5000000000000000000000000000000000000000542913cddf9a5fa5e61728b83843c7f7f05c2a3f7d43280af3bc51484e50e2da9e124faa5555efc28a618d685741588d727d5e50f2c75d9bd5f8150c2d847ad75e251740f1faa32348ba965840af5b9764c46a161117868ea00bda2e681fad7d0344158f5813a2479f028ae8c470f61d063fadda0800c03b8b85b59ac42234fbc440453b93e8e2726e915c4d44f213f1771cad6f491a7d8ba87f4679bf6844a5497d9d884589633930f89d78b5348f6472656758b1f99b0da5696b8036a8c70e348846da35e1b7d106be4779de69ebe3f7eafae4302641f2c3d878e3b7e23dc2ebf35e54aad42c36d35b8d94b0be34062a65c2eac1e46342f1ffee4367bcd890767d36d5cb356f1d2d7b7501fc0d99bd86cc8c902e17c94e2d5854abfc196f5afd33745780f8c6dadc2a06a64c78ea949e83bdade9fcb89988269f994209420740f792925dd23912a71efa906df683d940805a0f3832d230775207be35709d07b8110ecaa5c12ca0413480a4d6499ed00660188d74f20e3cc3c7469fe9ae75226ff837b0c39f13f6c553063b7cf43f596ba6b6bba2aeb46b9ed622bc39ec2c8485e4803"], &(0x7f0000000340)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x304, 0x10, &(0x7f0000000000), 0xfffffea2}, 0x48) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000040)={r0, 0x20000c, 0xe, 0xffffff39, &(0x7f00000004c0)="0500000300000000f30f9b0e8600", 0x0, 0x949, 0x0, 0xb, 0x0, &(0x7f0000000580)="0a60a922e99f9854172b27245207efc64d74cd", &(0x7f0000000600)="1a6a22fd31828e9503d790425e923393f891ae815da804388ff0895653c68368adb849a26d094615e6d5fdbee494a9d2e5571b6355315fa01dfce7e68265ade097f2fe46dbe572c84225521d607fda45f02b745381d513878e13685e06565a8ae49eba9120b45725e0159b0284a199b62b590bb2121e5f507db7c35fb3b3d1906e667013d003c849c474d639b79a4aecc91c17e3aab563c25a4d5c1674899b143cf4a9ba1749315f1c6727bfb06134", 0x0, 0xfffff001}, 0x28) r1 = bpf$ITER_CREATE(0x21, &(0x7f0000000180), 0x8) bpf$BPF_BTF_GET_NEXT_ID(0x17, &(0x7f0000000700)={0x0, 0x0}, 0x8) r3 = bpf$BPF_BTF_GET_FD_BY_ID(0x13, &(0x7f0000000000)=r2, 0x3) bpf$BPF_BTF_GET_NEXT_ID(0x17, &(0x7f0000000700)={0x0, 0x0}, 0x8) bpf$BPF_BTF_GET_FD_BY_ID(0x13, &(0x7f0000000000)=r4, 0x3) r5 = bpf$OBJ_GET_PROG(0x7, &(0x7f0000000d40)={&(0x7f0000000d00)='./file0\x00', 0x0, 0x18}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f0000000dc0)={0x16, 0x2, &(0x7f0000000480)=@raw=[@map_idx={0x18, 0x8, 0x5, 0x0, 0x1}], &(0x7f0000000500)='GPL\x00', 0x200, 0x3a, &(0x7f0000000540)=""/58, 0x1e00, 0x10, '\x00', 0x0, 0xf, r3, 0x8, &(0x7f00000005c0)={0x7, 0x5}, 0x8, 0x10, &(0x7f0000000cc0)={0x3, 0xa, 0x4, 0xba9}, 0x10, r4, r5, 0x0, &(0x7f0000000d80)}, 0x80) r6 = bpf$BPF_PROG_GET_FD_BY_ID(0xd, &(0x7f0000000fc0), 0x4) bpf$PROG_LOAD(0x5, &(0x7f0000001040)={0x15, 0x5, &(0x7f0000000d80)=@raw=[@jmp={0x5, 0x0, 0x3, 0x0, 0xa, 0x4, 0xfffffffffffffff0}, @btf_id={0x18, 0x8, 0x3, 0x0, 0x2}, @alu={0x4, 0x1, 0xa, 0x5, 0xb, 0x1, 0xfffffffffffffffc}, @jmp={0x5, 0x1, 0x9, 0xb, 0x8, 0xfffffffffffffffe, 0x2b718e912f59bdb3}], &(0x7f0000000e40)='syzkaller\x00', 0x3, 0x8e, &(0x7f0000000e80)=""/142, 0x41100, 0x0, '\x00', 0x0, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000f40)={0xa, 0x4}, 0x8, 0x10, &(0x7f0000000f80)={0x1, 0x4, 0x9, 0x9}, 0x10, 0x0, r6, 0x0, &(0x7f0000001000)=[0xffffffffffffffff, r1, r1, r1]}, 0x80) bpf$PROG_LOAD(0x5, 0x0, 0x0) 07:53:43 executing program 3: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f00000000c0)={'syzkaller1\x00', 0x2}) ioctl$TUNSETLINK(r0, 0x400454cd, 0x336) r1 = socket$kcm(0x2, 0xa, 0x2) ioctl$SIOCSIFHWADDR(r1, 0x8914, &(0x7f0000000180)={'syzkaller1\x00', @link_local={0x1, 0x65}}) 07:53:44 executing program 4: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:44 executing program 2: r0 = syz_open_dev$vbi(&(0x7f00000000c0), 0x2, 0x2) ioctl$VIDIOC_QUERYBUF_DMABUF(r0, 0xc0585611, &(0x7f0000000140)={0x0, 0x4, 0x4, 0x0, 0x0, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "eb14bae0"}}) 07:53:44 executing program 0: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:44 executing program 1: r0 = syz_init_net_socket$llc(0x1a, 0x1, 0x0) syz_genetlink_get_family_id$wireguard(&(0x7f0000000440), r0) 07:53:44 executing program 5: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000080)={0xffffffffffffffff}) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$int_in(r0, 0x5452, &(0x7f0000000040)=0x1) splice(r0, 0x0, r2, 0x0, 0x6, 0x0) close(r1) close_range(r0, 0xffffffffffffffff, 0x0) 07:53:44 executing program 3: bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f00000001c0)=@bpf_lsm={0x2, 0x4, &(0x7f0000000040)=@framed={{}, [@call={0x85, 0x0, 0x0, 0x70}]}, &(0x7f0000000080)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x1b, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:53:44 executing program 2: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000004c0)={0x0, 0x0, &(0x7f0000000480)={&(0x7f00000001c0)=@newnexthop={0x44, 0x68, 0x1, 0x0, 0x0, {}, [@NHA_GROUP_TYPE={0x6}, @NHA_GROUP={0x24, 0x2, [{0x2}, {}, {}, {0x2}]}]}, 0x44}}, 0x0) 07:53:45 executing program 1: bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x3, 0x4, &(0x7f0000000040)=@framed={{0xffffffb4, 0x0, 0x0, 0x0, 0x0, 0x79, 0x10, 0x76}, [@ldst={0x2, 0x0, 0x3}]}, &(0x7f0000003ff6)='GPL\x00', 0x2, 0xfd90, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x1f2, 0x10, &(0x7f0000000000), 0xfffffe51}, 0x48) 07:53:45 executing program 5: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000080)={0xffffffffffffffff}) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$int_in(r0, 0x5452, &(0x7f0000000040)=0x1) splice(r0, 0x0, r2, 0x0, 0x6, 0x0) close(r1) close_range(r0, 0xffffffffffffffff, 0x0) 07:53:45 executing program 2: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000440)={&(0x7f0000000040)={0x10, 0x0, 0x8c, 0x20000}, 0xc, &(0x7f0000000400)={&(0x7f00000005c0)=ANY=[], 0x2c}}, 0x0) 07:53:45 executing program 3: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in=@multicast2, @in6=@private0}, {@in=@initdev={0xac, 0x1e, 0x0, 0x0}, 0x0, 0x32}, @in=@dev, {}, {}, {}, 0x0, 0x0, 0xa, 0x4}, [@algo_crypt={0x48, 0x2, {{'ecb(cipher_null)\x00'}}}]}, 0x138}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @local}, &(0x7f00000000c0)=0x14) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) r3 = socket(0x11, 0x800000003, 0x0) setsockopt$packet_int(r3, 0x107, 0x6, &(0x7f0000000500)=0x4000, 0x4) bind(r3, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r3, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) sendmsg$nl_route_sched(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000100)=@newqdisc={0x44, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_gred={{0x9}, {0x14, 0x2, [@TCA_GRED_DPS={0x10, 0x3, {0x4, 0x0, 0x2}}]}}]}, 0x44}}, 0x0) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000000)={'macvlan0\x00', 0x0}) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r1, 0x8933, &(0x7f0000000040)={'batadv_slave_0\x00', 0x0}) r7 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r7, 0x8933, &(0x7f0000000180)={'syz_tun\x00', 0x0}) sendmsg$nl_route(r1, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000080)=@newlink={0x84, 0x10, 0x503, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x66e99, 0x4040}, [@IFLA_LINKINFO={0x54, 0x12, 0x0, 0x1, @hsr={{0x8}, {0x48, 0x2, 0x0, 0x1, [@IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x4}, @IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x5}, @IFLA_HSR_MULTICAST_SPEC={0x5}, @IFLA_HSR_SLAVE2={0x8, 0x2, r6}, @IFLA_HSR_SLAVE1={0x8, 0x1, r8}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x8}, @IFLA_HSR_SUPERVISION_ADDR={0xa, 0x4, @broadcast}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x1}]}}}, @IFLA_LINK={0x8, 0x5, r5}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x84}}, 0x20000800) 07:53:46 executing program 1: syz_mount_image$vxfs(0x0, &(0x7f0000000040)='./file0\x00', 0x0, 0x0, 0x0, 0x0, 0x0) lsetxattr$trusted_overlay_upper(&(0x7f0000000080)='./file0\x00', &(0x7f00000000c0), &(0x7f0000000240)=ANY=[], 0x39, 0x0) lsetxattr$trusted_overlay_upper(&(0x7f0000000100)='./file0\x00', &(0x7f0000000140), 0x0, 0x0, 0x3) [ 1116.469788][T14186] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.3'. 07:53:46 executing program 4: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:46 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl802154(&(0x7f00000001c0), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_802154(r0, 0x8933, &(0x7f0000000700)={'wpan0\x00', 0x0}) sendmsg$NL802154_CMD_NEW_INTERFACE(r0, &(0x7f00000008c0)={0x0, 0x0, &(0x7f00000007c0)={&(0x7f0000000740)=ANY=[@ANYBLOB='(\x00\x00\x00', @ANYRES16=r1, @ANYBLOB="010000000000000000000700000008000300", @ANYRES32=r2, @ANYBLOB="0a0004"], 0x28}}, 0x0) 07:53:46 executing program 0: chdir(0x0) r0 = open(&(0x7f0000000040)='./file0\x00', 0x105841, 0x0) ioctl$FS_IOC_FIEMAP(r0, 0x40305828, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x8e7}) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f00000001c0)={0x0, 0xfffffffffffffffd}) 07:53:46 executing program 2: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/if_inet6\x00') preadv(r0, &(0x7f0000000040)=[{&(0x7f0000001200)=""/4090, 0xffa}], 0x1, 0x139e, 0x0) [ 1116.697528][T14189] device syz_tun entered promiscuous mode [ 1116.846886][T14189] device batadv_slave_0 entered promiscuous mode [ 1116.932410][T14189] device syz_tun left promiscuous mode [ 1116.983206][T14189] device batadv_slave_0 left promiscuous mode 07:53:47 executing program 1: r0 = syz_open_procfs(0x0, &(0x7f0000000040)='coredump_filter\x00') writev(r0, &(0x7f0000000180)=[{&(0x7f0000000080)='4', 0x1}, {0x0, 0x700}, {&(0x7f00000000c0)="d4", 0x1}], 0x3) 07:53:47 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl802154(&(0x7f00000001c0), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_802154(r0, 0x8933, &(0x7f0000000700)={'wpan0\x00', 0x0}) sendmsg$NL802154_CMD_NEW_INTERFACE(r0, &(0x7f00000008c0)={0x0, 0x0, &(0x7f00000007c0)={&(0x7f0000000740)=ANY=[@ANYBLOB='(\x00\x00\x00', @ANYRES16=r1, @ANYBLOB="010000000000000000000700000008000300", @ANYRES32=r2, @ANYBLOB="0a0004"], 0x28}}, 0x0) 07:53:47 executing program 2: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) sendmsg$NL80211_CMD_DEL_KEY(r1, &(0x7f0000000300)={0x0, 0x0, &(0x7f0000000240)={&(0x7f0000000600)={0x1c, 0x0, 0x0, 0x0, 0x0, {{}, {@val={0x8}, @void}}}, 0x1c}}, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) sendmsg$nl_route_sched(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000340)=@newtaction={0x68, 0x30, 0x1, 0x0, 0x0, {0x0, 0x0, 0x1300}, [{0x54, 0x1, [@m_mirred={0x50, 0x1, 0x0, 0x0, {{0xb}, {0x24, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x0, 0x0, 0x25000000}, 0x2, r2}}]}, {0xc00}, {0xc}, {0xc}}}]}]}, 0x68}}, 0x0) 07:53:47 executing program 3: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in=@multicast2, @in6=@private0}, {@in=@initdev={0xac, 0x1e, 0x0, 0x0}, 0x0, 0x32}, @in=@dev, {}, {}, {}, 0x0, 0x0, 0xa, 0x4}, [@algo_crypt={0x48, 0x2, {{'ecb(cipher_null)\x00'}}}]}, 0x138}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @local}, &(0x7f00000000c0)=0x14) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) r3 = socket(0x11, 0x800000003, 0x0) setsockopt$packet_int(r3, 0x107, 0x6, &(0x7f0000000500)=0x4000, 0x4) bind(r3, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r3, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) sendmsg$nl_route_sched(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000100)=@newqdisc={0x44, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_gred={{0x9}, {0x14, 0x2, [@TCA_GRED_DPS={0x10, 0x3, {0x4, 0x0, 0x2}}]}}]}, 0x44}}, 0x0) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000000)={'macvlan0\x00', 0x0}) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r1, 0x8933, &(0x7f0000000040)={'batadv_slave_0\x00', 0x0}) r7 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r7, 0x8933, &(0x7f0000000180)={'syz_tun\x00', 0x0}) sendmsg$nl_route(r1, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000080)=@newlink={0x84, 0x10, 0x503, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x66e99, 0x4040}, [@IFLA_LINKINFO={0x54, 0x12, 0x0, 0x1, @hsr={{0x8}, {0x48, 0x2, 0x0, 0x1, [@IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x4}, @IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x5}, @IFLA_HSR_MULTICAST_SPEC={0x5}, @IFLA_HSR_SLAVE2={0x8, 0x2, r6}, @IFLA_HSR_SLAVE1={0x8, 0x1, r8}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x8}, @IFLA_HSR_SUPERVISION_ADDR={0xa, 0x4, @broadcast}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x1}]}}}, @IFLA_LINK={0x8, 0x5, r5}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x84}}, 0x20000800) 07:53:47 executing program 1: r0 = socket(0x10, 0x2, 0x0) write(r0, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) setsockopt$sock_int(r0, 0x1, 0x10, &(0x7f0000000000)=0x3f10, 0x4) setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f0000000040), 0x4) recvmmsg(r0, &(0x7f0000000200), 0x1, 0x2, 0x0) 07:53:47 executing program 4: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000300)={&(0x7f0000000180)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x6, [@enum={0x0, 0x0, 0x0, 0x9}]}}, 0xffffffffffffffff, 0x2a, 0xf0, 0x1}, 0x32) 07:53:48 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl802154(&(0x7f00000001c0), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_802154(r0, 0x8933, &(0x7f0000000700)={'wpan0\x00', 0x0}) sendmsg$NL802154_CMD_NEW_INTERFACE(r0, &(0x7f00000008c0)={0x0, 0x0, &(0x7f00000007c0)={&(0x7f0000000740)=ANY=[@ANYBLOB='(\x00\x00\x00', @ANYRES16=r1, @ANYBLOB="010000000000000000000700000008000300", @ANYRES32=r2, @ANYBLOB="0a0004"], 0x28}}, 0x0) [ 1118.020439][T14216] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.3'. [ 1118.058082][T14218] netlink: 28 bytes leftover after parsing attributes in process `syz-executor.2'. [ 1118.067992][T14218] netlink: 28 bytes leftover after parsing attributes in process `syz-executor.2'. 07:53:48 executing program 4: mount_setattr(0xffffffffffffffff, 0x0, 0x0, &(0x7f0000000180)={0x0, 0x2000f9}, 0x20) [ 1118.217728][T14219] device syz_tun entered promiscuous mode [ 1118.316432][T14219] device batadv_slave_0 entered promiscuous mode 07:53:48 executing program 2: bpf$PROG_LOAD_XDP(0x5, &(0x7f00000001c0)={0x12, 0x4, &(0x7f0000001300)=@framed={{}, [@ldst={0x1, 0x2, 0x3, 0x2, 0x1, 0x2d}]}, &(0x7f0000000040)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0xf, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) [ 1118.407034][T14219] device syz_tun left promiscuous mode [ 1118.442803][T14219] device batadv_slave_0 left promiscuous mode 07:53:48 executing program 5: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl802154(&(0x7f00000001c0), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_802154(r0, 0x8933, &(0x7f0000000700)={'wpan0\x00', 0x0}) sendmsg$NL802154_CMD_NEW_INTERFACE(r0, &(0x7f00000008c0)={0x0, 0x0, &(0x7f00000007c0)={&(0x7f0000000740)=ANY=[@ANYBLOB='(\x00\x00\x00', @ANYRES16=r1, @ANYBLOB="010000000000000000000700000008000300", @ANYRES32=r2, @ANYBLOB="0a0004"], 0x28}}, 0x0) 07:53:49 executing program 4: pipe(&(0x7f0000000440)={0xffffffffffffffff}) io_setup(0x2, &(0x7f00000005c0)=0x0) pipe(&(0x7f0000000440)={0xffffffffffffffff, 0xffffffffffffffff}) io_submit(r1, 0x2, &(0x7f00000003c0)=[&(0x7f0000000300)={0x0, 0x0, 0x0, 0x1, 0x0, r2, 0x0}, &(0x7f0000000380)={0x0, 0x0, 0x2, 0x1, 0x0, r0, 0x0}]) 07:53:49 executing program 1: r0 = socket(0x18, 0x0, 0x1) getsockopt$EBT_SO_GET_ENTRIES(r0, 0x111, 0x81, 0x0, 0x0) 07:53:49 executing program 3: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in=@multicast2, @in6=@private0}, {@in=@initdev={0xac, 0x1e, 0x0, 0x0}, 0x0, 0x32}, @in=@dev, {}, {}, {}, 0x0, 0x0, 0xa, 0x4}, [@algo_crypt={0x48, 0x2, {{'ecb(cipher_null)\x00'}}}]}, 0x138}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @local}, &(0x7f00000000c0)=0x14) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) r3 = socket(0x11, 0x800000003, 0x0) setsockopt$packet_int(r3, 0x107, 0x6, &(0x7f0000000500)=0x4000, 0x4) bind(r3, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r3, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) sendmsg$nl_route_sched(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000100)=@newqdisc={0x44, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_gred={{0x9}, {0x14, 0x2, [@TCA_GRED_DPS={0x10, 0x3, {0x4, 0x0, 0x2}}]}}]}, 0x44}}, 0x0) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000000)={'macvlan0\x00', 0x0}) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r1, 0x8933, &(0x7f0000000040)={'batadv_slave_0\x00', 0x0}) r7 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r7, 0x8933, &(0x7f0000000180)={'syz_tun\x00', 0x0}) sendmsg$nl_route(r1, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000080)=@newlink={0x84, 0x10, 0x503, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x66e99, 0x4040}, [@IFLA_LINKINFO={0x54, 0x12, 0x0, 0x1, @hsr={{0x8}, {0x48, 0x2, 0x0, 0x1, [@IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x4}, @IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x5}, @IFLA_HSR_MULTICAST_SPEC={0x5}, @IFLA_HSR_SLAVE2={0x8, 0x2, r6}, @IFLA_HSR_SLAVE1={0x8, 0x1, r8}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x8}, @IFLA_HSR_SUPERVISION_ADDR={0xa, 0x4, @broadcast}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x1}]}}}, @IFLA_LINK={0x8, 0x5, r5}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x84}}, 0x20000800) 07:53:49 executing program 2: r0 = socket(0x11, 0x800000003, 0x0) bind(r0, &(0x7f0000000140)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00645a50e9c53a8b2449740000000000000017ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r0, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r2 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000800)={0x0, 0x0, &(0x7f0000000100)={&(0x7f00000002c0)=@newqdisc={0x48, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r1, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_prio={{0x9}, {0x18, 0x2, {0x8, "801decf5f94733bcf6b22f0d1fdc8eb3"}}}]}, 0x48}}, 0x0) 07:53:49 executing program 0: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000400)={0x26, 'hash\x00', 0x0, 0x0, 'digest_null\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, 0x0, 0x0) sendmmsg$sock(r1, &(0x7f0000002b00)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0) r2 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r3 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x2800004, 0x12, r3, 0x0) preadv(r3, &(0x7f00000001c0)=[{0x0}], 0x1, 0x9, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) recvmmsg$unix(r1, &(0x7f0000005840)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, 0x0}}], 0x2, 0x0, 0x0) 07:53:49 executing program 1: mbind(&(0x7f0000ff7000/0x4000)=nil, 0x4000, 0x3, &(0x7f00000002c0)=0xfffffffffffffff7, 0x3, 0x0) get_mempolicy(0x0, 0x0, 0x0, &(0x7f0000ffa000/0x4000)=nil, 0x2) [ 1119.629304][T14242] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.3'. 07:53:49 executing program 5: r0 = socket$vsock_stream(0x28, 0x1, 0x0) connect$vsock_stream(r0, &(0x7f0000000300)={0x28, 0x0, 0x0, @host}, 0x10) r1 = bpf$MAP_CREATE(0x100000000000000, &(0x7f0000000140)=@base={0x5, 0x13, 0x5, 0x7c}, 0x48) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000440)={0x11, 0xa, &(0x7f0000000680)=@framed={{0x18, 0x8}, [@func={0x85, 0x0, 0x1, 0x0, 0x6}, @map_fd={0x18, 0x0, 0x1, 0x0, r1}, @generic={0x61}, @initr0, @exit]}, &(0x7f0000000000)='GPL\x00', 0x4, 0xee, &(0x7f0000000340)=""/238, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x22) setsockopt$SO_VM_SOCKETS_BUFFER_MIN_SIZE(r0, 0x28, 0x1, &(0x7f0000000100)=0xfffffffffffffffe, 0x112) 07:53:49 executing program 2: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000580)=@base={0x5, 0x200, 0x1400, 0x4}, 0x48) bpf$BPF_GET_MAP_INFO(0x3, &(0x7f0000000440)={r0, 0x58, &(0x7f00000003c0)}, 0x10) 07:53:49 executing program 4: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) setsockopt$IP6T_SO_SET_REPLACE(r0, 0x29, 0x40, &(0x7f0000000480)=@raw={'raw\x00', 0x3c1, 0x3, 0x2e4, 0x0, 0x59001203, 0x294, 0x124, 0x294, 0x21c, 0x378, 0x378, 0x21c, 0x378, 0x3, 0x0, {[{{@uncond, 0x30e, 0x100, 0x124, 0x52020068, {0x300, 0x6401019a}, [@common=@ipv6header={{0x24}}, @common=@unspec=@connbytes={{0x38}, {[], 0x0, 0x3}}]}, @common=@unspec=@NFQUEUE1={0x24}}, {{@uncond, 0x0, 0xc8, 0xf8, 0x0, {}, [@common=@ipv6header={{0x24}}]}, @common=@inet=@SET2={0x30}}], {{'\x00', 0x0, 0xa4, 0xc8}, {0x24}}}}, 0x340) [ 1119.885975][T14244] device syz_tun entered promiscuous mode [ 1120.043102][T14244] device batadv_slave_0 entered promiscuous mode [ 1120.125629][T14244] device syz_tun left promiscuous mode [ 1120.183319][T14244] device batadv_slave_0 left promiscuous mode 07:53:50 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000400)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x4, 0x91, &(0x7f0000000000)=""/145, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000240)='kfree\x00', r0}, 0x10) r1 = socket(0x11, 0x800000003, 0x0) r2 = fanotify_init(0x0, 0x0) dup3(r1, r2, 0x0) 07:53:50 executing program 1: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) 07:53:50 executing program 5: bpf$BPF_BTF_LOAD(0x12, &(0x7f00000005c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0x24, 0x24, 0x3, [@fwd={0x1}, @volatile={0x0, 0x0, 0x0, 0x9, 0x1}, @func_proto={0x0, 0x0, 0x0, 0xd, 0x2}]}, {0x0, [0x5f]}}, &(0x7f00000004c0)=""/231, 0x3f, 0xe7, 0x1}, 0x20) 07:53:50 executing program 2: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000580)=@base={0x5, 0x200, 0x1400, 0x4}, 0x48) bpf$BPF_GET_MAP_INFO(0x3, &(0x7f0000000440)={r0, 0x58, &(0x7f00000003c0)}, 0x10) 07:53:50 executing program 4: syz_mount_image$xfs(&(0x7f0000000140), &(0x7f0000000180)='./file0\x00', 0x0, 0x0, &(0x7f0000000280), 0x0, &(0x7f0000000300)={[{@nodiscard}]}) 07:53:50 executing program 3: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in=@multicast2, @in6=@private0}, {@in=@initdev={0xac, 0x1e, 0x0, 0x0}, 0x0, 0x32}, @in=@dev, {}, {}, {}, 0x0, 0x0, 0xa, 0x4}, [@algo_crypt={0x48, 0x2, {{'ecb(cipher_null)\x00'}}}]}, 0x138}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @local}, &(0x7f00000000c0)=0x14) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) r3 = socket(0x11, 0x800000003, 0x0) setsockopt$packet_int(r3, 0x107, 0x6, &(0x7f0000000500)=0x4000, 0x4) bind(r3, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r3, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) sendmsg$nl_route_sched(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000100)=@newqdisc={0x44, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_gred={{0x9}, {0x14, 0x2, [@TCA_GRED_DPS={0x10, 0x3, {0x4, 0x0, 0x2}}]}}]}, 0x44}}, 0x0) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000000)={'macvlan0\x00', 0x0}) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r1, 0x8933, &(0x7f0000000040)={'batadv_slave_0\x00', 0x0}) r7 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r7, 0x8933, &(0x7f0000000180)={'syz_tun\x00', 0x0}) sendmsg$nl_route(r1, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000080)=@newlink={0x84, 0x10, 0x503, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x66e99, 0x4040}, [@IFLA_LINKINFO={0x54, 0x12, 0x0, 0x1, @hsr={{0x8}, {0x48, 0x2, 0x0, 0x1, [@IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x4}, @IFLA_HSR_MULTICAST_SPEC={0x5, 0x3, 0x5}, @IFLA_HSR_MULTICAST_SPEC={0x5}, @IFLA_HSR_SLAVE2={0x8, 0x2, r6}, @IFLA_HSR_SLAVE1={0x8, 0x1, r8}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x8}, @IFLA_HSR_SUPERVISION_ADDR={0xa, 0x4, @broadcast}, @IFLA_HSR_SEQ_NR={0x6, 0x5, 0x1}]}}}, @IFLA_LINK={0x8, 0x5, r5}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x84}}, 0x20000800) 07:53:51 executing program 2: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000580)=@base={0x5, 0x200, 0x1400, 0x4}, 0x48) bpf$BPF_GET_MAP_INFO(0x3, &(0x7f0000000440)={r0, 0x58, &(0x7f00000003c0)}, 0x10) 07:53:51 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000400)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x4, 0x91, &(0x7f0000000000)=""/145, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000240)='kfree\x00', r0}, 0x10) r1 = socket(0x11, 0x800000003, 0x0) r2 = fanotify_init(0x0, 0x0) dup3(r1, r2, 0x0) 07:53:51 executing program 4: r0 = socket$pppl2tp(0x18, 0x1, 0x1) ioctl$SIOCSIFMTU(r0, 0x8948, &(0x7f0000000080)={'bond0\x00', 0x10000}) 07:53:51 executing program 5: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_BATCH(r0, &(0x7f000000c2c0)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000000)={{0x14}, [@NFT_MSG_NEWTABLE={0x28, 0x0, 0xa, 0x101, 0x0, 0x0, {0x2, 0x0, 0x11}, [@NFTA_TABLE_NAME={0x9, 0x1, 'syz0\x00'}, @NFTA_TABLE_FLAGS={0x8, 0x2, 0x1, 0x0, 0x1}]}, @NFT_MSG_NEWCHAIN={0x50, 0x3, 0xa, 0x201, 0x0, 0x0, {0x2}, [@NFTA_CHAIN_TABLE={0x9, 0x1, 'syz0\x00'}, @NFTA_CHAIN_COUNTERS={0x28, 0x8, 0x0, 0x1, [@NFTA_COUNTER_PACKETS={0xc, 0x2, 0x1, 0x0, 0x7}, @NFTA_COUNTER_PACKETS={0xc, 0x2, 0x1, 0x0, 0xfffffffffffffff7}, @NFTA_COUNTER_PACKETS={0xc, 0x2, 0x1, 0x0, 0xb9}]}, @NFTA_CHAIN_USERDATA={0x5, 0x3, "91"}]}, @NFT_MSG_NEWOBJ={0x20, 0x12, 0xa, 0x5, 0x0, 0x0, {0xc032e4bff7b0bfa8, 0x0, 0x1}, @NFT_OBJECT_SYNPROXY=@NFTA_OBJ_NAME={0x9, 0x2, 'syz2\x00'}}], {0x14}}, 0xc0}}, 0x0) [ 1121.370244][T14272] device syz_tun entered promiscuous mode 07:53:51 executing program 2: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000580)=@base={0x5, 0x200, 0x1400, 0x4}, 0x48) bpf$BPF_GET_MAP_INFO(0x3, &(0x7f0000000440)={r0, 0x58, &(0x7f00000003c0)}, 0x10) [ 1121.526101][T14272] device batadv_slave_0 entered promiscuous mode [ 1121.632565][T14272] device syz_tun left promiscuous mode [ 1121.709302][T14272] device batadv_slave_0 left promiscuous mode 07:53:51 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000400)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x4, 0x91, &(0x7f0000000000)=""/145, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000240)='kfree\x00', r0}, 0x10) r1 = socket(0x11, 0x800000003, 0x0) r2 = fanotify_init(0x0, 0x0) dup3(r1, r2, 0x0) 07:53:52 executing program 5: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000080)='setgroups\x00') writev(r0, &(0x7f0000000240)=[{&(0x7f0000000000)='M', 0x1}], 0x1) 07:53:53 executing program 1: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) 07:53:53 executing program 4: syz_clone(0x40000000, &(0x7f00000005c0), 0x0, 0x0, 0x0, 0x0) 07:53:53 executing program 5: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000080)='setgroups\x00') writev(r0, &(0x7f0000000240)=[{&(0x7f0000000000)='M', 0x1}], 0x1) 07:53:53 executing program 0: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000400)={0x11, 0x3, &(0x7f0000000180)=@framed, &(0x7f00000000c0)='syzkaller\x00', 0x4, 0x91, &(0x7f0000000000)=""/145, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000200)={&(0x7f0000000240)='kfree\x00', r0}, 0x10) r1 = socket(0x11, 0x800000003, 0x0) r2 = fanotify_init(0x0, 0x0) dup3(r1, r2, 0x0) 07:53:53 executing program 3: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) 07:53:53 executing program 2: r0 = socket$packet(0x11, 0x2, 0x300) setsockopt$packet_tx_ring(r0, 0x107, 0xd, &(0x7f0000000040)=@req3={0x10000, 0x100000001, 0x10000, 0x1}, 0x1c) r1 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000100)={0x4}) ppoll(&(0x7f0000000080)=[{r1}], 0x1, &(0x7f00000000c0), 0x0, 0x0) 07:53:53 executing program 0: r0 = openat$sndseq(0xffffffffffffff9c, &(0x7f0000000040), 0xe0c81) ioctl$SNDRV_SEQ_IOCTL_CREATE_QUEUE(r0, 0xc08c5332, &(0x7f00000003c0)={0x0, 0x0, 0x0, 'queue0\x00'}) write$sndseq(r0, &(0x7f0000000000)=[{0x84, 0x77, 0x0, 0x0, @tick, {}, {}, @raw32}], 0xffc8) write$binfmt_script(r0, 0x0, 0x0) ioctl$VHOST_SET_MEM_TABLE(0xffffffffffffffff, 0x4008af03, 0x0) 07:53:53 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$ethtool(&(0x7f00000001c0), 0xffffffffffffffff) sendmsg$ETHTOOL_MSG_PRIVFLAGS_SET(r0, &(0x7f00000004c0)={0x0, 0x0, &(0x7f0000000480)={&(0x7f0000000200)={0x24, r1, 0x129, 0x0, 0x0, {}, [@ETHTOOL_A_PRIVFLAGS_FLAGS={0x10, 0x2, 0x0, 0x1, [@ETHTOOL_A_BITSET_SIZE={0x8}, @ETHTOOL_A_BITSET_NOMASK={0x4, 0x8}]}]}, 0x24}}, 0x0) 07:53:53 executing program 5: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000080)='setgroups\x00') writev(r0, &(0x7f0000000240)=[{&(0x7f0000000000)='M', 0x1}], 0x1) 07:53:54 executing program 5: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000080)='setgroups\x00') writev(r0, &(0x7f0000000240)=[{&(0x7f0000000000)='M', 0x1}], 0x1) 07:53:54 executing program 2: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFQNL_MSG_CONFIG(r0, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000200)=ANY=[@ANYBLOB="280000000203010400000000ffffffff000000000800010001"], 0x28}}, 0x0) sendmsg$NFQNL_MSG_CONFIG(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000240)={&(0x7f0000000100)={0x38, 0x2, 0x3, 0x201, 0x0, 0x0, {}, [@NFQA_CFG_QUEUE_MAXLEN={0x8}, @NFQA_CFG_PARAMS={0x9, 0x2, {0x0, 0x1}}, @NFQA_CFG_MASK={0x8, 0x4, 0x1, 0x0, 0xcfa0a7f55f7e5fa5}, @NFQA_CFG_FLAGS={0x8, 0x5, 0x1, 0x0, 0x1}]}, 0x38}}, 0x0) r1 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$IPT_SO_SET_REPLACE(r1, 0x0, 0x40, &(0x7f0000000740)=@raw={'raw\x00', 0x9, 0x3, 0x9a8, 0x98, 0x0, 0xb0, 0x98, 0xb0, 0x910, 0x1a8, 0x1a8, 0x910, 0x1a8, 0x3, 0x0, {[{{@uncond, 0x0, 0x70, 0x98}, @common=@unspec=@STANDARD={0x28}}, {{@uncond, 0x0, 0x850, 0x878, 0x0, {}, [@common=@unspec=@u32={{0x7e0}}]}, @common=@unspec=@NFQUEUE3={0x28, 'NFQUEUE\x00', 0x3, {0x0, 0x1}}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28}}}}, 0xa08) syz_emit_ethernet(0x3e, &(0x7f0000000000)={@local, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0xe}, @void, {@ipv4={0x800, @icmp={{0x5, 0x4, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x2, 0x0, @private, @multicast1}, @source_quench={0x12, 0xe0, 0x0, 0x10000e0, {0x5, 0x4, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, @broadcast, @initdev={0xac, 0x1e, 0x0, 0x0}}}}}}}, 0x0) 07:53:54 executing program 5: bpf$MAP_CREATE(0x0, &(0x7f00000007c0)=@base={0xe, 0x0, 0x0, 0x1}, 0x48) [ 1124.909997][T14315] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.2'. 07:53:55 executing program 1: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) 07:53:55 executing program 4: syz_mount_image$iso9660(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000000200)=[{&(0x7f0000010000)="01434430303101004c494e55582020202020202020202020202020202020202020202020202020204344524f4d20202020202020202020202020202020202020202020202020202000000000000000002900000000000029000000000000000000000000000000000000000000000000000000000000000001000001010000010008080018000000000000181400000000000000000000160000000022001c", 0x9f, 0x8000}, {&(0x7f0000010600)="0243443030310100004c0049004e0055005800200020002000200020002000200020002000200020004300440052004f004d0020002000200020002000200020002000200020002000000000000000002900000000000029252f", 0x5a, 0x8800}, {&(0x7f00000003c0)="88001c0000000000001c00080000000008007809140b2a3a0802000001000001010053500701beef00525205018150586d", 0x31, 0xe000}], 0x0, &(0x7f0000000140)=ANY=[]) 07:53:55 executing program 2: r0 = openat$procfs(0xffffffffffffff9c, &(0x7f00000001c0)='/proc/diskstats\x00', 0x0, 0x0) preadv2(r0, &(0x7f0000000200)=[{&(0x7f0000000000)=""/107, 0x6b}], 0x1, 0x0, 0x0, 0x0) r1 = socket(0x10, 0x2, 0x0) sendfile(r1, r0, &(0x7f0000000100)=0x502, 0x30) 07:53:55 executing program 0: unshare(0x400) r0 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_fanout(r0, 0x107, 0x12, &(0x7f0000000000), 0x4) r1 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_fanout(r1, 0x107, 0x12, &(0x7f0000000000), 0x4) 07:53:55 executing program 5: r0 = socket(0xa, 0x2400000001, 0x0) setsockopt$inet6_MCAST_JOIN_GROUP(r0, 0x29, 0x2a, &(0x7f0000034000)={0x1, {{0xa, 0x0, 0x0, @mcast2}}}, 0x88) getsockopt$inet6_buf(r0, 0x29, 0x10000000000030, &(0x7f0000034000)=""/144, &(0x7f0000e5f000)=0x90) 07:53:55 executing program 3: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) 07:53:55 executing program 2: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_MSG_GETOBJ(r0, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000040)={0x28, 0x13, 0xa, 0x301, 0x0, 0x0, {}, [@NFTA_OBJ_TYPE={0x8}, @NFTA_OBJ_TABLE={0x9, 0x1, 'syz0\x00'}]}, 0x28}}, 0x0) 07:53:56 executing program 5: r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = epoll_create(0x759) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000180)) epoll_ctl$EPOLL_CTL_MOD(r1, 0x3, r0, &(0x7f00000000c0)) 07:53:56 executing program 0: r0 = syz_open_dev$vivid(&(0x7f00000013c0), 0x0, 0x2) r1 = openat$zero(0xffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$VIDIOC_QUERYBUF_DMABUF(r0, 0xc04c5609, &(0x7f0000000040)={0x0, 0x9, 0x4, 0x0, 0x0, {0x0, 0xea60}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "262e21e8"}, 0x0, 0x4, {}, 0x0, 0xf6f36000, r1}) io_cancel(0x0, 0x0, 0x0) 07:53:56 executing program 2: r0 = openat$thread_pidfd(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) fstat(r0, &(0x7f0000000240)) 07:53:56 executing program 4: r0 = socket$packet(0x11, 0x3, 0x300) syz_genetlink_get_family_id$tipc(&(0x7f0000000580), r0) 07:53:56 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_USE_CARRIER={0x5, 0x6, 0x3}]}}}]}, 0x3c}}, 0x0) 07:53:57 executing program 1: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) 07:53:57 executing program 5: r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = epoll_create(0x759) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000180)) epoll_ctl$EPOLL_CTL_MOD(r1, 0x3, r0, &(0x7f00000000c0)) 07:53:57 executing program 2: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$netlbl_cipso(&(0x7f0000000000), r0) r2 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NLBL_CIPSOV4_C_ADD(r2, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000300)={0x50, r1, 0x1, 0x0, 0x0, {}, [@NLBL_CIPSOV4_A_DOI={0x8}, @NLBL_CIPSOV4_A_MTYPE={0x8, 0x2, 0x3}, @NLBL_CIPSOV4_A_TAGLST={0xc, 0x4, 0x0, 0x1, [{0x4, 0x8}, {0x5}, {0x5}, {0x5}, {0x5}]}]}, 0x50}}, 0x0) 07:53:57 executing program 4: r0 = socket(0x11, 0x800000003, 0x8) bind(r0, &(0x7f0000000300)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a22961b61e3ff5f1c3ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816b3f6db1c00010000000081c7a0b204c006ad8e5ecc326d3a09ffc2c65400"}, 0x80) r1 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r1, 0x6, 0x80000000000002, &(0x7f0000000040)=0x76, 0x4) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000100)={0x0}}, 0x0) getsockname$packet(0xffffffffffffffff, &(0x7f0000000080)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000100)=0x14) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, 0x0}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000900)=@newqdisc={0x30, 0x24, 0xf1d, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xfff1, 0xffff}}, [@qdisc_kind_options=@q_clsact={0xb}]}, 0x30}}, 0x0) sendmsg$nl_route_sched(r3, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000240)={&(0x7f0000000340)=@delchain={0x24, 0x64, 0xf31, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xfff3, 0xffff}}}, 0x24}}, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000240)={&(0x7f0000000140)=@delchain={0x2c, 0x66, 0xf31, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xfff3, 0xffff}}, [@TCA_CHAIN={0x8}]}, 0x2c}}, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000000140)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)=@gettclass={0x24, 0x2a, 0x20, 0x70bd28, 0x25dfdbfb, {0x0, 0x0, 0x0, r4, {0xffff, 0xc}, {0xfff1, 0xf}, {0xfff2, 0x9}}, ["", "", "", ""]}, 0x24}}, 0x400d854) bind$inet(r1, &(0x7f0000000280)={0x2, 0x4e23, @broadcast}, 0x10) setsockopt$SO_ATTACH_FILTER(r1, 0x1, 0x1a, &(0x7f00000001c0)={0x1, &(0x7f0000000100)=[{0x6, 0x0, 0x0, 0xeb}]}, 0x8) sendto$inet(r1, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @empty}, 0x10) setsockopt$inet_tcp_TCP_CONGESTION(r1, 0x6, 0xd, &(0x7f00000007c0)='bbr\x00', 0x4) sendto$inet(r1, &(0x7f00000012c0)="14268a927f1f6588b967481041ba7860ac5cf65ac608ded8974895abaff4b4834ff922b3f1e0b02bd67aa03059bcecc7a9541aa3b77e758044ab09a6f7ae56d88fecf908097503a6746bec66ba", 0x8800d, 0x20c49a, 0x0, 0x27) 07:53:57 executing program 3: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='memory.events\x00', 0x7a05, 0x1700) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000300)=0x9, 0x5) write$cgroup_int(r1, &(0x7f0000000200), 0xf000) sendfile(r1, r2, 0x0, 0xf03b0000) sendfile(r1, r0, 0x0, 0x8000000000004) ioctl$AUTOFS_IOC_ASKUMOUNT(0xffffffffffffffff, 0x80049370, &(0x7f00000000c0)) r3 = socket$inet6_tcp(0xa, 0x1, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r4, &(0x7f0000000440)=ANY=[@ANYBLOB, @ANYRESOCT], 0x208e24b) setsockopt$sock_timeval(r3, 0x1, 0x49, &(0x7f0000000040)={0x77359400}, 0x10) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) socket$alg(0x26, 0x5, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cgroup.controllers\x00', 0x26e1, 0x0) recvfrom$unix(0xffffffffffffffff, 0x0, 0x0, 0x40010001, &(0x7f0000000100)=@file={0x0, './file0\x00'}, 0x6e) [ 1127.906307][T14355] (unnamed net_device) (uninitialized): option use_carrier: invalid value (3) 07:53:58 executing program 2: syz_usb_connect$cdc_ncm(0x0, 0x72, &(0x7f00000000c0)=ANY=[@ANYBLOB="12010003020000102505a1a44000010203010902"], &(0x7f0000000480)={0x0, 0x0, 0x5, 0x0}) 07:53:58 executing program 5: r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = epoll_create(0x759) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000180)) epoll_ctl$EPOLL_CTL_MOD(r1, 0x3, r0, &(0x7f00000000c0)) 07:53:58 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_USE_CARRIER={0x5, 0x6, 0x3}]}}}]}, 0x3c}}, 0x0) [ 1128.658206][T14369] (unnamed net_device) (uninitialized): option use_carrier: invalid value (3) 07:53:58 executing program 5: r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = epoll_create(0x759) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000180)) epoll_ctl$EPOLL_CTL_MOD(r1, 0x3, r0, &(0x7f00000000c0)) 07:53:58 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) ioctl$RNDADDENTROPY(0xffffffffffffffff, 0x40085203, &(0x7f00000000c0)=ANY=[@ANYBLOB='\x00\x00\x00\x00\f']) r1 = socket(0x1, 0x803, 0x0) getsockname$packet(r1, &(0x7f00000000c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000380)=0x14) sendmsg$nl_route(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=ANY=[@ANYBLOB="440000001000010400"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000140012800b0001006d616373656300000400028008000500", @ANYRES32=r2, @ANYBLOB="08000300af1cff25"], 0x44}, 0x1, 0x74}, 0x0) 07:53:59 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_USE_CARRIER={0x5, 0x6, 0x3}]}}}]}, 0x3c}}, 0x0) 07:53:59 executing program 2: r0 = socket$l2tp6(0xa, 0x2, 0x73) bind$l2tp6(r0, &(0x7f0000000b00)={0xa, 0x0, 0x0, @empty}, 0x20) connect$l2tp6(r0, &(0x7f0000000000)={0xa, 0x0, 0x0, @local, 0xffffffff}, 0x20) r1 = socket$l2tp6(0xa, 0x2, 0x73) bind$l2tp6(r1, &(0x7f0000000040)={0xa, 0x0, 0x0, @dev={0xfe, 0x80, '\x00', 0x11}, 0x6}, 0x20) dup2(r0, r1) [ 1129.476155][T14376] (unnamed net_device) (uninitialized): option use_carrier: invalid value (3) 07:54:00 executing program 2: unshare(0x600) openat$uhid(0xffffffffffffff9c, &(0x7f00000002c0), 0x0, 0x0) r0 = syz_open_dev$usbmon(&(0x7f00000000c0), 0x2, 0x1) ioctl$F2FS_IOC_START_ATOMIC_WRITE(r0, 0xf501, 0x0) r1 = syz_open_dev$usbmon(&(0x7f00000000c0), 0x0, 0x0) ioctl$F2FS_IOC_START_ATOMIC_WRITE(r1, 0xf501, 0x0) r2 = syz_open_dev$usbmon(&(0x7f00000000c0), 0x0, 0x100) ioctl$F2FS_IOC_START_ATOMIC_WRITE(r2, 0xf501, 0x0) r3 = syz_open_dev$usbmon(&(0x7f00000000c0), 0x0, 0x0) ioctl$F2FS_IOC_START_ATOMIC_WRITE(r3, 0xf501, 0x0) poll(&(0x7f0000000040)=[{r2, 0x75a}, {r3, 0xf582}], 0xc, 0x0) 07:54:00 executing program 5: r0 = socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000001c0)=ANY=[@ANYBLOB="4800000024000b0f0000008bfbbc6e0060000000", @ANYRES32=r2, @ANYBLOB="00000000ffffffff00000000090001007072696f000000001800020004"], 0x48}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000280)={&(0x7f00000010c0)=@newtfilter={0x3c, 0x2c, 0xd27, 0x0, 0x0, {0x0, 0x0, 0x0, r2, {}, {}, {0x8}}, [@filter_kind_options=@f_tcindex={{0xc}, {0xc, 0x2, [@TCA_TCINDEX_CLASSID={0x8, 0x5, {0x1}}]}}]}, 0x3c}}, 0x0) r4 = socket(0x11, 0x800000003, 0x0) bind(r4, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r4, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r6, &(0x7f0000000800)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000500)=@newqdisc={0x30, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_fq={{0x7}, {0x4}}]}, 0x30}}, 0x0) 07:54:00 executing program 4: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x8002, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000280)={'\x00', 0x846512678b3a18b2}) r1 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r1, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)=@newlink={0x28, 0x10, 0xc362e63b3f31ba5f, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x3}, [@IFLA_GROUP={0x8}]}, 0x28}}, 0x0) write$tun(r0, &(0x7f00000002c0)={@val, @val={0x0, 0x0, 0x0, 0x0, 0x0, 0x5865}, @eth={@broadcast, @empty, @void, {@ipv4={0x800, @tipc={{0x5, 0x4, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x6, 0x0, @rand_addr, @empty}, @payload_mcast={{{{{{0x2c, 0x0, 0x0, 0x0, 0x0, 0xb}}}}}}}}}}}, 0x5c) 07:54:00 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000001c0)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bond={{0x9}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BOND_USE_CARRIER={0x5, 0x6, 0x3}]}}}]}, 0x3c}}, 0x0) [ 1130.271201][T14383] device gretap0 left promiscuous mode 07:54:00 executing program 3: r0 = openat$uinput(0xffffffffffffff9c, &(0x7f0000000040), 0x200000000801, 0x0) write$uinput_user_dev(r0, &(0x7f0000000140)={'syz0\x00'}, 0x45c) ioctl$UI_DEV_CREATE(r0, 0x5501) write$binfmt_elf32(r0, &(0x7f0000000600)=ANY=[], 0xfffffd6d) timer_create(0x0, &(0x7f0000000500)={0x0, 0x12, 0x0, @thr={0x0, 0x0}}, &(0x7f0000000080)) ioctl$UI_DEV_DESTROY(r0, 0x541b) timer_settime(0x0, 0x0, &(0x7f000006b000)={{0x0, 0x989680}, {0x0, 0x9}}, 0x0) timer_create(0x0, &(0x7f0000000000)={0x0, 0x14}, &(0x7f0000000040)=0x0) timer_settime(r1, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) [ 1130.332950][T14383] IPv6: ADDRCONF(NETDEV_CHANGE): vcan0: link becomes ready [ 1130.341023][T14383] IPv6: ADDRCONF(NETDEV_CHANGE): vcan0: link becomes ready 07:54:00 executing program 1: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt(r0, 0x84, 0x81, &(0x7f00000002c0)="1a00000002000100", 0x8) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r0, 0x84, 0x64, &(0x7f0000000100)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="ce", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) r1 = dup2(r0, r0) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r1, 0x84, 0x18, &(0x7f00000057c0), 0x8) 07:54:00 executing program 2: socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000600)={0xffffffffffffffff, 0xffffffffffffffff}) recvmsg$unix(r0, &(0x7f00000016c0)={0x0, 0x0, &(0x7f0000001640)=[{&(0x7f00000036c0)=""/235, 0xeb}], 0x1}, 0x0) sendmsg$inet(r1, &(0x7f0000000580)={0x0, 0x0, &(0x7f0000000040)=[{&(0x7f0000000640)='/', 0x1}], 0x1}, 0x0) 07:54:00 executing program 0: setresuid(0x0, 0xee01, 0xffffffffffffffff) r0 = socket$inet_udplite(0x2, 0x2, 0x88) ioctl$sock_inet_SIOCGIFDSTADDR(r0, 0x8917, &(0x7f00000001c0)={'syzkaller0\x00', {0x2, 0x0, @remote}}) [ 1130.812902][T14383] A link change request failed with some changes committed already. Interface caif0 may have been left with an inconsistent configuration, please check. 07:54:01 executing program 3: mount$9p_fd(0x2, 0x0, &(0x7f00000000c0), 0x0, 0x0) 07:54:01 executing program 5: r0 = socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000001c0)=ANY=[@ANYBLOB="4800000024000b0f0000008bfbbc6e0060000000", @ANYRES32=r2, @ANYBLOB="00000000ffffffff00000000090001007072696f000000001800020004"], 0x48}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000280)={&(0x7f00000010c0)=@newtfilter={0x3c, 0x2c, 0xd27, 0x0, 0x0, {0x0, 0x0, 0x0, r2, {}, {}, {0x8}}, [@filter_kind_options=@f_tcindex={{0xc}, {0xc, 0x2, [@TCA_TCINDEX_CLASSID={0x8, 0x5, {0x1}}]}}]}, 0x3c}}, 0x0) r4 = socket(0x11, 0x800000003, 0x0) bind(r4, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r4, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r6, &(0x7f0000000800)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000500)=@newqdisc={0x30, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_fq={{0x7}, {0x4}}]}, 0x30}}, 0x0) 07:54:01 executing program 1: sigaltstack(&(0x7f0000000080)={&(0x7f0000000240)=""/4096, 0x0, 0x1000}, &(0x7f0000000180)={0x0}) 07:54:01 executing program 4: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) bind$ax25(r0, &(0x7f0000000040)={{0x2, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}}, [@null, @bcast, @default, @remote={0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x2}, @null, @null, @null, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}]}, 0x48) 07:54:01 executing program 2: openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='memory.events\x00', 0x100002, 0x0) write$cgroup_subtree(r1, &(0x7f00000004c0)=ANY=[], 0x8) write$cgroup_subtree(r0, 0x0, 0x11) write$cgroup_int(r0, &(0x7f0000000200), 0x806000) 07:54:01 executing program 0: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000000)={&(0x7f0000000040)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0x24, 0x24, 0x4, [@ptr={0x0, 0x0, 0x0, 0x2, 0x2}, @restrict={0x0, 0x0, 0x0, 0xb, 0x3}, @fwd={0x1, 0x0, 0x0, 0x12}]}, {0x0, [0x61, 0x0]}}, &(0x7f00000001c0)=""/141, 0x40, 0xeb, 0x1}, 0x20) 07:54:01 executing program 3: r0 = syz_open_dev$evdev(&(0x7f0000000000), 0x0, 0x0) ioctl$EVIOCGMASK(r0, 0x80104592, &(0x7f0000000180)={0x16, 0x7, 0x0}) 07:54:01 executing program 5: r0 = socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000001c0)=ANY=[@ANYBLOB="4800000024000b0f0000008bfbbc6e0060000000", @ANYRES32=r2, @ANYBLOB="00000000ffffffff00000000090001007072696f000000001800020004"], 0x48}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000280)={&(0x7f00000010c0)=@newtfilter={0x3c, 0x2c, 0xd27, 0x0, 0x0, {0x0, 0x0, 0x0, r2, {}, {}, {0x8}}, [@filter_kind_options=@f_tcindex={{0xc}, {0xc, 0x2, [@TCA_TCINDEX_CLASSID={0x8, 0x5, {0x1}}]}}]}, 0x3c}}, 0x0) r4 = socket(0x11, 0x800000003, 0x0) bind(r4, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r4, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r6, &(0x7f0000000800)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000500)=@newqdisc={0x30, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_fq={{0x7}, {0x4}}]}, 0x30}}, 0x0) 07:54:02 executing program 4: pselect6(0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000180)={0xfffffffffffffffe, 0x8}) 07:54:02 executing program 0: r0 = gettid() r1 = openat$sndseq(0xffffffffffffff9c, &(0x7f0000000000), 0x0) read(r1, &(0x7f0000000080)=""/232, 0xe8) ioctl$SNDRV_SEQ_IOCTL_REMOVE_EVENTS(r1, 0x4040534e, &(0x7f0000000040)={0x59}) ioctl$SNDRV_SEQ_IOCTL_DELETE_PORT(r1, 0x404c534a, &(0x7f0000000440)={{}, 'port0\x00'}) ioctl$SNDRV_SEQ_IOCTL_SET_QUEUE_INFO(r1, 0xc08c5335, &(0x7f0000000240)={0x0, 0x0, 0x0, 'queue1\x00'}) tkill(r0, 0x7) 07:54:02 executing program 1: r0 = socket$phonet_pipe(0x23, 0x5, 0x2) r1 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000000)={0x90000004}) 07:54:02 executing program 3: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000000)=@base={0x10, 0x4, 0x4, 0x1}, 0x48) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000180)={0x11, 0x5, &(0x7f0000000000)=@framed={{}, [@map_idx]}, &(0x7f0000000040)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000240)=[r0]}, 0x80) 07:54:02 executing program 2: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000140)={0x5, 0x4, &(0x7f0000000040)=@framed={{}, [@ldst={0x1, 0x2, 0x3, 0x0, 0x1, 0x68}]}, &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x24, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:54:02 executing program 4: r0 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_fanout(r0, 0x107, 0x12, &(0x7f0000000000)={0x0, 0x8007}, 0x4) r1 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$ETHTOOL_MSG_DEBUG_GET(r1, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000080)={0x14}, 0x14}}, 0x0) 07:54:02 executing program 5: r0 = socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000780)={&(0x7f00000001c0)=ANY=[@ANYBLOB="4800000024000b0f0000008bfbbc6e0060000000", @ANYRES32=r2, @ANYBLOB="00000000ffffffff00000000090001007072696f000000001800020004"], 0x48}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000280)={&(0x7f00000010c0)=@newtfilter={0x3c, 0x2c, 0xd27, 0x0, 0x0, {0x0, 0x0, 0x0, r2, {}, {}, {0x8}}, [@filter_kind_options=@f_tcindex={{0xc}, {0xc, 0x2, [@TCA_TCINDEX_CLASSID={0x8, 0x5, {0x1}}]}}]}, 0x3c}}, 0x0) r4 = socket(0x11, 0x800000003, 0x0) bind(r4, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r4, &(0x7f00000003c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r6 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r6, &(0x7f0000000800)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000500)=@newqdisc={0x30, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_fq={{0x7}, {0x4}}]}, 0x30}}, 0x0) 07:54:02 executing program 1: syz_mount_image$tmpfs(&(0x7f0000000240), &(0x7f0000000280)='./file0\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f00000015c0)={[{@mpol={'mpol', 0x3d, {'interleave', '=static', @void}}}], [{@rootcontext={'rootcontext', 0x3d, 'sysadm_u'}}]}) 07:54:03 executing program 3: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0xd, 0x4, &(0x7f0000000000)=@framed={{}, [@ldst={0x1, 0x0, 0x3, 0x2, 0x1, 0x94}]}, &(0x7f0000000080)='syzkaller\x00', 0x4, 0x98, &(0x7f00000000c0)=""/152, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 07:54:03 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_genetlink_get_family_id$devlink(0x0, 0xffffffffffffffff) sendmsg$DEVLINK_CMD_TRAP_POLICER_GET(0xffffffffffffffff, &(0x7f0000000840)={&(0x7f0000000400)={0x10, 0x0, 0x0, 0x20000000}, 0xc, &(0x7f00000006c0)={&(0x7f0000000980)=ANY=[@ANYBLOB="504033a0a222cfeca7b4040aecb70a5e4eecd8f8d3ce5c4ace092a5a354b904c872f1a7c2f2fd73ab595c69abdd4077f2e8c3077fb0e4c26e35922e88c3c601970d09e5aa05729531f9e32436198143f30e8d96600"/94, @ANYRES16=r1, @ANYRES32=r0], 0x88}, 0x1, 0x0, 0x0, 0x48004}, 0x40) sendmsg$IEEE802154_DISASSOCIATE_REQ(0xffffffffffffffff, &(0x7f0000000340)={&(0x7f0000000240)={0x10, 0x0, 0x0, 0x2000}, 0xc, &(0x7f0000000300)={&(0x7f0000000280)={0x5c, 0x0, 0x2, 0x70bd29, 0x25dfdbfb, {}, [@IEEE802154_ATTR_COORD_HW_ADDR={0xc, 0x9, {0xaaaaaaaaaaaa0002}}, @IEEE802154_ATTR_COORD_SHORT_ADDR={0x6, 0x8, 0xffff}, @IEEE802154_ATTR_REASON={0x5, 0x12, 0x3}, @IEEE802154_ATTR_COORD_HW_ADDR={0xc}, @IEEE802154_ATTR_COORD_SHORT_ADDR={0x6, 0x8, 0xaaa2}, @IEEE802154_ATTR_COORD_SHORT_ADDR={0x6, 0x8, 0xfffe}, @IEEE802154_ATTR_COORD_SHORT_ADDR={0x6, 0x8, 0xffff}, @IEEE802154_ATTR_REASON={0x5, 0x12, 0x7}]}, 0x5c}, 0x1, 0x0, 0x0, 0x4008000}, 0x54) sendmsg$DEVLINK_CMD_SB_OCC_MAX_CLEAR(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x8000}, 0xc, &(0x7f0000000040)={&(0x7f00000000c0)={0x11c, r1, 0x202, 0x70bd29, 0x25dfdbfc, {}, [{@pci={{0x8}, {0x11}}, {0x8, 0xb, 0x8}}, {@pci={{0x8}, {0x11}}, {0x8, 0xb, 0xfff}}, {@pci={{0x8}, {0x11}}, {0x8}}, {@pci={{0x8}, {0x11}}, {0x8, 0xb, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0xb, 0x8}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0xb, 0x4}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8}}]}, 0x11c}, 0x1, 0x0, 0x0, 0x20000000}, 0x40c01) r2 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$KDSETMODE(r2, 0x4b3a, 0x1) r3 = epoll_create(0x40) r4 = socket(0x11, 0x2, 0x0) epoll_ctl$EPOLL_CTL_ADD(r3, 0x1, r4, &(0x7f0000000080)={0xa000000e}) sendmsg$DEVLINK_CMD_TRAP_POLICER_GET(r4, &(0x7f0000000500)={&(0x7f0000000380), 0xc, &(0x7f00000003c0)={&(0x7f0000000440)={0x84, r1, 0x2, 0x70bd2d, 0x25dfdbff, {}, [{@pci={{0x8}, {0x11}}, {0x8, 0x8e, 0x3}}, {@pci={{0x8}, {0x11}}, {0x8, 0x8e, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0x8e, 0x3}}]}, 0x84}, 0x1, 0x0, 0x0, 0x4c041}, 0xc000) ioctl$TIOCL_SETSEL(r2, 0x541c, &(0x7f0000000080)={0x2, {0x3, 0x0, 0x0, 0x400, 0x100}}) r5 = epoll_create(0x40) r6 = socket(0x11, 0x2, 0x0) epoll_ctl$EPOLL_CTL_ADD(r5, 0x1, r6, &(0x7f0000000080)={0xa000000e}) epoll_wait(r5, &(0x7f00000000c0)=[{}], 0x1, 0x0) epoll_ctl$EPOLL_CTL_MOD(r5, 0x3, r0, &(0x7f0000000540)={0x80000000}) 07:54:03 executing program 2: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_BATCH(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)={{0x14}, [@NFT_MSG_NEWTABLE={0x20, 0x0, 0xa, 0x3, 0x0, 0x0, {0x2}, [@NFTA_TABLE_NAME={0x9, 0x1, 'syz0\x00'}]}, @NFT_MSG_NEWSET={0x60, 0x9, 0xa, 0x401, 0x0, 0x0, {0x2}, [@NFTA_SET_ID={0x8}, @NFTA_SET_NAME={0x9, 0x2, 'syz1\x00'}, @NFTA_SET_TABLE={0x9, 0x1, 'syz0\x00'}, @NFTA_SET_KEY_LEN={0x8, 0x5, 0x1, 0x0, 0x26}, @NFTA_SET_EXPR={0x24, 0x11, 0x0, 0x1, @bitwise={{0xc}, @val={0x14, 0x2, 0x0, 0x1, [@NFTA_BITWISE_LEN={0x8}, @NFTA_BITWISE_SREG={0x8}]}}}]}], {0x14, 0x10}}, 0xa8}}, 0x0) 07:54:03 executing program 4: sendmsg$NFT_BATCH(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f00000001c0)={&(0x7f0000000000)=ANY=[@ANYBLOB="769100001400010085be0000000f00000a04000001000000000301"], 0x1}}, 0x0) r0 = socket$inet6(0x10, 0x3, 0x0) sendto$inet6(r0, &(0x7f0000000000)='E', 0x10a73, 0x800, 0x0, 0x4b6ae4f95a5de35b) [ 1133.317012][T14438] tmpfs: Unknown parameter 'rootcontext' 07:54:03 executing program 1: syz_usb_connect(0x0, 0x2d, &(0x7f0000000140)={{0x12, 0x1, 0x0, 0xea, 0xe4, 0x6c, 0x40, 0x5f9, 0xffff, 0xc7ed, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x1, 0x7b, 0xb5, 0xe5, 0x0, [], [{{0x9, 0x5, 0x6, 0x2}}]}}]}}]}}, 0x0) 07:54:03 executing program 3: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) setsockopt$SO_ATTACH_FILTER(r0, 0x1, 0x1a, &(0x7f0000000480)={0x1, &(0x7f0000000400)=[{0x6, 0x0, 0x0, 0x101}]}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) writev(r0, &(0x7f00000001c0)=[{&(0x7f0000001340)="e88edf114bb58496b65ad99e86f16b8b862b0c3e6ad3826ab9fd6d5534100c95b73663e7564961c9b9a29a129cc500418ebc2b0578763e0793a412f03bec34bb9c4aa37a830d56ec1710e89f0f1e07a8f5791a5d5ac3fb2821a1d42b73fe66219c034f721224cbabd0ee44575771335695c885f66e31abdc146bcb28d21e06c3031dc382df5bcf31a5715d2e694db3e65d351de91ac800f036f6662317934d1604dd808272a31857cc3c337cae9410ccba01fe97025b0fb4f6730c0df305a23af8c2b7e8434a6e69beabe81fbac2deddc0169f354b86af5dbac23f0c4e59b19ca12249c91f166af8ac253a8d26f53e045f034248117eb1c0de49317e48fe01d85a8e2f96f375567b65e9d1f091e67eec7094e6770a3e7b04ccb605d832b4ac61f090e14a138fa3adf3b89eb17717e2f47834bd7ecdb7327339990d08e2e7abb45ab07069792c43469d65c3cef32815d07586ef48f11f467e60d943e30ca030c40e1f518bcbd822023c3c9310e93705604f67d6f277d845676fe79699a5a33e53ec92d82cf72930f4959bdad50db7c794a616aa8649fda3b6d3d7b230130454133ecc8a69f2d7a251c24b08c4a2c949244bc899749984571f12848b1c4401d65dfd50da42b9c8249def4b786d70d06a5c4f9f192e6a6a3d977e5e0659ecb3fe6bbf1c33e78068a5b218d430a81b19d86670d555017617abcd63d07c8644182f6efeb6234a95f80d", 0x207}], 0x1) sendto$inet(r0, &(0x7f00000012c0)="0c268a927f1f6588b967481241ba7860fcfaf65ac618ded8974895abeaf4b4834ff922b3f1e0b02bd67aa03059bcecc7a95425a3a07e758044ab4ea6f7ae55d88fecf90b1a7511bf746bec66ba", 0xfe6a, 0x11, 0x0, 0x27) [ 1133.712490][T14443] ===================================================== [ 1133.712755][T14443] BUG: KMSAN: uninit-value in set_selection_kernel+0xe75/0x3960 [ 1133.712908][T14443] set_selection_kernel+0xe75/0x3960 [ 1133.713050][T14443] set_selection_user+0xdd/0x120 [ 1133.713180][T14443] tioclinux+0x1fd/0x820 [ 1133.713313][T14443] vt_ioctl+0x54a/0x2a30 [ 1133.713427][T14443] vt_compat_ioctl+0x35f/0x880 [ 1133.713552][T14443] tty_compat_ioctl+0x559/0x910 [ 1133.713672][T14443] __se_compat_sys_ioctl+0x781/0xfa0 [ 1133.713849][T14443] __ia32_compat_sys_ioctl+0x8f/0xd0 [ 1133.713965][T14443] __do_fast_syscall_32+0x95/0xf0 [ 1133.714063][T14443] do_fast_syscall_32+0x33/0x70 [ 1133.714154][T14443] do_SYSENTER_32+0x1b/0x20 [ 1133.714249][T14443] entry_SYSENTER_compat_after_hwframe+0x53/0x62 [ 1133.714411][T14443] [ 1133.714429][T14443] Uninit was created at: [ 1133.714570][T14443] __alloc_pages+0x9f1/0xe80 [ 1133.714681][T14443] __alloc_pages_bulk+0x1adc/0x2510 [ 1133.714796][T14443] alloc_pages_bulk_array_mempolicy+0xc2f/0xf40 [ 1133.714915][T14443] __vmalloc_node_range+0xad6/0x2700 [ 1133.715016][T14443] vmalloc+0x8c/0xa0 [ 1133.715098][T14443] vc_do_resize+0x6d4/0x2ba0 [ 1133.715206][T14443] vc_resize+0x5a/0x70 [ 1133.715300][T14443] fbcon_modechanged+0xb81/0x15a0 [ 1133.715433][T14443] fbcon_update_vcs+0x36/0x40 [ 1133.715538][T14443] do_fb_ioctl+0xa5e/0xbb0 [ 1133.715672][T14443] fb_compat_ioctl+0x379/0xda0 [ 1133.715805][T14443] __se_compat_sys_ioctl+0x781/0xfa0 [ 1133.715921][T14443] __ia32_compat_sys_ioctl+0x8f/0xd0 [ 1133.716036][T14443] __do_fast_syscall_32+0x95/0xf0 [ 1133.716130][T14443] do_fast_syscall_32+0x33/0x70 [ 1133.716225][T14443] do_SYSENTER_32+0x1b/0x20 [ 1133.716313][T14443] entry_SYSENTER_compat_after_hwframe+0x53/0x62 [ 1133.716471][T14443] [ 1133.716491][T14443] CPU: 1 PID: 14443 Comm: syz-executor.0 Not tainted 5.19.0-rc4-syzkaller-31333-g97117d69c353 #0 [ 1133.716603][T14443] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/29/2022 [ 1133.716662][T14443] ===================================================== [ 1133.716690][T14443] Disabling lock debugging due to kernel taint [ 1133.716725][T14443] Kernel panic - not syncing: kmsan.panic set ... [ 1133.716765][T14443] CPU: 1 PID: 14443 Comm: syz-executor.0 Tainted: G B 5.19.0-rc4-syzkaller-31333-g97117d69c353 #0 [ 1133.716874][T14443] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/29/2022 [ 1133.716930][T14443] Call Trace: [ 1133.716960][T14443] [ 1133.716991][T14443] dump_stack_lvl+0x1c8/0x256 [ 1133.717139][T14443] dump_stack+0x1a/0x1c [ 1133.717271][T14443] panic+0x4d3/0xc69 [ 1133.717387][T14443] ? kmsan_get_metadata+0x10/0x220 [ 1133.717512][T14443] ? add_taint+0x104/0x1a0 [ 1133.717648][T14443] kmsan_report+0x2cc/0x2d0 [ 1133.717764][T14443] ? do_SYSENTER_32+0x1b/0x20 [ 1133.717859][T14443] ? string+0x527/0x580 [ 1133.717981][T14443] ? kmsan_get_metadata+0x33/0x220 [ 1133.718094][T14443] ? __msan_warning+0x92/0x110 [ 1133.718204][T14443] ? set_selection_kernel+0xe75/0x3960 [ 1133.718349][T14443] ? set_selection_user+0xdd/0x120 [ 1133.718484][T14443] ? tioclinux+0x1fd/0x820 [ 1133.718584][T14443] ? vt_ioctl+0x54a/0x2a30 [ 1133.718701][T14443] ? vt_compat_ioctl+0x35f/0x880 [ 1133.718826][T14443] ? tty_compat_ioctl+0x559/0x910 [ 1133.718951][T14443] ? __se_compat_sys_ioctl+0x781/0xfa0 [ 1133.719069][T14443] ? __ia32_compat_sys_ioctl+0x8f/0xd0 [ 1133.719193][T14443] ? __do_fast_syscall_32+0x95/0xf0 [ 1133.719290][T14443] ? do_fast_syscall_32+0x33/0x70 [ 1133.719384][T14443] ? do_SYSENTER_32+0x1b/0x20 [ 1133.719475][T14443] ? entry_SYSENTER_compat_after_hwframe+0x53/0x62 [ 1133.719638][T14443] ? filter_irq_stacks+0x5c/0x1a0 [ 1133.719785][T14443] ? __stack_depot_save+0x21/0x4b0 [ 1133.719901][T14443] ? kmsan_get_metadata+0x33/0x220 [ 1133.720020][T14443] ? kmsan_get_metadata+0x33/0x220 [ 1133.720135][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.720272][T14443] ? kmsan_get_metadata+0x4d/0x220 [ 1133.720391][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.720520][T14443] ? kmsan_get_metadata+0x33/0x220 [ 1133.720635][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.720765][T14443] __msan_warning+0x92/0x110 [ 1133.720876][T14443] set_selection_kernel+0xe75/0x3960 [ 1133.721049][T14443] set_selection_user+0xdd/0x120 [ 1133.721199][T14443] tioclinux+0x1fd/0x820 [ 1133.721317][T14443] vt_ioctl+0x54a/0x2a30 [ 1133.721454][T14443] ? capable+0x120/0x1d0 [ 1133.721582][T14443] vt_compat_ioctl+0x35f/0x880 [ 1133.721710][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.721842][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.721971][T14443] ? vc_SAK+0x260/0x260 [ 1133.722089][T14443] tty_compat_ioctl+0x559/0x910 [ 1133.722232][T14443] ? tty_poll+0x3c0/0x3c0 [ 1133.722350][T14443] __se_compat_sys_ioctl+0x781/0xfa0 [ 1133.722475][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.722617][T14443] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 1133.722750][T14443] __ia32_compat_sys_ioctl+0x8f/0xd0 [ 1133.722881][T14443] __do_fast_syscall_32+0x95/0xf0 [ 1133.722988][T14443] do_fast_syscall_32+0x33/0x70 [ 1133.723086][T14443] do_SYSENTER_32+0x1b/0x20 [ 1133.723180][T14443] entry_SYSENTER_compat_after_hwframe+0x53/0x62 [ 1133.723349][T14443] RIP: 0023:0xf7fb2549 [ 1133.723412][T14443] Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 [ 1133.723507][T14443] RSP: 002b:00000000f7fad5cc EFLAGS: 00000296 ORIG_RAX: 0000000000000036 [ 1133.723601][T14443] RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 000000000000541c [ 1133.723669][T14443] RDX: 0000000020000080 RSI: 0000000000000000 RDI: 0000000000000000 [ 1133.723731][T14443] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 [ 1133.723788][T14443] R10: 0000000000000000 R11: 0000000000000296 R12: 0000000000000000 [ 1133.723847][T14443] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 [ 1133.723929][T14443] [ 1133.724140][T14443] Kernel Offset: disabled [ 1134.295920][T14443] Rebooting in 86400 seconds..