Angela Howard, Grace Mappes, Nicole Wolkov, George Barros, Kateryna Stepanenko,
and Frederick W. Kagan
Click here to see ISW’s interactive map of the Russian invasion of Ukraine. This map is updated daily alongside the static maps present in this report.
Click here to access ISW’s archive of interactive time-lapse maps of the Russian invasion of Ukraine. These maps complement the static control-of-terrain map that ISW produces daily by showing a dynamic frontline. ISW will update this time-lapse map archive monthly.
Wagner Group financier Yevgeny Prigozhin threatened to withdraw Wagner forces from Bakhmut if the Russian military command fails to provide more ammunition to the Wagner mercenaries. Prigozhin stated in an interview with a Kremlin-affiliated milblogger on April 29 that the Wagner mercenaries will continue to fight in Bakhmut but will need to “withdraw in an organized manner or stay and die” if the situation does immediately not improve.[1] Prigozhin stated that Wagner needs about 80,000 shells per day — its previous shell allowance prior to apparent Russian Ministry of Defense (MoD) efforts to reduce Wagner’s influence. Prigozhin added that Wagner is only receiving 800 of the 4,000 shells per day that it is currently requesting. Prigozhin claimed that Wagner and Deputy Commander of Russian Forces in Ukraine Army General Sergei Surovikin developed a plan to “grind” the Ukrainian forces in Bakhmut that deprived Ukraine of its initiative on the battlefield. Prigozhin’s mention of Surovikin is likely an attempt to publicly affiliate with Surovikin as Russian President Vladimir Putin’s favor is shifting away from Chief of the Russian General Staff Army General Valery Gerasimov’s network.[2] Prigozhin is likely attempting to regain access to more ammunition as Putin is once again reshuffling the Russian military leadership in a way that may favor Prigozhin.
Prigozhin also continued his efforts to convince the Kremlin to go over to the defensive in eastern Ukraine. Prigozhin claimed that the Ukrainian counteroffensive could take place before May 15 but that the Russian military is not rushing to prepare to repel attacks.[3] Prigozhin’s threat to withdraw from Bakhmut may also indicate that Prigozhin fears that the Russian positions in Bakhmut’s rear are vulnerable to counterattacks.
Prigozhin offered a position as First Deputy Commander of Wagner forces to former Russian Deputy Defense Minister for Logistics Colonel General Mikhail Mizintsev, who was reportedly dismissed from his position on April 27.[4] Prigozhin claimed on April 29 that the Wagner commanders’ council decided to offer Mizintsev a position as deputy commander under Wagner commander Dmitry Utkin.[5] Prigozhin also stated in the interview that Mizintsev was operating on the frontlines and was fired for his intractability.[6] Russian milbloggers previously claimed that Mizintsev’s dismissal could have resulted from the Russian Northern Fleet’s lack of supplies revealed by Wagner-affiliated Commander of the Russian Airborne Forces Mikhail Teplinsky’s readiness checks.[7] Mizintsev’s affiliation with Wagner is unclear at this time. It is possible that his firing was an attempt to improve military supplies to the forces within or affiliated with Teplinsky’s command — such as Wagner forces. Prigozhin has previously mockingly offered command positions to figures he dislikes, such as former Russian officer Igor Girkin, and Prigozhin’s offer may have been an attempt to humiliate Mizintsev.[8] Unconfirmed Russian sources claimed that Teplinsky assumed the position of deputy commander of the Russian forces in Ukraine, and Mizintsev’s dismissal, if it occurred, suggests that Teplinsky has sway with Putin that allows him to shape decisions about command changes.[9]
Ukrainian forces likely attacked an oil storage facility in Sevastopol reportedly with a wave of Mugin-5 UAVs on April 29. Footage posted on April 29 shows a large fire at an oil storage facility at Kozacha Bay on April 29.[10] Occupation governor of Sevastopol Mikhail Razvozhaev stated on April 29 that a Ukrainian UAV struck an oil tank near Kozacha Bay and caused a fire over 1,000 square meters in extent.[11] A prominent Russian milblogger based in Sevastopol reported that two Ukrainian UAVs destroyed four fuel tanks.[12] Another Russian military blogger reported that at least 10 Ukrainian Mugin-5 drones conducted the attack from Shkolny Airfield in Odesa and that a combination of electronic warfare, small arms, and Pantsir-S1 air defense systems downed most of the UAVs upon approach to their target.[13] Crimean occupation head Sergey Aksyonov stated the attack did not result in any casualties.[14] Ukraine has not formally taken credit for the attack. A Ukrainian intelligence official claimed the attack destroyed 10 oil tanks with a total capacity of 40,000 tons of fuel and that the fuel destroyed was intended for use in the Black Sea Fleet.[15] This official also insinuated the attack was retribution for the Russian missile strike against Uman on April 28.[16] Some social media users noted that the Black Sea Fleet’s main fuel depot is in a different location on the east end of Sevastopol Bay.[17] Razvozhaev claimed that the fire will not affect the supply of fuel in Sevastopol as the destroyed reserves were not used to fuel gas stations.[18] Some milbloggers argued that this attack highlights the effectiveness of using low-cost drones for swarm attacks and underscores the need for Russian forces to saturate the Crimean air space with more air defense systems.[19]
Key Takeaways
- Wagner Group financier Yevgeny Prigozhin threatened to withdraw Wagner forces from Bakhmut if the Russian military command fails to provide more ammunition to Wagner mercenaries.
- Prigozhin also continued his efforts to convince the Kremlin to go over to the defensive in eastern Ukraine.
- Prigozhin offered the position of First Deputy Commander of Wagner forces, possibly sarcastically, to former Russian Deputy Defense Minister for Logistics Colonel General Mikhail Mizintsev who was reportedly dismissed from his position on April 27.
- Ukrainian forces attacked an oil storage facility in Sevastopol reportedly with a wave of Mugin-5 UAVs on April 29.
- Russian forces conducted limited ground attacks on the Svatove-Kreminna line.
- Russian forces made limited gains in Bakhmut and continued ground attacks along the Avdiivka-Donetsk City line.
- The Russian Ministry of Defense (MoD) claimed that Russian forces conducted a sea-based missile strike against the command post of the Ukrainian Kherson Group of Forces. Ukrainian officials have so far not confirmed this claim.
- The Russian MoD continues to pursue measures to expedite the conscription process and increase the difficulty of evading summonses.
- Russian occupation authorities and border area officials have expanded security measures and filtration efforts likely in anticipation of increased Ukrainian partisan activity in support of a potential Ukrainian counteroffensive.
- Russian Main Effort – Eastern Ukraine (comprised of two subordinate main efforts)
- Russian Subordinate Main Effort #1 – Capture the remainder of Luhansk Oblast and push westward into eastern Kharkiv Oblast and encircle northern Donetsk Oblast
- Russian Subordinate Main Effort #2 – Capture the entirety of Donetsk Oblast
- Russian Supporting Effort – Southern Axis
- Russian Mobilization and Force Generation Efforts
- Activities in Russian-occupied areas
Russian Main Effort – Eastern Ukraine
Russian Subordinate Main Effort #1 – Luhansk Oblast (Russian objective: Capture the remainder of Luhansk Oblast and push westward into eastern Kharkiv Oblast and northern Donetsk Oblast)
Russian forces conducted limited ground attacks on the Svatove-Kreminna line on April 29. The Ukrainian General Staff reported that Russian forces conducted unsuccessful ground attacks towards Bilohorivka (12km south of Kreminna) and south of Dibrova (5km southwest of Kreminna).[20] A Russian milblogger claimed that Russian forces conducted unsuccessful ground attacks in the directions of Terny and Nevske (both 16-18km west of Kreminna) and in the Serebrianka forest area (11km south of Kreminna).[21]
Ukrainian forces continue to target Russian rear areas in Luhansk Oblast. Russian sources claimed that Ukrainian forces struck Bryanka (9km west of Alchevsk on the T0504 highway) with four HIMARS rockets on April 29.[22]
Russian forces made limited gains in Bakhmut on April 29. Geolocated footage published on April 29 indicated a limited Russian advance in southwestern and northwestern Bakhmut.[23] Russian milbloggers claimed that Russian forces advanced in northwestern Bakhmut and captured the Bakhmut Medical College in central Bakhmut and the Bakhmut Industrial College in southern Bakhmut.[24] A milblogger claimed that Russian forces control 92 percent of Bakhmut and conducted ground attacks near the road through Khromove (immediately west of Bakhmut), and near Orikhovo-Vasylivka (11km northwest of Bakhmut), Bohdanivka, and Ivanivske (5km west of Bakhmut).[25] Another milblogger claimed that Wagner forces reached the T0504 Kostyantynivka-Chasiv Yar-Bakhmut highway and made limited advances in southern Bakhmut.[26] The Ukrainian General Staff reported that Russian forces continue conducting ground attacks in Bakhmut and conducted unsuccessful ground attacks near Bohdanivka (6km northwest of Bakhmut), Chasiv Yar (9km west of Bakhmut), and Predtechyne (12km southwest of Bakhmut).[27] Ukrainian Eastern Group of Forces Spokesperson Colonel Serhiy Cherevaty stated that Ukrainian forces still have access to logistics routes to Bakhmut, denying Russian claims that Russian forces control the routes to Bakhmut.[28] A Russian milblogger claimed that Ukrainian forces unsuccessfully attempted to unblock the E40 highway toward Krasna Hora (6km north of Bakhmut).[29]
Russian forces conducted ground attacks along the Avdiivka-Donetsk City line on April 29. The Ukrainian General Staff reported that Russian forces conducted unsuccessful ground attacks near Avdiivka, Sieverne (5km west of Avdiivka), Pervomaiske (11km southwest of Avdiivka), Marinka (27km southwest of Avdiivka), and Novomykhailivka (10km southwest of Donetsk City).[30] Russian milbloggers claimed that Russian forces conducted ground attacks near the H20 highway west of Novobakhmutivka (12km north of Avdiivka) and near Krasnohorivka (9km north of Avdiivka) and Vodyane (7km southwest of Avdiivka). Footage published on April 29 shows elements of the 1454th Motorized Rifle Regiment, 9th Brigade, and 14th ”Kalmius” Brigade (1st Donetsk People’s Republic (DNR) Army Corps) operating near Avdiivka.[31] The Ukrainian General Staff reported that the Russian forces have increasingly refused to fight in the Marinka direction due to: significant manpower losses, lack of timely ammunition supply, lack of personal protective equipment, and orders to conduct assault operations without heavy equipment or artillery support.[32][33]
Russian forces did not conduct offensive operations in western Donetsk Oblast on April 29. The Ukrainian General Staff reported that Russian forces did not conduct ground attacks in the Shakhtarske direction.[34] Footage published on April 29 purportedly shows the “Kaskad” operational-combat tactical formation (a DNR element) operating near Vuheldar.[35]
Russian Supporting Effort – Southern Axis (Russian objective: Maintain frontline positions and secure rear areas against Ukrainian strikes)
The Russian Ministry of Defense (MoD) claimed that Russian forces conducted a sea-based missile strike against the command post of the Ukrainian Kherson Group of Forces on the evening of April 28.[36] Russian state-affiliated news outlet RIA Novosti published footage on April 29 of a Russian Black Sea Fleet vessel launching Kaliber missiles allegedly at the Ukrainian command post.[37] Ukrainian officials have not commented on the Russian claim. Russian forces continued to conduct routine fire on the frontline west of Hulyaipole and in Kherson Oblast on April 29.[38] A Russian milblogger posted footage on April 29 of Russian forces striking Ukrainian positions near Hulyaipole with a TOS-1A thermobaric artillery system.[39] ISW continues to assess that allocation of this military district-level asset will not provide Russian forces with a decisive battlefield advantage.
Ukrainian forces continue to target Russian military assets in rear areas in southern Ukraine. A Russian source claimed on April 29 that Ukrainian forces conducted a HIMARS strike against the command post of the Russian 19th Motorized Rifle Division (58th Combined Arms Army, Southern Military District) 20km from the front line, and geolocated footage shows the aftermath of a HIMARS strike near Tavriia, Zaporizhia Oblast (14km northwest of Tokmak and 20km from the current front line).[40]
Russian authorities continue consolidating physical control over the Zaporizhzhia Nuclear Power Plant (ZNPP). International Atomic Energy Agency (IAEA) Director General Rafael Grossi stated on April 28 that 3,000 personnel at the ZNPP have contracts with Russian state nuclear energy operator Rosatom and another 1,000 personnel have contracts pending with Rosatom. Grossi stated that 1,000 personnel work under Ukrainian state nuclear energy operator Energoatom.[41] Grossi also stated that unspecified plant operators, presumably Russian operators, are working to restore power lines between the ZNPP and Russian-occupied territory and the Zaporizhzhia Thermal Power Plant (ZTPP). Russia likely aims to establish legitimacy as the only capable operator of the ZNPP by spearheading repairs that Ukraine cannot perform while Russia occupies the ZNPP.
Russian Mobilization and Force Generation Efforts (Russian objective: Expand combat power without conducting general mobilization)
The Russian Ministry of Defense (MoD) continues to pursue measures to expedite the conscription process and increase the difficulty of evading summonses. The Russian MoD released on April 29 a draft regulation that would allow military registration and enlistment offices to summon recruits by certified mail or automatic electronic delivery. The draft further would forbid conscripts from leaving Russia from the moment they receive a summons and would introduce restrictions against conscripts who fail to appear at military registration and enlistment offices within 20 days of the date appointed in the summons. These changes are set to come into effect in August 2023.[42]
Russian nationalist figures responded to Russian President Vladimir Putin’s April 28 mandate to Russian officials to develop Russia’s domestic drone industry. A Russian journalistic figure stated and a pair of notable milbloggers amplified that the effort to develop Russia’s drone industry is one year overdue.[43] Several actors noted that the Russian drone industry is lagging behind and that a significant quantity of Russian manufacturers will likely try to cheat on production efforts and take advantage of the state’s current prioritization of drones to overcharge for their products.[44]
Activities in Russian-occupied areas (Russian objective: Consolidate administrative control of annexed areas; forcibly integrate Ukrainian civilians into Russian sociocultural, economic, military, and governance systems)
Russian occupation authorities and border zone officials have expanded security measures and filtration efforts likely out of concern for increased partisan activity in support of a potential Ukrainian counteroffensive. The Ukrainian General Staff stated on April 29 that Russian occupation authorities have intensified filtration measures in occupied Kherson Oblast, conduct mass searches for phones with Ukrainian SIM cards in southwestern Kherson Oblast, and have increased the number of patrols and counterintelligence measures in the Kerch Peninsula, Crimea.[45] Zaporizhia Oblast occupation administration deputy Vladimir Rogov announced that occupation authorities established a curfew in Tokmak Raion, Zaporizhia Oblast starting on May 1.[46] Ukrainian Mariupol City Mayoral Advisor Patro Andryushchenko stated on April 29 that Russian occupation authorities are increasing street patrols and random checks.[47] Pskov Oblast Governor Mikhail Vedernikov stated on April 29 that the oblast should “be ready for provocations” and there will be no military parade or fireworks on Victory Day, May 9.[48] The Belgorod Mayoral Office shared maps on April 29 showing bomb shelter locations near popular recreation areas and stressing the importance of knowing shelter locations in preparation for May holidays.[49]
Russian authorities are discussing and will likely proceed with amending Russian martial law to enable occupation administrations in Ukraine to hold planned performative elections in fall 2023. Current Russian law prohibits areas under martial law – which is in place in annexed Ukrainian territories – from holding elections.[50] The State Duma has already passed other legislation prescribing procedures for elections in annexed territories and four constitutional amendments setting annexed territories’ election dates for the second Sunday of September, however.[51] Russian authorities likely hope to eliminate the contradictory policies and support a sham election system to legitimize Russian control in occupied areas.
Russian officials continue to justify the Russian invasion and occupation of Ukraine as a response to “religious persecution” in Ukraine. Zaporizhia Oblast occupation administration deputy Vladimir Rogov claimed on April 28 that unspecified individuals in Ukrainian-held Zaporizhia Oblast started a petition to ban the “canonical Ukrainian Orthodox Church” in Zaporizhia and gained the required number of votes to move the petition forward in a single day.[52] Rogov falsely stated that the petition concerns banning the Ukrainian Orthodox Church, as the actual petition asks Zaporizhzhia authorities to make a decision regarding the termination of all contracts concluded between official Zaporizhia city structures and the Ukrainian Orthodox Church of the Moscow Patriarchate (UOC MP).[53] Rogov deceptively stated that the bill referred to the “canonical Ukrainian Orthodox Church” to present the petition as a move against the Orthodox faith. Rogov obscured the fact that the petition refers to the UOC MP, the Kremlin-controlled Russian Orthodox Church’s subordinate element in Ukraine, which provided material support for Russia’s illegal invasion of Crimea and Eastern Ukraine in 2014.[54] The petition does not concern the Orthodox Church of Ukraine (OCU), which gained autocephaly (independence) from the UOC MP in 2019, which the UOC MP refuses to acknowledge.[55] Russian occupation authorities, meanwhile, are likely systematically eliminating OCU churches in occupied Ukraine.[56]
Significant activity in Belarus (ISW assesses that a Russian or Belarusian attack into northern Ukraine in early 2023 is extraordinarily unlikely and has thus restructured this section of the update. It will no longer include counter-indicators for such an offensive.)
ISW will continue to report daily observed Russian and Belarusian military activity in Belarus, but these are not indicators that Russian and Belarusian forces are preparing for an imminent attack on Ukraine from Belarus. ISW will revise this text and its assessment if it observes any unambiguous indicators that Russia or Belarus is preparing to attack northern Ukraine.
Belarusian maneuver elements continue conducting exercises in Belarus. Unspecified Belarusian elements continued participating in a brigade tactical exercise on April 29.[57]
[1] https://t.me/wargonzo/12226; https://t.me/rusbrief/113137; https://dzen dot ru/video/watch/644cc90da1be2f710a8d82dc?share_to=telegram; https://t.me/concordgroup_official/863 ; https://t.me/istories_media/2431
[2] https://understandingwar.org/backgrounder/russian-offensive-campaign-assessment-april-17-2023; https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-april-18-2023
[3] https://t.me/wargonzo/12226; https://t.me/rusbrief/113137; https://dzen dot ru/video/watch/644cc90da1be2f710a8d82dc?share_to=telegram; https://t.me/concordgroup_official/863 ; https://t.me/istories_media/2431
[10] https://twitter.com/GeoConfirmed/status/1652268823154769922 ; https://twitter.com/GirkinGirkin/status/1652160545447878657 ; https://twitter.com/COUPSURE/status/1652235429666586624
[11] https://t.me/razvozhaev/2647; https://t.me/razvozhaev/2655; https://t.me/razvozhaev/2654; https://t.me/vrogov/8989; https://t.me/NeoficialniyBeZsonoV/24784; https://t.me/rlz_the_kraken/58032; https://t.me/milinfolive/99919; https://meduza dot io/news/2023/04/29/v-sevastopole-zagorelas-neftebaza-vlasti-schitayut-chto-pozhar-nachalsya-iz-za-ataki-bespilotnika; https://t.me/razvozhaev/2658; https://t.me/razvozhaev/2659; https://t.me/razvozhaev/2650
[15] https://gur.gov dot ua/content/vybukhy-v-sevastopoli-kara-bozha-za-uman.html
[16] https://gur.gov dot ua/content/vybukhy-v-sevastopoli-kara-bozha-za-uman.html
[17] https://twitter.com/Capt_Navy/status/1652226345949069317?s=20 ; https://twitter.com/The_Lookout_N/status/1652229964823945220?s=20 ; https://twitter.com/The_Lookout_N/status/1652235695535149057?s=20
[20] https://www.facebook.com/GeneralStaff.ua/posts/pfbid04dNXuj764M417Xn2tmN7wiQyBt1A1XLauUZ8EJVbxhiBxB38jCaYiKR4NF4RJVE1l; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XT...
[22] https://t.me/miroshnik_r/11201; https://t.me/boris_rozhin/84229; https://t.me/rybar/46411; https://t.me/rybar/46421
[23] https://twitter.com/auditor_ya/status/1652289732498341888; https://twitter.com/small10space/status/1652278239602065409; https://twitter.com/GeoConfirmed/status/1652324765758107652 https://twitter.com/Suriyakmaps/status/1652290527134457858; https://twitter.com/GeoConfirmed/status/1652328771276382209
[24] https://t.me/z_arhiv/20775; https://t.me/z_arhiv/20777; https://t.me/z_arhiv/20789; https://t.me/brussinf/5912
[27] https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XTre3UoKDCcqvAzvXc44idu8Nynpk2AeUeEmkdunuAodS3ml; https://www.facebook.com/GeneralStaff.ua/posts/pfbid04dNXuj764M417Xn2tmN7wiQyBt1A1XLauUZ8EJVbxhiBxB38jCaYiKR4NF4RJVE1l
[28] https://armyinform.com dot ua/2023/04/29/zayavy-vorogiv-shho-vony-kontrolyuyut-trasy-na-bahmut-ne-vidpovidayut-dijsnosti-sergij-cherevatyj/
[30] https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XTre3UoKDCcqvAzvXc44idu8Nynpk2AeUeEmkdunuAodS3ml; https://www.facebook.com/GeneralStaff.ua/posts/pfbid04dNXuj764M417Xn2tmN7wiQyBt1A1XLauUZ8EJVbxhiBxB38jCaYiKR4NF4RJVE1l
[31] https://t.me/nm_dnr/10279; https://twitter.com/GeoConfirmed/status/1652273092863971336; https://twitter.com/foosint/status/1652256026861748226; https://t.me/nm_dnr/10278; https://t.me/z_arhiv/20793
[33]https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XTre3UoKDCcqvAzvXc44idu8Nynpk2AeUeEmkdunuAodS3ml
[34] https://www.facebook.com/GeneralStaff.ua/posts/pfbid04dNXuj764M417Xn2tmN... https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XT...
[38] https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XTre3UoKDCcqvAzvXc44idu8Nynpk2AeUeEmkdunuAodS3ml; https://www.facebook.com/GeneralStaff.ua/posts/pfbid04dNXuj764M417Xn2tmN7wiQyBt1A1XLauUZ8EJVbxhiBxB38jCaYiKR4NF4RJVE1l
[40] https://twitter.com/NOELreports/status/1652066748210847744 ; https://twitter.com/GeoConfirmed/status/1652303413000929282 ; https://twitter.com/blinzka/status/1652089513366233092; https://t.me/m0sc0wcalling/23534
[42] https://regulation dot gov.ru/projects#npa=137931; https://meduza dot io/news/2023/04/29/minoborony-rf-razrabotalo-proekt-postanovleniya-ob-elektronnyh-povestkah-ozhidaetsya-chto-ono-vstupit-v-silu-v-avguste; https://www.kommersant dot ru/doc/5965893; https://tvrain dot tv/news/minoborony_razrabotalo_postanovlenie_ob_elektronnyh_povestkah-550996/
[43] https://t.me/SergeyKolyasnikov/48119; https://t.me/MedvedevVesti/13898; https://t.me/rybar/46416
[45]https://www.facebook.com/GeneralStaff.ua/posts/pfbid04dNXuj764M417Xn2tmN7wiQyBt1A1XLauUZ8EJVbxhiBxB38jCaYiKR4NF4RJVE1l; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0EntUHjAXPyELG8TH9XTre3UoKDCcqvAzvXc44idu8Nynpk2AeUeEmkdunuAodS3ml
[48] https://t.me/severrealii/16381; https://informpskov dot ru/news/420935.html
[50] https://www.vedomosti dot ru/politics/articles/2023/04/29/973180-gosdume-popravok-zakon-voennom-polozhenii; https://t.me/mobilizationnews/11588; https://regnum dot ru/news/3801823.html
[51] https://www.vedomosti dot ru/politics/articles/2023/04/29/973180-gosdume-popravok-zakon-voennom-polozhenii; http://council dot gov.ru/events/news/143702/
[53] https://ep.zp.gov dot ua/uk/petitions/rozirvaty-vsi-dogovory-mista-zaporizhzhya-iz-zaporiz-koyu-yeparkhiyeyu-upts-mp
[55] https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-april-9-2023