physique
font-family: “Atlas Grotesk Common”, sans-serif;
overflow-x: hidden;
/* removes high padding from web page */
#story #options
padding-top: 0px;
.explosion-marker
width: 36px;
top: 36px;
background-color: #e5393536;
border: 3px dashed #D50000;
border-radius: 50%;
box-sizing: border-box;
.explosion-marker.seen
background-color: #E539356b;
border: 3px stable #D50000;
/* ———- TITLE STEP START */
#piece-title-video
opacity: 1.0;
padding-bottom: 0px;
padding-top: 0px;
width: 100%;
margin: 0px;
#piece-title-video .darkish,
#piece-title-video .gentle
padding: 0px;
#piece-title-video .darkish p,
#piece-title-video .gentle p
margin: 0px;
padding: 0px;
#piece-title-video .video-container
place: relative;
/* width: 100%; */
top: 100%;
padding: 0px;
background: #e3e3e3ba;
#scroll-overlay
place: absolute;
/* high: 80%; */
high: 80vh;
left: 50%;
remodel: translate(-50%, -80%);
background-color: #D8AE5E;
font-size: 3vh;
line-height: 2rem;
text-align: middle;
padding: 5px;
padding-top: 10px;
padding-bottom: 10px;
animation: bounce 1s infinite;
show: none;
@keyframes bounce
0%,
20%,
50%,
80%,
100%
remodel: translate(-50%, -80%);
/* Preserve the div’s place */
40%
remodel: translate(-50%, -95%);
/* Alter for bounce */
60%
remodel: translate(-50%, -85%);
/* Alter for bounce */
#video-piece-title-video
width: 100%;
top: 100vh;
object-fit: cowl;
#piece-title-video .title-overlay
place: absolute;
width: 80%;
line-height: 1.3;
high: 20%;
left: 50%;
remodel: translate(-50%, -50%);
/* background-color: rgba(0, 0, 0, 0.2); */
/* shade: #212121; */
shade: #827717;
/* shade: #D8AE5E; */
padding: 20px;
font-size: 24px;
text-align: middle;
#scripps-iframe
width: 100%;
top: auto;
min-height: 315px;
/* ———- TITLE STEP END */
video
width: 100%;
physique
margin: 0;
padding: 0;
#story a,
#story a:hover,
#story a:visited
shade: #0071bc;
#map
high: 0;
top: 100vh;
width: 100vw;
place: fastened;
left: 0;
#mapInset
backside: 50px;
proper: 30px;
top: 180px;
width: 250px;
max-width: 100%;
place: fastened;
z-index: 1;
opacity: 1;
transition: opacity 0.5s ease-in-out;
pointer-events: none;
#mapInset .mapboxgl-ctrl-bottom-left
show: none;
@media (max-width: 500px)
#mapInset
show: none;
#header
margin: auto;
width: 100%;
place: relative;
z-index: 5;
#header h1,
#header h2,
#header p
margin: 0;
padding: 2vh 2vw;
text-align: middle;
#footer
width: 100%;
min-height: 5vh;
padding-top: 2vh;
padding-bottom: 2vh;
text-align: middle;
line-height: 25px;
font-size: 13px;
place: relative;
z-index: 5;
#options
padding-top: 10vh;
padding-bottom: 10vh;
.hidden
visibility: hidden;
.centered
width: 50vw;
margin: 0 auto;
.lefty
width: 36vw;
margin-left: 5vw;
.righty
width: 36vw;
margin-left: 62vw;
.absolutely
width: 80%;
margin: auto;
.gentle
shade: #444;
background-color: #fafafa;
.darkish
shade: #fafafa;
background-color: #444;
.step
padding-top: 50vh;
padding-bottom: 50vh;
/* margin-bottom: 10vh; */
opacity: 0.25;
.step.lively
opacity: 0.95;
.step div
line-height: 0px;
font-size: 1.12rem;
padding: 5px;
padding-bottom: 10px;
border-radius: 5px;
.step div p
line-height: 25px;
padding: 15px 25px;
margin: 0px;
.step h3
max-width: 50vw;
margin-left: auto;
margin-right: auto;
line-height: 1.7rem;
/* text-align: justify; */
padding: 25px 25px;
line-height: 1.6rem;
margin-top: 0px;
margin-bottom: 0px;
font-size: 1rem;
.step.absolutely h3
max-width: 600px;
.step img
width: 100%;
margin-bottom: 15px;
@media (max-width: 750px)
.centered,
.lefty,
.righty,
.absolutely
width: 90vw;
margin: 0 auto;
/* Repair situation on cell browser the place scroll breaks */
.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,
.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas
touch-action: unset;
#video-grid
show: flex;
flex-wrap: wrap;
place: fastened;
high: 50%;
left: 50%;
remodel: translate(-50%, -50%);
width: 100%;
top: 100%;
show: none;
#video-grid>div
margin: 10px;
flex: 1 1 19%;
top: 17%;
visibility: hidden;
#video-grid video
width: 100%;
top: 100%;
.video-container
place: relative;
.media-overlay
place: absolute;
/* left: 10px; */
shade: white;
font-size: 10px;
backside: -7px;
/* proper: 5px; */
left: 50%;
remodel: translate(-50%, 0);
.step div p.media-overlay
padding: 0px;
line-height: 14px;
#story .media-overlay a
shade: black;
/* shade: #dcdcdc; */
#story .media-overlay a:hover
shade: #0071bc;
#ar-0-final-banner h3
text-align: middle;
line-height: 1.7rem;
font-size: 1.17rem;
@media (max-width: 680px)
h1
margin-top: 0px;
#video-piece-title-video
place: absolute;
left: 0;
min-width: 100%;
top: 100vh;
margin-bottom: 2em;
z-index: 0;
high: 0;
.singular__content__aside
z-index: 1;
.singular__content__text__title
z-index: 1;
place: relative;
h1
text-align: middle;
margin-top: 1em;
font-weight: daring;
text-shadow: 0px 0px 3px white;
@media (max-width: 680px)
h1
margin-top: 0px;
#scrolly
place: sticky;
high: 0px;
width: 100vw;
left: 0px;
margin-left: calc(-1 * ((100vw – 1160px) / 2));
margin-top: -20em;
@media solely display and (max-width: 1190px)
#scrolly
margin-left: -15px;
@media solely display and (max-width: 1023px)
#scrolly
margin-left: -15px;
.step
min-height: 10px;
.site__footer
z-index: 1;
place: relative;
.singular__content__text__content p,
.singular__content__text__content hr
z-index: 1;
place: relative;
.singular__content__text–social
z-index: 1;
place: relative;
.singular__related
z-index: 1;
place: relative;
#video-grid
top: calc(100% – 60px);
high: calc(50% + 30px);
#end-bg
place: absolute;
background-color: #fff;
z-index: 0;
width: 100vw;
top: 1400px;
margin-left: calc(-1 * ((100vw – 1160px) / 2));
@media solely display and (max-width: 1190px)
#end-bg
margin-left: -15px;
top: 1400px;
@media solely display and (max-width: 1023px)
#end-bg
margin-left: -15px;
top: 1600px;
@media solely display and (max-width: 370px)
#end-bg
margin-left: -15px;
top: 1800px;
.footer__mailing
place: relative;
z-index: 1;
.singular__content__asidewidth:100%;order:1
.singular__content__text__meta
z-index: 1;
place: relative;
show: flex;
justify-content: middle;
.singular__content__text
order: 0;
.singular__content
flex-direction: column;
.singular__content__text
width: 100%;
max-width: 100%;
#story .media-overlay a
shade: #999999;
font-size: 0.75em;
.step p.media-overlay
text-align: middle;
const defaultPitch = 3;
const defaultBearing = 40;
var config =
// fashion: ‘mapbox://kinds/mapbox/navigation-night-v1’,
fashion: ‘mapbox://kinds/bellingcat-mapbox/clvdnnl2100zb01ph06pmezzq’,
accessToken: ‘pk.eyJ1IjoiYmVsbGluZ2NhdC1tYXBib3giLCJhIjoiY2x2YXM3d2ppMDFlbjJxbGhrY2luODA5ZiJ9.TKGosk0RXDGxuFxVl1U8mg’,
// showMarkers: true,
markerColor: ‘#3FB1CE’,
//projection: ‘equirectangular’,
//Learn extra about obtainable projections right here
//https://docs.mapbox.com/mapbox-gl-js/instance/projections/
inset: false,
theme: ‘gentle’,
use3dTerrain: false, //set true for enabling 3D maps.
auto: false,
journey:
“kind”: “FeatureCollection”,
“options”: [
“type”: “Feature”,
“geometry”:
“type”: “LineString”,
“coordinates”: [
[34.413692528828498, 31.5009527843626],
[34.4319322234604, 31.505486463787101],
[34.453744781212698, 31.485096630444598],
[34.468097563246403, 31.496143787904401],
[34.465974891495399, 31.4963781918112],
[34.365589083516902, 31.309957654050599],
[34.363432697556703, 31.3097833973621],
[34.362488595698899, 31.310555393424501],
[34.363496283074099, 31.3086506260078],
[34.362225387225202, 31.306885614161299],
[34.305505192661997, 31.3428129088425]]
]
,
chapters: [
id: ‘piece-title-video’,
alignment: ‘full’,
hidden: false,
showMarker: false,
description: `
`,
location:
center: [34.75398, 31.44497],
zoom: 7.15,
pitch: defaultPitch,
bearing: 0
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘israel-focus’,
alignment: ‘full’,
hidden: true,
showMarker: false,
location:
middle: [34.75398, 31.44497],
zoom: 7.15,
pitch: defaultPitch,
bearing: 0
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-0-text-israel’,
alignment: ‘middle’,
hidden: false,
showMarker: false,
description: `
Twenty days after greater than 1,100 individuals have been killed in a Hamas assault on October 7, the Israel Protection Forces (IDF) launched its floor offensive in Gaza with the said goal of destroying Hamas and bringing hostages dwelling. As of April 12, greater than 33,000 individuals have been killed in Gaza in line with UN OCHA reviews. In response to the IDF offensive the Worldwide Court docket of Justice issued interim measures to stop genocide.
Systematic and widespread assaults on civilian housing and infrastructure in Gaza has been described as “domicide” by Professor Balakrishnan Rajagopal, the UN’s Particular Rapporteur on the best to sufficient housing. He informed us “Even with assaults in opposition to particular person buildings, each constructing which is bombed or destroyed has received to be evaluated legally. Whether or not a constructing on this or that nook of a highway wanted to be destroyed or not…the burden is on the IDF to point out that they’ve proof, that they’ve proof and that the assault is proportionate and essential”. It’s estimated that greater than 50% of Gaza’s buildings have been destroyed or broken and roughly 1.7 million individuals have been displaced for the reason that offensive started. Bellingcat labored with companions Scripps Information to research the alleged domicide in Gaza and the continuing conflicts over land within the West Financial institution, you’ll be able to watch the complete documentary right here.
`,
location:
middle: [34.75398, 31.44497],
zoom: 7.15,
pitch: defaultPitch,
bearing: 0
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-0’,
alignment: ‘full’,
hidden: true,
showMarker: false,
location:
middle: [34.35901, 31.42290],
zoom: 10.35,
pitch: defaultPitch,
bearing: defaultBearing,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-0-text-gaza’,
alignment: ‘middle’,
hidden: false,
showMarker: false,
description: `
The fixed repetition of photographs of destruction inside Gaza, the place total neighbourhoods have been was rubble, may end up in desensitisation concerning the influence of the offensive.
But behind every ruined constructing, every demolished minaret, every pile of rubble, there’s a resolution and an motion which has been carried out by a particular unit or individual.
We used social media to trace a single IDF fight engineering battalion, 8219 Commando, as they moved throughout Gaza, demolishing tunnels, homes, and mosques.
8219 Commando is a fight engineering battalion related to 551 Commando Brigade and – as one in every of its members asks journalists to report – a part of the 98th Division. We seen that troopers from 8219 overtly posted about their experiences inside Gaza, offering a window into navy operations that not often opens when official sources.
One member of 8219, a captain, wrote posts about his expertise within the type of a warfare diary, noting the place they have been, and what they destroyed. These posts, mixed with social media posts by different members of 8219, embody movies, photos and statements describing the unit’s expertise of warfare. We geolocated every video or picture of a demolition, verifying precisely the place it came about. We then used satellite tv for pc imagery from Planet Labs to find out when the demolition had occurred.
We used all these sources to construct up an image of the place 8219 went, what it demolished and why.
`,
location:
middle: [34.35901, 31.42290],
zoom: 10.35,
pitch: defaultPitch,
bearing: defaultBearing
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-0-1’,
alignment: ‘left’,
hidden: true,
showMarker: false,
location:
middle: [34.467369, 31.517994],
zoom: 12.5,
pitch: defaultPitch,
bearing: defaultBearing,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-1’,
alignment: ‘left’,
hidden: false,
showMarker: true,
title: ‘November 13-14 – Constructing’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M2.mp4`,
description: `
The primary demolition we recognized which 8219 participated in occurred on November 13 or 14. Members of the unit demolished a two story constructing overlooking the Mediterranean Sea. No justification for this demolition was given within the submit. `,
location:
middle: [34.413750, 31.500837],
zoom: 17,
pitch: 35,
bearing: -55,
pace: 0.75
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-2’,
alignment: ‘left’,
hidden: false,
showMarker: true,
title: ‘November 20-23 – Residential Housing Blocks’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M3.mp4`,
description: `
After this, the tempo and scale of demolitions appeared to choose up significantly. Between November 20 and 23, the battalion participated in a number of demolitions of residential tower blocks instantly subsequent to Al Quds Hospital within the neighbourhood of Tel al-Hawa, Gaza Metropolis.
`,
location:
middle: [34.431342, 31.505606],
zoom: 16.75,
bearing: 35,
pitch: defaultPitch,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-2-1’,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 2.1’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M4.mp4`,
location:
middle: [34.431939, 31.506328],
zoom: 16.75,
bearing: 0,
pitch: 20,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-2-2’,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 2.2’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M5.mp4`,
location:
middle: [34.432313, 31.505019],
zoom: 16.75,
bearing: -60,
pitch: 35,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-2-3’,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 2.3’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M6.mp4`,
location:
middle: [34.433193, 31.504310],
zoom: 16.5,
bearing: 90,
pitch: 45,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-2-before’,
alignment: ‘left’,
hidden: false,
// showMarker: true,
title: ‘November 14, 2023 – Earlier than’,
location:
middle: [34.432313, 31.505019],
zoom: 16.0,
pitch: defaultPitch,
bearing: defaultBearing,
pace: 0.2
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
layer: ‘skysat_pre_m7’,
opacity: 1.0
,
],
onChapterExit: [
layer: ‘skysat_pre_m7’,
opacity: 0.0
,
]
,
id: ‘ar-2-after’,
alignment: ‘left’,
hidden: false,
// showMarker: true,
title: ‘November 26, 2023 – After’,
description: `
Satellite tv for pc imagery of this neighbourhood reveals that at the least 34 residential housing blocks have been both fully or partially destroyed throughout this time. As most of those blocks have been seven to 10 storeys excessive, this meant the demolition of a big quantity of houses.
`,
location:
middle: [34.432313, 31.505019],
zoom: 16.0,
pitch: defaultPitch,
bearing: defaultBearing,
pace: 0.2
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
layer: ‘skysat_post_m7’,
opacity: 1.0
,
],
onChapterExit: [
layer: ‘skysat_post_m7’,
opacity: 0.0
,
]
,
id: ‘ar-2-captain-comment’,
alignment: ‘full’,
hidden: false,
// showMarker: true,
picture: ‘https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/M7.1.png’,
title: ‘On November 19, the Captain wrote about discovering rockets and a UAV at one location, which matches a Instances of Israel report from this time. He didn’t clarify why this discovery required the destruction of so many residential blocks. ‘,
location:
middle: [34.431342, 31.505606],
zoom: 15.5,
pitch: defaultPitch,
bearing: defaultBearing,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’20-ar-3′,
alignment: ‘left’,
hidden: false,
showMarker: true,
title: ‘December 7-10 – Constructing’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M8.mp4`,
description: `Between December 7 and 10, one other constructing was demolished.`,
location:
middle: [34.453641, 31.484915],
zoom: 17.5,
bearing: 180,
pitch: 60,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’22-ar-4′,
alignment: ‘left’,
hidden: false,
showMarker: true,
title: ‘December 10-15 – Al-Islah Mosque’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M9.mp4`,
description: `Someday between December 10 and 15, Al-Islah mosque and an adjoining constructing have been demolished. Non secular buildings obtain protected standing underneath Worldwide Humanitarian Regulation. An Instagram submit depicting this mosque being ready for demolition claimed that “Each home, mosque and faculty has been used right here for terror functions: both as a spot for terrorists, an explosives warehouse or a navy base”.`,
location:
middle: [34.468070, 31.496043],
zoom: 16.5,
pitch: 37,
bearing: 57,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’24-ar-4′,
alignment: ‘left’,
hidden: false,
showMarker: true,
picture: ‘https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/M10.jpeg’,
// title: ‘AR 4’,
description: `
A number of months later, on February 19 2024, the mosque’s Fb web page posted an picture of the destroyed constructing, its minaret collapsed into the highway. `,
location:
middle: [34.468070, 31.496043],
zoom: 16.5,
pitch: 37,
bearing: 57,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’25-ar-5a’,
alignment: ‘left’,
hidden: false,
showMarker: true,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M11.mp4`,
title: ‘December 17-19 – Buildings Round Al-Islah Mosque’,
description: `A couple of days after the Al-Islah mosque was destroyed, a number of demolitions came about within the neighbourhood round it. `,
location:
middle: [34.465878, 31.495545],
extraMarkers: [
[34.465620, 31.496134],
[34.467359, 31.497490]
],
zoom: 17,
bearing: 48,
pitch: 54,
pace: 0.25
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’27-ar-6-0′,
alignment: ‘middle’,
hidden: false,
showMarker: false,
title: `December 26 – January 3 – Neighbourhood in Khuza’a`,
description: `After the demolitions within the North of Gaza, the main target of the unit switched to Khuza’a, a city to the south east of Khan Younis. The Captain notes {that a} separate unit requested the assistance of 8219, indicating that their chain of command modified for this operation. `,
location:
middle: [34.363837, 31.309067],
zoom: 14.0,
bearing: 0,
pitch: 0,
pace: 0.75
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’28-ar-6-3′,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 6.3’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M12.mp4`,
description: `This operation included a lot of demolitions within the city of Khuza’a and Khirbat Ikhza’a. Between December 26 and January 6, the IDF bulldozed giant areas and demolished buildings utilizing explosives. `,
location:
middle: [34.365601, 31.309909],
zoom: 16.5,
bearing: 159,
pitch: 28,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’29-ar-6-1′,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 6.1’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M13.mp4`,
location:
middle: [34.363392, 31.309775],
zoom: 16.5,
bearing: 45,
pitch: 30,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’32-ar-6′,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 6, 32’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M14.mp4`,
location:
middle: [34.362480, 31.310544],
extraMarkers: [
[34.363994, 31.309201]
],
zoom: 16.5,
bearing: 45,
pitch: 30,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’33-ar-6-2′,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 6.2’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M15.mp4`,
location:
middle: [34.363468, 31.308530],
zoom: 16.5,
bearing: 75,
pitch: 30,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’36-ar-7′,
alignment: ‘left’,
hidden: false,
showMarker: true,
// title: ‘AR 7’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M16.mp4`,
location:
middle: [34.362235, 31.306816],
zoom: 17,
bearing: -41,
pitch: 38,
pace: 0.15
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’39-ar-6-before-prep’,
alignment: ‘left’,
hidden: true,
location:
middle: [34.363994, 31.309201],
zoom: 15.75,
bearing: 45,
pitch: 15,
pace: 0.75
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
],
onChapterExit: [
]
,
id: ’39-ar-6-before’,
alignment: ‘left’,
hidden: false,
// showMarker: true,
title: ‘December 2, 2023 – Earlier than’,
// description: `Satellite tv for pc imagery reveals the extent of this destruction.`,
location:
middle: [34.363994, 31.309201],
zoom: 15.75,
bearing: 45,
pitch: 15,
pace: 0.75
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
layer: ‘skysat_pre_m17’,
opacity: 1.0
,
],
onChapterExit: [
layer: ‘skysat_pre_m17′,
opacity: 0.0
,
]
,
id: ’39-ar-6-after’,
alignment: ‘left’,
hidden: false,
// showMarker: true,
title: ‘January 16, 2024 – After’,
description: `“We have turn into hooked on explosions,” The Captain mentioned in a submit on December 28. Satellite tv for pc imagery reveals the extent of this destruction. `,
location:
middle: [34.363994, 31.309201],
zoom: 15.75,
bearing: 45,
pitch: 15,
pace: 0.75
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
layer: ‘skysat_post_m17’,
opacity: 1.0
,
],
onChapterExit: [
layer: ‘skysat_post_m17′,
opacity: 0.0
,
]
,
id: ’40-ar-6-captain-comment’,
alignment: ‘full’,
hidden: false,
// showMarker: true,
picture: ‘https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/M18.png’,
title: ‘Khuza’a and Khirbat Ikhza’a are very near the border with Israel. These demolitions look like a part of an effort to create a “buffer zone” between Gaza and Israel. Nonetheless, the Captain added additional particulars in a Fb submit, describing this operation as one to take and “destroy the village of the murderers”.’,
location:
middle: [34.362480, 31.310544],
zoom: 14.5,
bearing: 45,
pitch: 15,
pace: 0.75
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’31-ar-9′,
alignment: ‘left’,
hidden: false,
showMarker: true,
title: ‘January 12-15 – Neighbourhood in Khan Younis’,
video: `https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/small/M19a.mp4`,
description: `
The ultimate demolition we recognized came about within the coronary heart of Khan Younis, a metropolis within the south of the Gaza Strip, in mid January. The Captain posted at size about an operation on Fb, together with claiming that they’d obtained greater than 300 mines to be used within the operation. Different troopers posted photographs and movies from this location. `,
location:
middle: [34.305447, 31.342172],
zoom: 17.5,
bearing: -151,
pitch: 44,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’44-ar-9-1-before-prep’,
alignment: ‘left’,
hidden: true,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’44-ar-9-1-before’,
alignment: ‘left’,
hidden: false,
title: ‘January 7, 2024 – Earlier than’,
// description: `Planet Labs imagery reveals a big space of destroyed buildings in Khan Younis, close to the place we geolocated the pictures and movies from 8219 troopers.`,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
layer: ‘skysat_pre_m20’,
opacity: 1.0
,
],
onChapterExit: [
layer: ‘skysat_pre_m20′,
opacity: 0.0
,
]
,
id: ’44-ar-9-1-after’,
alignment: ‘left’,
hidden: false,
title: ‘January 19, 2024 – After’,
description: `Planet Labs imagery reveals a big space of destroyed buildings in Khan Younis, close to the place we geolocated the pictures and movies from 8219 troopers.`,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [
layer: ‘skysat_post_m20’,
opacity: 1.0
,
],
onChapterExit: [
layer: ‘skysat_post_m20′,
opacity: 0.0
,
]
,
id: ’45-ar-9-1-extracts’,
alignment: ‘left’,
hidden: false,
picture: ‘https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/M21.png’,
// title: ‘AR 9.1 Extracts’,
description: `A tour video from 8219 Commando claims that in 84 days of combating they destroyed 49 tunnels and 662 buildings. Our companions at Scripps Information interviewed a member of 8219, Yonatan Segal, who mentioned “I believe we’re the unit, at the least till we left, that blew up essentially the most quantity of homes in Gaza.”`,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’46-ar-9-1-captain-1′,
alignment: ‘full’,
hidden: false,
// showMarker: true,
picture: ‘https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/M22.png’,
title: ‘The Captain himself mentioned they destroyed “1000’s” of buildings, noting in a submit on January 13, 2024 that his Commanding Officer informed him there’s “no precedent” for this within the IDF and that they’d stopped counting the buildings they’d destroyed. ‘,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’47-ar-9-1-captain-2′,
alignment: ‘full’,
hidden: false,
// showMarker: true,
picture: ‘https://bellingcat-embeds.ams3.cdn.digitaloceanspaces.com/2024-demolitions-8219/M23.png’,
title: ‘Typically troopers didn’t give an evidence about why they carried out demolitions. Different instances they listed quite a lot of goals or causes for the demolitions. One in every of these seems to be looking for revenge. As an illustration, one submit from the Captain notes his firm commander described the destruction of swathes of Khuza’a as revenge for October 7 and deaths of troopers.’,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’48-ar-9-1-scripps’,
alignment: ‘middle’,
hidden: false,
description: `
When interviewed by our companions Scripps Information, 8219 member Yonatan Segal mentioned he didn’t submit concerning the demolitions on social media however had movies of them on his telephone. Requested if revenge was one of many motivations behind the demolitions he mentioned: “Sure. However what’s revenge? Revenge by way of instructing them a lesson, so to talk, in order that they’d by no means do this once more.”
`,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’49-ar-9-1′,
alignment: ‘middle’,
hidden: false,
description: `Non secular parts seem to creep in. In a single submit concerning the demolition in Khan Younis the Captain talks of utilizing 400 mines to demolish a residential space “in honour of the Shabbat”. `,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’50-ar-9-1′,
alignment: ‘middle’,
hidden: false,
description: `
We requested Professor Balakrishnan Rajagopal, the UN’s Particular Rapporteur on sufficient housing and the Professor of Regulation and Improvement on the Massachusetts Institute of Know-how concerning the demolitions carried out by 8219 Commando. He informed us that these demolitions have been related to the ICJ case on genocide, supporting South Africa’s case that Israel was, in impact, rendering Gaza uninhabitable. He famous that even when it was not doable to ascertain genocidal intent, widespread destruction rendering a spot uninhabitable may nonetheless quantity to against the law in opposition to humanity.
Additional, he famous that the “buffer zone” being cleared by the IDF alongside the border with Gaza doesn’t match the definition of such zones inside the Geneva Conventions and is successfully a “land-grab” taking roughly 16% of Gaza’s land.
Mairav Zonszein, a Senior Analyst on Israel-Palestine on the Worldwide Disaster Group which screens battle, mentioned the present battle wasn’t the one instance of demolitions of Palestinian houses by the IDF however it was “on a scope that we’ve by no means seen.”
She mentioned there have been a number of causes the demolitions have been occurring, starting from revenge to an especially punitive interpretation of ‘deradicalisation’.
“They’ve a coverage of deterrence which signifies that if any person fires at us, we’ll come again at them ten instances tougher”, Zonszein informed Bellingcat.
“Basically the goal of the offensive is to take aside Hamas as an entity, however they don’t distinguish. A part of that’s destroying infrastructure and altering the city material by demolitions”.
“They’re making an attempt to take aside a society.”
Along with clearing the ‘buffer zone’, Zonszein mentioned areas of northern Gaza had been largely depopulated and rendered fully uninhabitable by widespread destruction.
“The principle factor they’ve accomplished on this warfare is to empty the north of its individuals and make it nearly not possible to stay there.”
“The query is that if what they’re doing and have accomplished within the North of Gaza is a part of a long term plan to maintain that a part of the strip underneath Israeli occupation.”
`,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
callback: ”,
onChapterEnter: [],
onChapterExit: []
,
id: ’51-ar-9-1′,
alignment: ‘middle’,
hidden: false,
description: `
We requested the IDF about every one in every of these incidents. They didn’t reply to particular questions nor did they supply proof exhibiting why the buildings we highlighted have been demolished. They informed us the IDF is “destroying terror infrastructures” embedded in civilian areas and mentioned that in sure circumstances giant elements of neighbourhoods are transformed into fight complexes. They mentioned the IDF is working within the Gaza Strip to stop Hamas exercise threatening Israeli residents and implementing a defence plan to enhance safety in southern Israel. IDF actions are primarily based on navy necessity and in accordance with worldwide legislation, they mentioned.
“There isn’t any IDF doctrine that goals [at] inflicting maximal harm to civilian infrastructure no matter navy necessity,” they mentioned. Including that distinctive incidents occurring throughout the warfare will likely be examined by the Basic Employees’s Reality-Discovering and Evaluation Mechanism. “The IDF addresses distinctive incidents that deviate from the order and anticipated values of IDF troopers by analyzing such occasions and implementing command and disciplinary measures as essential.”
`,
location:
middle: [34.305541, 31.342359],
zoom: 17,
bearing: 0,
pitch: 0,
pace: 0.5
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
// callback: ‘callBackEnd’,
onChapterEnter: [],
onChapterExit: []
,
id: ‘ar-0-final’,
alignment: ‘full’,
hidden: true,
showMarker: false,
location:
middle: [34.35901, 31.42290],
zoom: 10.35,
pitch: defaultPitch,
bearing: defaultBearing,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
// callback: ”,
onChapterEnter: [],
onChapterExit: [],
startAnimation: true
,
id: ‘ar-0-final-banner’,
alignment: ‘middle’,
hidden: false,
showMarker: false,
title: `“We’ve Develop into Hooked on Explosions”
The IDF Unit Chargeable for Demolishing Houses Throughout Gaza`,
description: `
Picture Credit: All footage and pictures featured within the piece come from social media posts by members of the 8219 Commando. All satellite tv for pc photographs which characteristic are courtesy of both ©2024 Planet Labs PBC or Google/Maxar.
Analysis: Nick Waters, Carlos Gonzales, Annique Mossou, Michael Sheldon, Natasha Pereverzina, Lucy Swinnen, Jake Godin
Visualisation: Miguel Ramalho
Translation: Eyal Weizman
Illustration: Ann Kiernan
`,
location:
middle: [34.35901, 31.42290],
zoom: 10.35,
pitch: defaultPitch,
bearing: defaultBearing,
,
mapAnimation: ‘flyTo’,
rotateAnimation: false,
// callback: ”,
onChapterEnter: [],
onChapterExit: [],
showCredits: true
,
]
;
var initLoad = true;
var layerTypes =
‘fill’: [‘fill-opacity’],
‘line’: [‘line-opacity’],
‘circle’: [‘circle-opacity’, ‘circle-stroke-opacity’],
‘image’: [‘icon-opacity’, ‘text-opacity’],
‘raster’: [‘raster-opacity’],
‘fill-extrusion’: [‘fill-extrusion-opacity’],
‘heatmap’: [‘heatmap-opacity’]
var alignments =
‘left’: ‘lefty’,
‘middle’: ‘centered’,
‘proper’: ‘righty’,
‘full’: ‘absolutely’
operate getLayerPaintType(layer)
var layerType = map.getLayer(layer).kind;
return layerTypes[layerType];
operate setLayerOpacity(layer)
var paintProps = getLayerPaintType(layer.layer);
paintProps.forEach(operate (prop)
var choices = ;
if (layer.period)
var transitionProp = prop + “-transition”;
choices =
“period”: layer.period
;
map.setPaintProperty(layer.layer, transitionProp, choices);
map.setPaintProperty(layer.layer, prop, layer.opacity, choices);
);
operate newMarker()
const markerEl = doc.createElement(‘div’);
markerEl.className=”explosion-marker”;
return new mapboxgl.Marker(markerEl);
var story = doc.getElementById(‘story’);
var options = doc.createElement(‘div’);
options.setAttribute(‘id’, ‘options’);
var header = doc.createElement(‘div’);
if (config.title)
var titleText = doc.createElement(‘h1’);
titleText.innerText = config.title;
header.appendChild(titleText);
if (config.subtitle)
var subtitleText = doc.createElement(‘h2’);
subtitleText.innerText = config.subtitle;
header.appendChild(subtitleText);
if (config.byline)
var bylineText = doc.createElement(‘p’);
bylineText.innerText = config.byline;
header.appendChild(bylineText);
if (header.innerText.size > 0)
header.classList.add(config.theme);
header.setAttribute(‘id’, ‘header’);
story.appendChild(header);
config.chapters.forEach((document, idx) => ‘centered’);
if (document.hidden)
container.classList.add(‘hidden’);
options.appendChild(container);
);
story.appendChild(options);
var footer = doc.createElement(‘div’);
if (config.footer)
var footerText = doc.createElement(‘p’);
footerText.innerHTML = config.footer;
footer.appendChild(footerText);
if (footer.innerText.size > 0)
footer.classList.add(config.theme);
footer.setAttribute(‘id’, ‘footer’);
story.appendChild(footer);
mapboxgl.accessToken = config.accessToken;
const transformRequest = (url) =>
const hasQuery = url.indexOf(“?”) !== -1;
const suffix = hasQuery ? “&pluginName=scrollytellingV2” : “?pluginName=scrollytellingV2”;
return
url: url + suffix
var map = new mapboxgl.Map(
container: ‘map’,
fashion: config.fashion,
middle: config.chapters[0].location.middle,
zoom: config.chapters[0].location.zoom,
bearing: config.chapters[0].location.bearing,
pitch: config.chapters[0].location.pitch,
interactive: false,
transformRequest: transformRequest,
projection: config.projection,
attributionControl: false
).addControl(new mapboxgl.AttributionControl(
customAttribution: ‘Bell¿ngcat’
));
var markers = ;
// Create a inset map if enabled in config.js
if (config.inset)
var insetMap = new mapboxgl.Map(
container: ‘mapInset’, // container id
fashion: ‘mapbox://kinds/mapbox/dark-v10’, //hosted fashion id
middle: config.chapters[0].location.middle,
// Hardcode above middle worth in order for you insetMap to be static.
zoom: 3, // beginning zoom
hash: false,
interactive: false,
attributionControl: false,
//Future: As soon as official mapbox-gl-js has globe view enabled,
//insetmap generally is a globe with the next parameter.
//projection: ‘globe’
);
// instantiate the scrollama
var scroller = scrollama();
map.on(“load”, operate () {
if (config.use3dTerrain)
map.addSource(‘mapbox-dem’,
‘kind’: ‘raster-dem’,
‘url’: ‘mapbox://mapbox.mapbox-terrain-dem-v1′,
’tileSize’: 512,
‘maxzoom’: 14
);
// add the DEM supply as a terrain layer with exaggerated top
map.setTerrain(
‘supply’: ‘mapbox-dem’,
‘exaggeration’: 1.5
);
// add a sky layer that can present when the map is very pitched
map.addLayer(
‘id’: ‘sky’,
‘kind’: ‘sky’,
‘paint’:
‘sky-type’: ‘environment’,
‘sky-atmosphere-sun’: [0.0, 0.0],
‘sky-atmosphere-sun-intensity’: 15
);
;
// Because the map strikes, seize and replace bounds in inset map.
if (config.inset)
map.on(‘transfer’, getInsetBounds);
// add journey path layer
const journeyCoordinates = config.journey.options[0].geometry.coordinates;
config.journey.options[0].geometry.coordinates = [];
map.addSource(‘hint’,
kind: ‘geojson’,
information: config.journey
);
map.addLayer(
‘id’: ‘hint’,
‘kind’: ‘line’,
‘supply’: ‘hint’,
‘structure’:
‘line-cap’: ‘spherical’,
,
‘paint’:
‘line-color’: ‘#D50000’,
// ‘line-color’: ‘white’,
‘line-width’: 6,
‘line-opacity’: 0.7,
);
const videoGrid = doc.getElementById(‘video-grid’);
const videoDivs = Array.from(videoGrid.querySelectorAll(‘div > video’));
const journeyDivs = [0, 0, 1, 7, 8, 11, 12, 15, 16, 17, 18, 19];
const scrollOverlay = doc.getElementById(‘scroll-overlay’);
let scrollOverlayGone = false;
setTimeout(() =>
if (!scrollOverlayGone)
scrollOverlay.fashion.show = “block”;
, 3000);
// setup the occasion, move callback capabilities
scroller
.setup(
step: ‘.step’,
offset: 0.5,
progress: true
)
.onStepEnter(async response => ‘flyTo’]();
// Incase you do not need to have a dynamic inset map,
// relatively need to maintain it a static view however nonetheless change the
// bbox as essential map transfer: remark out the beneath if part.
if (config.inset)
if (chapter.location.zoom
if (!chap.showMarker)
return;
(markers[chap.id]
)
if (chapter.startAnimation && response.path == “down”)
videoGrid.setAttribute(‘fashion’, ‘show: flex;’);
for (let i = 0; i
config.journey.options[0].geometry.coordinates =
journeyCoordinates.slice(0, i);
map.getSource(‘hint’).setData(config.journey);
, 1500 + i * 500);
for (let i = 0; i
videoDivs[i].setAttribute(‘fashion’, ‘visibility: seen;’);
, 1500 + i * 550);
}
if (chapter.onChapterEnter.size > 0)
chapter.onChapterEnter.forEach(setLayerOpacity);
if (chapter.callback)
window[chapter.callback]();
if (chapter.rotateAnimation)
map.as soon as(‘moveend’, () =>
const rotateNumber = map.getBearing();
map.rotateTo(rotateNumber + 180,
period: 30000,
easing: operate (t)
return t;
);
);
if (config.auto)
var next_chapter = (current_chapter + 1) % config.chapters.size;
map.as soon as(‘moveend’, () =>
doc.querySelectorAll(‘[data-scrollama-index=”‘ + next_chapter
.toString() + ‘”]’)[0].scrollIntoView();
);
})
.onStepExit(response =>
if (!scrollOverlayGone)
scrollOverlay.fashion.show = “none”;
scrollOverlayGone = true;
var chapter = config.chapters.discover(chap => chap.id === response.ingredient.id);
response.ingredient.classList.take away(‘lively’);
if (chapter.onChapterExit.size > 0)
chapter.onChapterExit.forEach(setLayerOpacity);
if (chapter.startAnimation && response.path == “up”)
videoGrid.setAttribute(‘fashion’, ‘show: none;’);
videoDivs.forEach((v, i) =>
v.setAttribute(‘fashion’, ‘visibility: hidden;’);
);
config.journey.options[0].geometry.coordinates =
journeyCoordinates.slice(0, 0);
map.getSource(‘hint’).setData(config.journey);
);
if (config.auto)
doc.querySelectorAll(‘[data-scrollama-index=”0″]’)[0].scrollIntoView();
});
//Helper capabilities for insetmap
operate getInsetBounds()
let bounds = map.getBounds();
let boundsJson =
“kind”: “FeatureCollection”,
“options”: [
“type”: “Feature”,
“properties”: ,
“geometry”:
“type”: “Polygon”,
“coordinates”: [
[
[
bounds._sw.lng,
bounds._sw.lat
],
[
bounds._ne.lng,
bounds._sw.lat
],
[
bounds._ne.lng,
bounds._ne.lat
],
[
bounds._sw.lng,
bounds._ne.lat
],
[
bounds._sw.lng,
bounds._sw.lat
]
]
]
]
if (initLoad)
addInsetLayer(boundsJson);
initLoad = false;
else
updateInsetLayer(boundsJson);
operate addInsetLayer(bounds)
insetMap.addSource(‘boundsSource’,
‘kind’: ‘geojson’,
‘information’: bounds
);
insetMap.addLayer(
‘id’: ‘boundsLayer’,
‘kind’: ‘fill’,
‘supply’: ‘boundsSource’, // reference the information supply
‘structure’: ,
‘paint’:
‘fill-color’: ‘#fff’, // blue shade fill
‘fill-opacity’: 0.2
);
// // Add a black define across the polygon.
insetMap.addLayer(
‘id’: ‘outlineLayer’,
‘kind’: ‘line’,
‘supply’: ‘boundsSource’,
‘structure’: ,
‘paint’:
‘line-color’: ‘#000’,
‘line-width’: 1
);
operate updateInsetLayer(bounds)
insetMap.getSource(‘boundsSource’).setData(bounds);
// setup resize occasion
window.addEventListener(‘resize’, scroller.resize);
Bellingcat is a non-profit and the flexibility to hold out our work depends on the type help of particular person donors. If you want to help our work, you are able to do so right here. You can even subscribe to our Patreon channel right here. Subscribe to our E-newsletter and observe us on Instagram right here, YouTube right here, Fb right here, Twitter right here and Mastodon right here.
The submit “We’ve Develop into Hooked on Explosions” The IDF Unit Chargeable for Demolishing Houses Throughout Gaza appeared first on bellingcat.