1,759 Commits over 1,280 Days - 0.06cph!
▌ ▄ ▇▋▉█▋ ▄▅▆▋▊▋▇▄ ▊▆ ▊▉█ ▋▅▆▉ ▅█▆▌█▅█▇▌▊▋▉▉▉▉ ▆ ▉▉▉▋▌ ▆▌ ▋▅▇▊▋▌▅ ▍▊▋▋▉▄▅▌▉▄▋ ▇▌▅▊▉▄▋ ▄▆▍▆▉▉▋▌▉▉▋ ▅█ ▊█▊▋▄ ▋▋▍█ ▄▊ ▍█▍██▋▄▉▆▍▋▉ ▆▊▄▆▄▋ ▉▊▅█▉▅▍▅█▉▋▇▌▉▆▇ ▆▄▉▆█▌█▅▌█▍▌█▄▍ ▉▋▅▍██▉▍▌▉▆▇ ▉▌▍▅▅▇▌█▄ ▋▋▇▊▅▄ ▉▄▅▄▋█▉▆▉ ▊▉▋▌▊▅ ▊▋▅█▍▆ ▍▇▋█▉▉▍▋▍▌▇▆▇ ▍ ▌▋▉█▍ ▍▊ ▇▉▉▊▍▋▌ ▅▄▅▅▆▋▊▋▇▉▆▌▉█▊ ▌▆█▉▋▇▌▆▋▉▍▊▊▌▅▌▉▋▅▊▍ ▊▅▄▉▆▄▇▍▆▄ ▇▅▊▋▇▅█▄█▆▌█ ▉▇▅▄▍ ▅▋▋▄█▌ ▋▅▅█▍█▆█▆█▉ ▉█▍▅▌▋▄▋▊▇▄▅ ▉▋█▆▅▅ ▆█▍▍▇▍▉▅▋ █▉▆▋▉ ▍▄▋▊▅▌▇ ▄▊▇▌ █▊▍▊ ▊█ ▅▅▇▄ ▄▉ ▊▄▍▉▋▍▉▅█▉▉▅█▍▌▅▇ ▌▆▌▊▄▍▇▉▉ ▄▄█▄█▉▍█▅▉▅▆ ▊▄▄▅▇▍▅▌▅▋▊▄▌█▌▅ ▍▉▅▊▍▅▍▉▋▇▄▄▆▄▌▇ ▍▄▆▅▋█▊ ▄▅ ▋▇▆█▇▆▄▊▋▉▉▇▉▇█▄▉▇▄▌▅▉▅▍▆▄▋▆▊██▌▅█▅▋▊▅█▅ ▄▇█▉▆ ▍█▊▌▅ ▆▄▊▅▄▆▆▇ ▅▇█▌▄▇▄▋▆▄ ▅▊ █▇▍▌▋▋ ▅▊▋▇▊▄█▉▅▇ ▅▍▇ ▍▉▇▄▄ ▊▆▇▅ ██ ▋▇▉▅▊▍▄▋█ ▆▄▊▊▌▊▇▇█ ▅▊▉▆▊▅
Do not set commentary to 0 on map start
Since we removed the commentary system entirely
Fix "material __error is missing" error on map load
Delete __screenshot_internal
Move "SOLID_VPHYSICS static prop with no vphysics" to developer 1
Fixed crashes to do with render groups
Minor cleanups
FIxed some minor memory leaks
These are mostly in developer features to do with KeyValues, not normal gameplay
Init m_rgflCoordinateFrame on creation clientside
This fixes certain matrices being nulled out when they are not supposed to, such as prop_vehicle_choreo_generic look angles
Do not EstimateAbsVelocity since we network it for every entity anyway
prop_vehicle_choreo_generic SetCanShoot now lets you shoot
Simply sets SetAllowWeaponsInVehicle on the player, rather than what Portal 2 was doing
Add some more known backdoor URL to blacklist
Added more entities from Portal 2
point_viewcontrol_multiplayer
point_viewproxy
npc_personality_core placeholder
Portal 2 Coop spawnpoints
Some more Portal 2 map icons
Added some logic entities
logic_register_activator
logic_coop_manager
Serverside only entities that are generic enough to be useful outside of the game they come from.
Bump default value of sbox_maxconstraints to 2000
Placeholder entities for Portal 2 excursion funnel and wheatley boss
Exclude gmod.exe from srcds win32 deploys
Added Hacked and Harmless Rollermine variants to spawnmenu
Added new inputs/keyvalues to prop_vehicle_choreo_generic from P2
Inputs:
SetCanShoot
UseAttachmentEyes - doesnt work
SetMaxPitch
SetMinPitch
SetMaxYaw
SetMinYaw
KVs:
playercanshoot
useattachmenteyes
█ ██▇▌▆ ▉▋▅▋▇▆▆▊▉▍ ▆▆▌▊▄ ▉▆▆▋▆▇▋▇▌ ▊▉▄ ▇▉▍ █ ▇▍▌▊▇▄▇▄ ▅▆▇▍▅ ▅▊▌▌▅▍▅▆▉▊▌▋█▆▄▋▆▍ ▄▉█▌▇▍ ▍▋▉▌▆▊▄▄ ▋▆▋▄▋▆▆▉▌▆ ▌▆▄▌▌▋▇ ▆▍▆▆█▊▆ ▇▌▍▇█▇▍▍▊▌▄▅▉▄▄ ▄▋█▊▆▄▄ ▍▅▌▋▉▄▊▋▌▆▊█▋▍▆ ▌▅█▆▌▊▅▌▊▅▆ ▅▍▉▋▋█▆ ▆▍▌▉▊▋▍ ▆ ▌▄▋▉ ▄▇▄▋▌▇▆▍▅█▋ ▆▅▉▇▌▋▅▄█▅▅▉ ▍█▆█▊▆▉ ▋▅▄▅▅▌▅▆▋█▉▉ ▅▋▅▉▇▅█▅▉▋▍▇▇▌▌▅▆▉▍▉▊▉▊ ▊▆▄█ █▋▉█ ▊▌▊▄▋▌▍▍▇▅▅▄▄▅▋▋▆▄▄▍▅█▄▌ ▉▄▉▆▇ ▊▄█▄▆ ▆█▋▌▄▆▆▊▊▇█▉▊█▉▆▆▇▋▉▇▅▌▌█▊▇▊▉ ▊ ▅▋▍▋ ▍▇▄█▍▋ ▊█▌▋▇▄█▄▋▄█▋▋▉▍▅▉▌▇▇▍ ▊▄▍▆▋▊ ▍▉▅ ▆▌▇▍▌▌▆▅██ ▆▆▌▉▆▇▍█▋▋ ▋▅▄▉▋▄▇▍▉ ▉██▉▉▌▉▇▋ ▊▅▌██▌▄▋ ▋▉ ▋▌▌▅▅ ▋█▄ ▋▋▆ ▌█▇▊▌▄▋▊▆▋▊▄▆▋▊▍▇▋▆█▄▇▌▅▊▋▆▇▌▅▋▌▉▉▌▊█▌▉▌▇ ▄█▌▅▌▉▇█▋▅▇▉▆▅ █▊▅▍▄▋█▌▅▍▋█▋▍ ▄██▅▇▅ ▍▍▍▄▌▆ ▌▌▄▄▇▆▆▇▇▍ ▇▌▉▄▌ ▆▇▌▇▇▌██▇▊▆▆▅▅▉▊▅▄▌ ▍▉ ▋▄▊▉▅▇▉▄▅▊▊▆ ▇▋▊▅▊ ▉▇██▋█▄▄▅▆▌▇▅▋▊▅ ▇▉▆▅▋▅▉▌▇▅▄▊▍▋█▍██▉██▄▍▊▉█▍ ▅▋▋▍ ▌▍▅▍ ▆▇ ▍▍▇▌▉▅▉ █ █▅█ ▋▌▌▋▅▅ ▊▆▉▉▉▇▆█▄▊ ▆▅▊ ▋▋▆▉▉▉▆ ▊▌▍ █▆▅▇▉▇ ▍▌▅▊▌█ ▋▋▌█▉ ▄█▉▉▇▆▋▇▊▉▇▇▆▍▉▋▇▄ ▇█▍▊▄▅▋▄▉ ▌▇▄▉▋▅▍▅ ▆▇█▅ ▍▇▍▍▌▉▉▍▋ ▆▊▇▊█▍▉█▇▇▋▆▋▍▄▉ ▄▉▆▆▋▇ █▍▍▇▄▄▋▆▉▅ ▅▋ ▉▊▋▍ ▆▅▇▋▌▍▊▌▆█▌█▋▄▇▊ ▍▍▆ █▊▅▍▉ ▋▄▋▉▅ ▍▇█▌▅▇▄▍▄██▆▄▄▉▅▆█▉▌█▌▉▇▆▆▅▅▋▄▌▅▄▋ ▇▄█ ▊▊▊ ▆▋ ▍▉ ▋▆▉▄███▉▆ ▋▊▅▋▄ ▉▌▅ ▍▅▍ ▉ ▆▅▇▋█▋▊▌▌▉▊▌▄ ▉▍▊▅▋▇▉ ▆▍▆▄▅▆ ▇▄▌▉▇ ▊▍▍▉ ▄▆▆▍▊▋▋▇▆▄▆▋█ ▉▅▄▅▋█▇ ▆▌▆▉▅ ▇▊▍ ▇▆▄▍▄▄▍█ ▌▌▋ ▋▉▊▄▄▍▉▍█▊▉▅▌▉▊▆▆ ▍▊▋▇▅▋▄ ▄▍▇▋ █▊▋ ▅▇▄▊▌▊▋▅ ▊▊█▆▇▌▄▅▇▇▋▋█▆▄▇▊▋ ▊▄▅▊▋▉▋▌▇ ▋▌▍▌▊█ ▋▄▄ ▌▍█▅ ▍▋▍▇▊▍ ▆▍▆▊▍▄▄▋▄▍▌▌███ ▇▇▇▉▅▇▋▅▄▉▋▆█▅▇▊ █▌▌ ▊▇█▅▍▋▊▊▋▄ ▅▍█▍▋▉▇▉▌▉▊▉▋▆▅▆▋▊▉▊▇█▄▊▌▄▌▆ █▋█▊▍▅ ▌▉▇▇▊▊▄ ▄▉▇▅ ▄▊ ▆▄▋▍▄▄▄▋▋▍▋▅▊▊▅ ▅▅▄▍▉▊▇▊▍█▍▍▊▆▌▊█▋ █▊▅▊ ▋█▉▍ ▇▅▉▉▅▄ ▍▌▌█▇▆▉▍▌█▌█▅▅▇█▌▇▆█▅▍▄█▇▉█▊▇▆▄▇▇▌ ▄▋▇▇▇▆▆▉▌▋▌▆▇ █▉▌▆▅▇▋ ▌▍▌█ ▅▋▌▍▊ ▉▇▉▅▆▄▊▄ ▉▄▍▆▊▅▆ ▉▄ ▆▍▄█▄▍▍▊▄▄▍▍▆▉█▇▍▇█▇▅▅▇▍▌▋ ▅█▉▆▌▊▌▄▉▌ ▌▅ ██▉ ▉▆▄▊▅ ▆█ █▍▋▋▌▆▍▅▉▄ ▊▇▋ ▉▅▋▆▇▅▅▄▊█ ▋▌▄ ▌▉▌▇▆▊ █▊▍▊ ▉▄▋▉▄▇▆ ▋▉ ▅▊▍▇█▋ ▇▍▅ █▌█▍▍▌ █▇▆▅ ▋▍▌▄▊▉▆▅▉▉ ▅▊▇▊▆▊▇▌▆█▉▍▋ ▇▆▅▅▉ ▅▍ ▅▊▅▅▍▊▆▊▇▌▅▊▌█▍▌█▋▋▆ █▉ ▅▌▉▌▆▉▌█ ▇▋▍▉▇█ █▆▊▉ ▇▋ █▇▆▍▄▆▇▇▊▇▌▌█▉▉▆▉▅█▋ ▋▌█ █▊▆▄█▇▆▅▅▌▋▅ ▋▊▊▋▍▆█▌▄▌▄▄ ▌▍▆ ▋▉▅▊▍▉ ▌▋▆▌ ▆▌▄▇▆▊ ▍▊█ ▋▊▌▇▉█▆ ▄█▉▉▅▅▉▅▉ ▉▄▆▌▉▌▌▇▍▊▇█▉▌▆ ▅▇█ ▆▉▌▆▊▆▊▉█▆▋▊▄▇ ▌▌ ▊▉ ▋▌▌▌▌▉▇ ▌▄▌█ ▊▇█ ▋▋▆ ▉▋▇█▄▅▄█▊▊▇ ▉▄▉ ▊▅▊ ▇▉▉█▊▆▌▋▅ ▌▄▌▍▆▌ ▇▄ ▆▄▇▅▋▋▌ ▇▆▌▄▇▄▇ ▋█▊▄▆ ▆▌▍█ █▋▌ ▇▍ ▉▋▇ █▆▄▆▉ ▌▉▊ ▌▋ ▄██▌ ▇▅▉▆ █▆▅ ▉ ▄▆▇▊▌█▌▇ ▌▌▉█▉▄▍ ▄▅ ▊▅███ ▋█▄ ▊▇▋▌▊▅ █▆▌ ▅▋▌▍▍▅▋ █▌▆ ▍▍▆▇▅█▄▋▅ ▊▅▊█▍▊ ▆▅▄ ▉▆▊ ▅▆▋▍ ▆▆▆▋▄▋▄▉ █▉▄ ▇▍▊█▉▇▆ ▉▋▉ ▆▍▆▊▄▋ ▍▊▉▋▊ ▉█ ▌▆▌▄▅▍▄ ▄▄▇▉▍▅▇▅▊▇▌▊▍▇▍▆ ▄▄▍▍▅▍▌▋▇▌▉▌▅▋▆▅▊▊█▆▉▊▋▌▇▋ ▍▆▍▄▉ ▄▍▍▌▄▅▍▍▄▅▉ ▆▄▉▉▍▍▄▋▄▇▍▊▊ ▇▇▅▊▇▄ ▊▌▇▇▉▌▆▍▆▍▊▊█▅▄ █▊▇▌ ▌▍▆▆▍▆▄▇ ▆█▊▄▇▊▍▉▋▌▋▍▋▊ ▄▋▌█▊▉▉▊ ▍▊▋▋█▅▇▊█▄██▍█ ▊▌▆ ▄█▉▆▊▍▇▄▅▌ ███ ▊▉▋▊▉ ▍▇▉▆▌▅▅▇▊▉▆▋ ▉▅▍▅▊▅▍█▇▋▇▋▆▆▍ ▆▍█▌▋▇▍▊▉▋▋▉█▅▆ ▆▌▌ █▆▆█ ▇▍ █▌▅▅▆▍ ▌▍▉▅▍█▅▊▉▇▊▉▇█▌▉▉▆▄██▌▌▍▊▋▊██▌▅▋█▉ ▌▌▄▆▅▌▄▆▇▄ ▊▋▄▌▅▍▇ ▌▅▋▉▄▅▉█▅ ▋▊▆▊▅▌ ▄▌▊▄▉▆▅▆ ▇▅▉▋▇▌▊ ▌▇█▉▆▊▊▄ ▌▋█▋ ▍▄█ ▄▊▌▌▊ ▆▅ ▅█▄▋▌█▇█▇▆ ▉▉▍▇▋▄▍▅█ ▋▌▇▄█ ▅▅▍▅▌▌▉▅▇▊▆ ▄██ ▋▅▊▇▇ ▆▅█▅▄▇▉ ▍▊▆ ▉▇▌ ▇▊ ▊▋█▆▊▉▊█ ▆▆▄▊▊██▆▄█▍▌▆▋ ▍▌▋▆▌▍▍▌ ▆█▋▌▌▄▋█▋▋▉ ▋ ▆▌▍▊▍ ▉▆▍█ ▌▌█▇▍▌▊█▇▊▋█▇▄▊▍
Network compat breaking changes
* Removed bodyque system/entity
* Remvoed vote_controller entity
Bump network version & .exe version
Fix weapon_snark network types
Remove m_bHL2EpisodicBehaviour from gmod gamerules
CTEPhysicsProp model scale networking
TEHL2MPFireBullets Y axis spread networking
Completely remove the commentary system
Fix incorrect particles spawning if there are too many
garrysmod-issues/issues/5509
Remove test_traceline entity
Restore portal entity clientside parts (lasers)
`teamonly` in `player_say` event networked
Update decals_subrect.txt
Updated from HL2, to contain 2 new Portal decals
You can gravity gun portal energy balls successfully
Fixed studiomdl crashing with remapping sequences
Remove unused properties on SWEP internals
Change how SWEPs store ViewModel/WorldModel/PrintName
To get rid of 80 character limit for all 3 fields
Remove another unused field from SWEPs
Network gravity scale for players, for prediction
Reduce network bits for player's drivingmode/player class
No server has 2^32 unique classes
Network m_bSprintEnabled for prediction (Player:SprintDisable)
Fixed insane network load of ManipulateBone* functions
Optimize some more player networking
m_OverrideSubMaterials array
m_iTeam reduced bits (from 32)
Undo changes to m_OverrideSubMaterials
Fix networking of gib scale to clients
Do not initialize the scaled prop physobj as shadow for client only ents
Added `SetLifetime` input to prop_combine_ball
0 or negative values make it infinite.
BallCaught and OnBallCaught input/output for portal BALL ent
Do not network duplicate health/velocity for players
Since it is already done for all entities
Do not set collision bounds on physgun beam
I don't know why it was being set at all, it's not a physical entity, so let's try simply not setting the collision bounds and see what happens. Not setting the bounds saves on network bandwidth.
Minor cleanups
npc_combinecamera fires OnLostEnemy output
Remove unused stringtables
* GMod specific GModGameInfo
* Source's ServerMapCycle and InfoPanel, and their panels
Minor cleanups
Double `modelprecache` max size to 8k
Fix CNewParticleEffect.AddControlPoint attachment default value
No longer produces console warnings when not given an attachment name
TTT: check data_static for rearm scripts for use in workshop addons
Updated language files
Merge branch 'main' into prerelease
Fixed a crash with Panel:AppendText
Merge branch 'main' into prerelease
Fixed a crash with Panel:AppendText
TTT: check data_static for rearm scripts for use in workshop addons
Fix CNewParticleEffect.AddControlPoint attachment default value
No longer produces console warnings when not given an attachment name
npc_combinecamera fires OnLostEnemy output
Remove unused stringtables
* GMod specific GModGameInfo
* Source's ServerMapCycle and InfoPanel, and their panels
Minor cleanups
Double `modelprecache` max size to 8k
Added `SetLifetime` input to prop_combine_ball
0 or negative values make it infinite.
BallCaught and OnBallCaught input/output for portal BALL ent
Do not network duplicate health/velocity for players
Since it is already done for all entities
Do not set collision bounds on physgun beam
I don't know why it was being set at all, it's not a physical entity, so let's try simply not setting the collision bounds and see what happens. Not setting the bounds saves on network bandwidth.
Minor cleanups
Fix networking of gib scale to clients
Do not initialize the scaled prop physobj as shadow for client only ents
Undo changes to m_OverrideSubMaterials
Update decals_subrect.txt
Updated from HL2, to contain 2 new Portal decals
You can gravity gun portal energy balls successfully
Fixed studiomdl crashing with remapping sequences
Remove unused properties on SWEP internals
Change how SWEPs store ViewModel/WorldModel/PrintName
To get rid of 80 character limit for all 3 fields
Remove another unused field from SWEPs
Network gravity scale for players, for prediction
Reduce network bits for player's drivingmode/player class
No server has 2^32 unique classes
Network m_bSprintEnabled for prediction (Player:SprintDisable)
Fixed insane network load of ManipulateBone* functions
Optimize some more player networking
m_OverrideSubMaterials array
m_iTeam reduced bits (from 32)
Network compat breaking changes
* Removed bodyque system/entity
* Remvoed vote_controller entity
Bump network version & .exe version
Fix weapon_snark network types
Remove m_bHL2EpisodicBehaviour from gmod gamerules
CTEPhysicsProp model scale networking
TEHL2MPFireBullets Y axis spread networking
Completely remove the commentary system
Fix incorrect particles spawning if there are too many
garrysmod-issues/issues/5509
Remove test_traceline entity
Restore portal entity clientside parts (lasers)
`teamonly` in `player_say` event networked
▍ ▊ ▍▊▆▉▉ ▍▋▋▊▌▅▊▇▆ ▋▅█ ▊▇▇ ▍ ▋▉▆▇▆█▄▍ ▅▅▇▇▇ ▅▅▌▆▍▊▅▋▇▆
▍ ▄▊▉▊▍ ▄██▋▊▍▄▌▄▇▋▇▍▆▌▊▋▄▊▄▄▉ ▅▋▍ ▅█▌▋▉█▆ ▊█ ▇█▆▉▇█▉ ▋▇▄▅▋▍▉▋▆▇▉▌▉▍▉ ▆▊▌▉▉▅▄▉▍█▋█▌██▆▋▅▉ ▆▅▅▉▅▅▍ ▅█ ▆▌▇▄▉▌▅ ▉▋▌ ▍▇▊▌▅ ▋▍█▊▇▌▅▌▋ ▄▊ █▅▄ ▊▇▉▄▊▆ ▅▅▊▍▄▆ ▌█▍ ▅▅ ▊▆ ▍▌▆ ▊▆▌▉▅ ▄▊▍▌▇▍█▅█▇▆▍ ▊▄▉▇▉▊▄▍▊▍▉ ▍▍▆▅▆▇▊▇▆▅▅ ▄█▊▄ ▊▇█▆ █▌ ▌▊▊▍▆▌ ▅▊▋▉█▅▅▄▍▅▋▆▋ ▌▄▄▌█▍▅▊█ ▍▋▉██ ▋▄▆▊ ▆▍▉█▊█▉▊▍▇▉▅ ▉ ▉▅▉▊▋▌▌▅▄ ▅▆▋▋▄ ▄▄ ▊▇▄▊█▉▆▆▇▇▉▆▋▄▋▄ ▇▇▅█▍▌▍▅▇▉▆▌▆▋▍▇▉ ▊▆▍▉█ ▄▍▍▆ ▆▇▇▊▇▄▇▅▇▇▍▉▅▌█▍▆ ▍▇█▍▉ █▅▊▅▋▋▉▌▆▆▉▊▉▊ ▋▋▅▆█ ▅█▉█ ▍▉█▉▊▆▅▉ █▆▋▍▆ ▍▆▆▊ ▉▉▅▊▄█▆▌▅▉▋▅ ▍▌▅▌▊▋▊ ▆▅▍▉▅▊▄ ▇▌ ▊▉▋▍▍▌▉▌█▌▌▄▅▋ █ ▋▇█ ▉█▉▄▉▆ ▉▄█▊ ▍▄▄▄▅█ ▅▉▋▌ ▆▅▇▆█▌▌▊▅██▌▋ ▅▉▍▇▊▄█▇ ▍▇▌▍█▌ ▋▍ ▋▊▍▄▉▆▇▅▆▉▋█▍▍▄ ▅▅ ▆▌▉▅▄▉█▆█▇▌█ ▇▄▄▄▊▇▌▉▌▆ ▍▅▌▄▄▇▄ █▄▇▋ ▌▅ ▍▆ ▋▊▅█▋▄▍▉▊▌█▊ ▇▆▉▆▊▆ ▍▌█▇▄█▅ ▆▍▆█▋▉▌▄▌ ▍▊▊▄▅▅▄▊▅▆ ▉▊▊▅█▄▄ ▉▆▅▋ █▊▊▇█▄ ▊▄ ▍▆▊▊ ▉▇▍▉▊▅ ▋▌▌▅▌▌▉▉▋▌▇▊▄▊ ▍▄▉▍▄▊▊▅▇▉▅▍▍▄▄▌▉▉▇▇█▇▍▆ ▌▌▌ ▍▆▋▊▆▆▍▋█▋ ▍▉▍▉▊█▆▄▌▌█▉▍▇▌▇▋▅▉▅▇▅▅▌ ▋▌▊▌▍▊▄▇▉▄▉▄█▋▌▍▊▆▍▍▇ █▇█ ▌▍▉▋▅ ▇█▌▇▅ ▌▌▌▇▄▆▌▅▍▌▋▋ ▍▍▇▊█▄▅▅▉▇█ ▅▄▍▅▆ ▅▆ ▊▋ ▋▇▍▄ ▄▇▅▋▅▅█▉▊▅▄▊██ ▍▇▊▅▉▉▇▊ ▇▅▄▉▄▋▅▄ ▄▉ ▄▆▉ ▅▍▇▄▇▌▌█ ▍▍▉▋▋▆▆▄▊▋▇▊█ ▍▍▊▉▅▋▇ ▊▅█ ▉▅▌▌ ▇▆▄▆▋▉▆█▅▉▌▆█ ▍▍▇▌▊▊▅▅▄ ▋█▅▄ ▉▋▌█▍▉▌▇▌ ▋▉ █▉ ▅▅▉ ▋▄▋▌▇▇ ▋▋▉▌▉▊▊ ▇▉▊▄▋▍█▉▋▊▆▇▄▅ ▅▌█ ▅▉▄▊▆▊▋▆▊▅ ▄▅▍▄ ▄▆▊ █▆ ▍█▌▅▋▍▄ ██▉▆▆▉▌▅▋▄ ▊▄▅ ▌▌▋▄ ▌██▋▊ ▆▅▇ ▊▍▍▄▆▇▆ ▊▅▆▇▋█▌█▆▋▆▍▉▊▆ ▇▄▊▋▆ ▆▉▆▌ ▅▇▌▉▊▌▅█ ▊▇█▄▊▉▍▊▄▍▅▄▇▇▊▋ █▉▍▇▉ ▄▄▅▌█▆█ ▉ ▆▌▇▊▋ ▆▅▅ ▆▋▉▊▅ ▆▇▇▆█▌▊▅▅ ▅▍▋▍ ▊▇▇▅▆ ▆▉▄▋▄▋▇ ▉▄ █▉▆ ▋▇▊▇▌▊▋▊▍█▋▇ ▅▋█▌▋▊▌▌▄▉▆▅▄▉▆▉▌▍▋▆▉▍ ▇▉ ▄▊▌▋▉▉▆▌▋ ▋▉▇▇█▌█▊▋▅▅▅▉ ▆▆▇ ▆▋▄▊▉ ▌▆▇▌ ▋▅▌▄▆▉▆█ ▇▇▍▍▆▇▅▇▉▋▌▅█▉▇▉▇ ▇▋▆▅▆▌▇▍█▋ ▊▉▉▉▉ ▍▊ ▅▍▇█ ▄▇▍ ▇▍▄█▅▇▆▋▇ ▋▍▌▄▆▅█▉▍▋▊█▋▍▆▆▆ ▋▇█ ▅▌▇▇▇ ▌▆▌▍▋ ▄█▍▆ ▋▉▋▌ █▄█ ▋█▆▋█▉▍▋▅▍▊▌▇▅▍▉█ ▋█▌▊▊▅ ▊▆▉ █▅▊▉ ▇▇▇▍▇▇ ▄▊▌▆▆▄ ▌▌█▉ ▉▅▌▄▆▅▄ ▅▋▅▆▊█▍ ▅▌▅▉ ▉▆▉▇▋▉█ ▋▌▅▊▊▋▇▅▊▍ ▇▇▊▆ ▅▇ ▅▆▆▄█▅▌▅█ ▍▆▆ ▆▍▅▇▇▉ ▉▇ ▌▉ ▅▇▍█▌▄▋▉█ ▇▇▍█▅▉█▄▉▄▍▅▋▉▄▍▊ ▋▍▍▅ ▋▌ █▊▅▌▅▍▇▌▇▍█▍▍▇▉▄▌▍█▍▇ ▌▇ ▇▌▍▉ ▅▆▌▉▇▉██▋▄▋▇▄▆▅▊▆ ▆▉▄▉▄▋▄▍▊▌▉▉▆▋▍ ▅▇▅▊ ▉▇▅ ▇█▌▌ ▍▅▊▇▊▅ ▆▅▄▆▌▄▄█ ▋▉ ▊▋▍▌█▆▌▅▊▅█▄▌ ▅▆▊▋▆▋▍▇ ▆▅▇▇▅▋▊▇▇ ▄▅ ▋▌█▊ ▉▍ ▇▊▆▉▋▉▊▅▇▌▄▆▆▌▊▋ ▆█ ▉▉▉ ▇▉▅▋▇▄▇▇▄▊ ▊▅▋▍▅▊▌▉▊▊▅ ▌▌▊▅▅▆ █▍ ▊▄▄▍█▄▄▅▋ ▇█▇▌▇▆█ ▄▉▌▉ ▄▇▌▍▌██▋▉▊▆ ▌▌▇ █▊▊▅ ▇▍▄ ▉▅▅▆▇▇▉▊▅▄▉▇▍▌▆▅▄▅▄▉▇▊▄▅ ▊█▉ ▌▉▌▍ ▅▍▉▉▆▋▋▉▄▍▅▇▉▊ █▍█▅█▉▄▇▇▋▍▄▍ ▉▌▋▊▄ ▇▅ ▇▇▇▇ ▄█▇▉▍▊▅▆█▉▅▉ ▄▋ ▅▆▌▌ ▊▌▊ ▅▋▅▊▇▆▅▍█▆▄ ▉▅▅▍▆██▋▉▊▉██ ▆▋▍▍▄▇▉▋▉ ▋▌▋▅▍▊▇ ▄▆ ▄▇ ▄▍▍▉ ▅▄▇█▌▆▍▉▇▋▇▉▇ ▆▌▅▋▆▄█▆▅▄ ▉▋███▉▄ ▇▇▌▇▋▄▍▄▌ ▆▋▇█ █▉▄▍▌▇▍▊▋▍▉▇▄▄▌▊ █▋▉ ▍▆▇▄▋▄▉▌▅▊ ▇▋▊▍▋▉▍▋█▊ ▄▊█▉▇▇▍ ▊▄▄▇██ ▆▇ ▅ ▄▉▆▌▇▉▋▍█▅▌ ▇▆█▌▍▍▅█▇▌▋▊█ ▅▌▌▅ ▆▍▇ ▇▊▉▉▇█▊ ▆▉▍ █▅ ▆ █▊█▉▅ ██▇▌▍▇▆▍▌ ▋ ▉▊▉▋█ ▌█ ▋▊ ▍▉█▇ ▌▍▇▇▊█ ▄▉▇ ▆▍▌▉▍▉▊▆▆█▊▍▋▌▇ ▋▋▇▍▌ ▋▊ ▊▍▅█▍▉▄ ▊▉▌▆ ▅▇▊▌▍▌▍▄█▋▄ ▌█▅ ▄▄ ▉▍▄▄▊▉▊▆▌ █▉▊▄▆▉▍▌▊▉█▊▌▋▉ ▍▌▇▍▊▅▊▆▌ ▉█▋ █▋▉▉ ▋█▄▉▆▇▄▆▅▄▄▋▊▉▇▊▅█▄▌▆▊▉▋▋▇▋▉▋▌ █▅▅▍▊▆▌ ▆▆▊▋ ▅▌▉▅▍▊▇▅▋▉▄▊ ▋▇▅▌ ▆▌▍▉██▆▊▌▊▊▌▅▌ ▍▆█▄▄▌▍▊▋▋█▇▄▇██▇▉▉▇▉█▇▄▆▋▉▍▆▇▍█ ▄▍ ▊▋▆▋▇▇▌▊▄▅▅▅█▍▅█▆▅▇▋▆ █▌▇▋▇▆▄ ▇█▌ ▍▆▄▊▊▆ ▊▆▆█ ▍█▅ ▍▅▆▉ ▌▌▄▌▅▆▊▅▍▌▍▍ ▄▌▇▉ ▇▆▌▇▆█▅▊▌▄▆ ▇▄▋█ ▊▄ ▊▅▉█▍ ▋▄█▉▋▇ ▊▆▅ ▊▊▌▋▊▆▌▇ ▇▊ ▇▍▅▍ ▇▅▅█▇▌ ▇▊▋▅█▉▌ ▍▋ ▋▌▄▉ ▌▊▋▆ ▍▋▇ ▅▇▌▍▄▄▊ ▄▅█▉ ▌▆█▌▍▌▊▇ ▅▇▍▊▊▌▆ ▇▆▇▉▌▆▋▄▊ ▄▌▌ ▅▇▌▌▌▆▅▍ ▌▅▄ ▊ ▌▉▉▉▍▆ ▋▅▄▋▊█▊▉▉▇ ▅▆▋▌ ▄▄▉▍▆▉▅▇ █▌█▆▅▊▊ ▇▊▅▄ █▆▊▋ ▇▋█▅ ▆▋▌▌▉█▆▉ ▌▄ ▊▇ █▅▇▋▆ ▆▇▆▄▍▆▋▍▆▇▉▇▆ ▅▆▋█▌▊▊▄▌▌▌▄▋▆▄▌▉▇▍▍▉▄▇▆ ▅▇█▅▍▇▅▋ ▅▊▍ ▇▉▄▆▋▄▅█▉▇▍▅▄ ▊▄▊▍▊█▋ ▄▌ ▉▆█▅▉▅█▋▅ ▌▅▆▊▇▉ ▄▅ ▍▇▊▌▌ ▅▆██▌▋▅▅▋▌▍▉▍▋▋▊ ▉▄▍▋▆▄▍ ▋▄▋ ▅▌ █▉▇ ▇▍▋▄▆ ▊▅▆▋▊▄▅ ▆▇▄▇▋▇ ██▇▋▄▉▅▆▋ █▅▊▆ ▊▆▉▉ ▊▅▊ ▉▍▇▋▅▅▅▍▊▇▍▇▇ ▉▄▄▍ ▉ ▌▅▍▍ ▍▋▅▅▇█▌▋▌█▆▄▌▉▄▊ ▊▍▇▅▉██▋▆▊▊▅▉ ▄▋ ▍▊▉▄▊▉ ▄▋▋▅ ▍▉▉ ▅▆▋█▄ ▇▍▍▌▌▇▉▆▇▌▋▌▊▅ ▋▊▆▇▆█▇▄▊▅▉▍▊▌▍▊ ▍▍▅▅▆▄▋▅▌ ▅▉█ ▆▅▄▍█▌▋ ▌▌▌▉▄▊▇ ▆▌▆▌▋▊▇▊▍▌▋▉▍▊▍▄▉▄▌▍ ▋▉▄▊▉▋▅▄▋▄█▄█▌▋▍▍▍█▍▄▉▅▆▆▍▍▄▍▌▇█▅▋▉▋▌▉▇▄▉▇▍▌▇▊ ▄▄▍▍▅▉▊▍ ▍▆ ▇▋▇▉▋▄▅▍ ▋▍▌▋▆▄▄▇▊█ █▋▊ ▇▌▊▌▍▅▍ ▊▋▌▆▌▇█ ▅▅▋▆ █▅▍ ▄█▋▇▋▌▍▌▍▆▉ ▅▊▍▌ ▋▊▌▍▅ ▆▄▅▊ ▌▍▉▍▅▌▅▍▉▊▆█▌█ ▅▆ ▄▌▋ ▉▋ ▊▊█▆▇ ▄█ ▉▄▊▄▆▅▉▌▇▄▊▄▄▉▊▍▋▇▍▆▋▊▅█▆▉▌ ▆▆▄ ▊▋ ▋▋██▍▅▅▊▍▆ ▍▄ ▅▊█▅▍ ▋▋ ▍█▌▊▌▍▆▌▊ ▆▆▉▆▇ ▍▇▇▅▅▄▉ ▅▇▆ ▉▋▅▆▉ ▅▋▇▉▇▋▇▌ ▄▉ ▉▋▇▉▇▋▊▋▊▆▇▅▄▋▊▆ ▋▄▊▅▅▋▍▇▉▉▍▄ ▌▊▊█▆▉▉▆▅▊▄█▌▍ ▉▄▅▄▋▉▌▄▄ ▆▆▍█▌▋▄▍ ▋▋ ▊▌▍▉▍▌ █▅ █▅▄ ▄▅▇▅▆ ▌ ▅▉▌█▅▌▊▇▆▇▅▋ ▉▅▋▆▊▅▅▉█▆▅▆▇█▍▍▅▄ ▊▆▉ ▌▌█▍▇█▍▇▆▊█▇▇▍▍▇▌█▅▄▋█▍▇▊ ▄▋ ▌▊▅▆▋▌▆▊▇▆ ▆▆ ▊▅▅▆▉ ▋▌▍▉▄▊▇▉▉▆▌█▌▅▆▇▋▅▋▄ █▋▉▅▆▊▄▉▅█▍▉▅▇▊▌▄ ▅▌▍▌▊▅▊█ ▅█▅▍▍▍▄█▆▅ ▍▆▌▆▇▉▋▇▄▇▆▇ ▉▉█▆▉▆▋▅▋▉ ▌▋▄▅▍▉ ▆▉▌▄ ▌▅▊ ▉▆▍█▇ ▅ ▇▅▇▅▌▍▊▉▊▇▋▋ ▅█▇█▄▅▆▊▅▅▉█▅█▇▌▍▄▊▋▇▄ ██▉▉▆▅▇▄▊▅▄▇▋▋▆▅▆ ▋▆▋ ▍▆▉▍▄▇ ▊▋▉▊ ▊▄█▅▍▍▌ ▉ ▍▄▇▄ ▉▇▇▌ ▋▉▉ ▌▌▍▉▉ ▄▆▍▊ █▍ ▉▉█▍▉▄ ▌▉▌▇▆▊▌▅█▌ ▋▅▉▆▉▄▅▋ ▋▊█▌ ▅▋▍▆▄ ▍█ ▌▊▉▌ ▆▍▅▋ ▆▉ ▅▅▇▅ ▅▉▌▄▆▇▉▇▋▅▌▉ ▄█▅▇▄ ▊▌▊▉ ▆▅ ▆▇▇▇▇ ▍▆▊ ▉▅▊▍▅ ▅▆▋▊▍█▌▇▍▊▌▊ ▉▌▉ █▆▊▉▌▇▉ ▊▍▍▅ ▇█ ▉▆█ ▇▉▍▆▋ ▌▆ ▋▅▇▌▆▊ █▊▋▅ ▊▅ ▆█▅ ▅▌ ▉▉▌▊▌ ▄█▋ ▊▆▉▅▊▊▋ ▉▄▍███▆▍ █▇▇▆▌ ▇▄▍▆█▅▊ ▆▄▊ ▌▄▍ ▄▉█▌▉▅▉▍▉▆▉ ▊▊▇▇▉█▇█▌▊█▊▆▇▋ ▉▍▉▉█▄▇█ █▊▉▉▋▆▋▌▋▋ █▉▋▋▇▊▉▇█▆▇▊▌▆▉▋▊▉▇▄▌█▆▅ ▍▊▄▌▉▆▄ ▋▊▍▋▌ ▍▋▊▍▍▅▊▅ ▅▋ ▌▆▄▍▊▆▉ ▋▍▄▆▊▌▊▊▋▋▅▅▊▍▍▉▋▌▌▌█▄▊▋▅▄▅▌▋▌▉▊▌▅▍▍▊▉▇▍ ▍▇▆▇█▍█▌▌▊ ▇▅▋ ▇▅▋▆▆▄ ▊▊▌▌▍ ▆▉▆ █▍▍▌ ▅▉▌▌▅▋▇▇ ▅▉▇▍ ▅▉▇▌▉ ▄▆▋██▊ ▆▅ █▇▄▍ ▋▄▌ ▌▌▅▊▍█▍▍▍ ▍▍ ▅▇▌▋█▍▋▋█▋▆█▊▌▊▋▊█ ▆████▄▆ ▇▋▍▄ ▄▆▋█▉▉▍▆▋ ▍▅▅▍▊ ▄▊▇▉▋▆▋▇▉ ▊██ ▊▌▋█ ▄▅▌▊ ▇▉█▍▄▆▊█▌█▅▆█▌▇ █▍▋▍▊▇ ▋▊▅▍▄▍▄█▇▌▍▇▆▆▉▅▇█▉ ▊▆█▄█ ▆▄▋▉▆█▇ ▆▆▇▉▌▇ ▍▄▆▊ ▍█▊▅▍▅▉▌ ▇▊▇█▍▄▆▉▊ ▋ ▄▆▉ ▅▍▉▋▄▍▋▊▌▇█▆▄▇▄ ▇▇▆▌▅▋▍ ▌▍▌▆▇▇ ▆▊▆▍ ▄▄▋▉▅█▌▆ ▌▅▉▆▍▅▍▋▆▅▇▉▅ ▄▋▆ ▄▉▍▌▊ ▇▇▆▅█▅▍ ▉█▆▍▇ ▊▆▊▇ ▊▄▊▆▉▄▅▆ ▊▋▍▇▉█▊▉▄▉█▋▇▄ █▍▄▅▋▍▇▅ ▉▌▅▌██▆ ▉▄▇ ▆▍▉▊▆▊▄ ▄▊█▇▄▋ ▌▄ ▉▊▊▆█▇ ▅ ▍█▆▅▅▊ ▄▅ ▆▉▉▅▉█ ▉▋ ▋▇▅▋▇▍▌ ▉▄▇▌▌▌▉▆▊▍▄ ▍▄█▅▉▇▄█ ▅▋█▉▇▊▄ ▌▍▌ ▆▊▌▍▊▊▄ ▋▋▅▆▋▆ ▍▆ ██▉▇▊▌▋▊ ▌▋▄▄█▄▆▌▄▊ ▇▇▇▆▍█▋ ▄▋▊ ▌▅█▉▉▇▍ ▅▉▉▆▄█ ▍▄ ▆▉▊▉▋▉▆▆▄▌▉▌ ▅█▄▉▊▅▅▌▊▆ ▉▉▄▅▅▇█ █▇▍ ▇▆▋▍▅█▍ ▅▊▌█▋▄ █▋ ▊█▍▊▌▇▅▇▍▄ ▄█▊█▍▌▊ █▊▉▍▋ ▅▇ ▅▅▄▅▋▌ ▋ █▊▇ █▍▉ ▋▉▊▆▌▋▌▄▍▇▋▋▄▋▆ █▍ ▌▍▆▊█▋ ▇▍ ▊▅ ▆▊▌▆▍▍▆▌▍▍ ▆▄▍▆▆▅▌ ▇█▊ ▄▉▄▊██▋ ▍▆▌▆▆▆▊▊█▅▄ ▋▋▌▍ ▇█▊▌▍▍▇▇ ▌▄█▍▄▋▉▆▌█ ▆▇▉▅ ▋▄▋▇▊▋▄ ▋▉▋▌▅▆▊▍ ▊▉▌▉▍▍▆▋▇▊▍▍▌▆▆ ▉█▇▅ ▋▊▅▊ ▆▉▇▄█▋▄▌ █▌▇▅▍▇▌▊▆ █▆█▊ ▊▌▅▉▆▆█▌▄▍▆▉▌▉▄▊▌▌▄▆▌█▄▉▄▆▅▉▋▍▇█▊▄▊▋▅▉▅▉▊▍█▍▄▊▅▌▌▍▇▉▅▅▌▅▋▊█▍▄▌▅▅▊▋▌▌▍▇▉▆▊▉▉▌▄▅██▅▇▋▋▉▋▇▉▅█▍█▅▅█▌▌▆▆▆▌▆▍▉█▅▌▊▊▍▅▊▆▄▌▋▄█▉▌█▇▊█▇▄▅▉▄▋▄▋▌▅▊▍▇▆▆█▌▊▌▆▇▇▆▅▇▋▋▇▋▇▋▉▊█▅▇▍▇▊▌▌▇▋▄▇▍▇▌▅▅▄▌██▅▄▌▄▅▆▄▊▄█▇▅▆▌▅▌█▉▍▄▇▍▉▅▋█▇▍▆▉▇▍▄▅▇▅▉▍▅█▌▆▇▆▊▆▊█▊▇▋▉▌▇▅▅█▊▇▋▌▄█▉▄█▄▅█▄▇█▇▉▅▄▊▇▉█▋▍▆▍▋▌▄▋▄▆▊▌▊▇▉▋▌▋▅▆▆▉▍▊▍▆▅▇▅▄█▅▅▌▍▍▋█▋▆▇▇▄▆▇█▌▍▍▇▆▌▅▇▆▆▍▊▍▉▋▋▉▄▋▉▋▋█▊▄▇▄▍▌▍█▋▇▉█▅▇▌▋▊▍▋▊▊▄▅▉▆█▉▌▄▉▋▊▄▉▇▇▍▋▆█▆▌▅▆▇▄▉█▋▇▅▊▄▅▋▊▌▋▌█▆▅█▆▉▍▇▊▍█▋▌▋▆▇▌▌▌▅▅▍▅▅ ▋█▅▉ ▍▋▋▉▅▍▋▆ ▅█▍▋█▊▍▉▆▉▆▌▋▋▍▋▍▊▊▉▅▍▋▌▇▇█▌▅▌▉▌▍▄▅▇▌▅▊█▄▉▌▅▅▇▌▅▌▄▊▉▇▆▄▅▋▅▇▅▆▄▇▇▍▇▌▋▊▉▌▋▄▅█▉▅▉▊▄▉▆▍▅▆▄▉▋▍▍▊▋▋█▆▍▅█▆▋█▄▉▇▅▌█▅▋█▄▅█▇▊▍▅▆▅▌▌▅▌▊▌▅▄▉▌▉█▋▇▍▊█▋▊▄█▉▇▍█▍█▆█▌▇▌▍▇▇▌▇▆▍█ ▍▋▍▆▆ ▄▆▌▉▋▅▅█ ▆▊▆▉▅▇▊█▌▉▊▉▊██▄▄▆▆▌▅▄▊▊▄▊█▊▊▋▋▊▅▇▋▊▄▇▅▍▆▄▅▆▆▋▉▊▌▌▉█▍▇▆▅▍▊▉█▌▄▋▄▌▄█▆▋▋▍▊▅▆▉▅▌█▇▆▄▌▌▌▆▇▊▋▅▉▊█▌▊▄▆▆▄█▆▇▇▌▄▌▌▆▋▌▅▇▉▇▆█▄▆▍▌▉▇▊▅▅▅▉▌█▆▇▌▋▄▄▍▋▍▋▍▇▄▍▍▍▆▅▅▊▆▍▍▇▆▌▌▊▅▋▍▇▄▌██▇▉█▆▆▊▅█▍███▋▅▍▍▇▅▆▆▇█▉▅▅▇▉▆▋▉▇▆██▊▊▊▌▇▉▌▉▇▋▇█▌▍▋▍▍▌▉▆▅▌▍▆▄▍▄▌▊█▅▆▍▇▉▆▆▉▌▊▇▌▅▌▋▋█▊█▌▉▉▊▅▆▌▊▇▋█ ▉▄▌▍▊▅████▋█▄▌▍▇▋▅▉▇██ █▌▌▉▊▋▄▋ ▊▌▋ ▇▅▇▍▅▆▊▆▍▅ ▍▄▅▉▋▆▍ ▄█▌█▍ ▄▉▍▅▄█▋ █▋ ▌▌▋ ▊▋▉▇▉▍▌▅▉▆█ ▋▊▄ ▌█▅▊▅▄▆▇▄▋▄▄▅▅ █▉█▄▆▇▌▄▊▊▉▉▍▆█▌▄▅█▍▉▆▆▄▋▌█ ▆▊▌▇█▋ ▊▊▍▌ ▇▉▆▆▌▌▉▄▊▄▄▍▆▊▌▊ ▆▊▆▆▇▇█▍▉▇▌▇▄▋▇▉█▍▋▊▅▊▊█▋▄▄▋█▇█▅▉▌ ▉▄▇▋█▄ ▄▇▋▉ ▍▆▍▌▋██▆ ▍▅█▊▍▌▉ ▇▆ ▊▉▅▍▋▋▆ ▆▆▆▋▉▊▉▋▍ ▅█▉ ▄▆▄▍ ▍▅▅▇▇▌▅▉▅▅▋█▌ ▉▊▅ █▋ ▊█▆▊▋▆▉ ▋▊▋▇▍ ▆▄▊▉ ▆▋▉█▌▇▅▊▉█▍▅▍▇ ▉▇▅▇▉▉▊▆█▌▋▊▆▇▅▆▌▊▌▆▆▌▉ ▍▌▇▇▉▅▆▇█▋ ▆▆▄▋▍▉▄▌▄▇▊▊▆▅▋▉▇▊▇ ▇▋▄ ▊▋▅█▆▅▅▅▅▉▇▌▍▅▄█▌▅▋▇▆▉▍▇▊▅▊▄▋ ▊▄▄▄▆▊▇ ▊▉ ▆▍▋▍▅ ▄▇█▆▊█▌▋▅▊▇▌▄▌▌▌▄▉▄ ▇█ ▉▆▋ ▋█▋ ▌▇▌▌ ▉▇▇▌▄▅▍▄▉▍▌ ▌█▋▇▉ █▋▊ ▆█▊ ▊▋ ▉▄▊▉▅▊▍█▇▌▋▉▊▍▌▊ ▅█ ▉▇▊▋▌▄▇▍▇▅ ▊ ▊█▌ ▋▊▇▍ ▉█▌▍▍▇█▊▍▌ ▌█▌ ▄▄▍ ▅▆▄ ▋▅▉▅ ▆▇ ▌▌▋▇▍▋▄▊▌▄▊▉▉ █▆▆▆▅ █ ▄▌▆ ▊▉█▊█ ▉▉▌▍▆▊▉▄█▋ ▆▄▄▌▌▍▍▇▇▊▋ ▌█▍█▊ ▅▉▊ ▆▅ ▍▆▇█ ▄▄ ▄█ ▍▍▇▋▉▍▅ █▆ ▄▆▊ ▅▅▄▋▋▅▌▉▊ █ ▄█▆▊▇ ▋▋ ▇▋▍▌ ▍█▊▇▄▍▍▇▆▍▉▇▉▍▋▅▉▋▍▅▉▋█▍▍▉▍▊ ▇▊▌▆ ▇▌▆ ▋█▇ ▊▅▌▆ ▇▉ ▉▅▊▊▉▊▅▊▋▋▆▅▍▋█ ▉▄▇▍▉▅▆▄▋▋▍ ▊▆▅ ▌▆▇ █▍▇▌▌▆▄▊█▅▉▉▉▄ ▋▋▍▄▅▉▆▌▇▇▄▍ ▍▊ ▄▍▉▍█▍▋▄▇▉▋▋▇▆▄▍▊█▅▋▆▌▆▄▊▋▄▉▉▄▋▌▇█▊█▊▊▄▉▆▊█ █▇▇▆▍▋▇▊ ▊▌▆▇▅▋ █▆▋ ▍▅ ▉▇▋▌ █▌▊▉▇▄ ▇ ▉█▉█ ▌▋ ▆█▄▌▅▇▅▄▄▄▉▋▅▇ ▇▊▄▅▄▊█▌ ▇▇▅ ▄▊▆▆▋▋▊ ▍▋▍▆▌▇ ▇▍▊▌▇▋▄▌▅▊▄ ▍██▇▆▆█▅▋▋▄▋▌▋▇▆▌▌██▅▋ ▋▋▄ ▍▊▉▉▇ ▆▍▍▆▇▇▇▆▊█▉▅▅▉▇▆▌ ▄▄▉▅▄▊▆ ▌▅▊▊ ▇▆▊▌▉▇█ ▄▌▉█ ▍▍▊▅▍ ▌▄▉▅█▌▅▉█▄▅▆▆▊▇ ▅▋▊▍▇ ▌▊▉ ▋▄ ▆█▆▊▄▊▉▌▋▇ ▌▉█▆█▅▄█▉▆▆▌ ▅▅▆ ▆▆▊▋ ▄▅█▌ ▅▅█▌ ▍▇ █▉▇ ▉▇▉▉▆ ██▆▋▆▄▉▌ █▇ ▄▇▌▇▍▄▊▅ █▋▇▅ ▄▆▅▄▄▋▌ ▆▋▊ ▋▄▌▅▉ ▇▍█▇▆▋▅▌▉▉▄▊▇▌▅▅▌▌▇█▍ ▉▆▍▌▄▅▉▇▊▋▉▋▉▇▆▄█▄▇▍█▉▉ ▄▄▉ █▊▉▍ ▅█▋▉ ▋▋█▉▆▉▉▉▍▋█▌▋ ▉▌▄▇▌▍█▉▄▋▍▋▉▋▌▋▋ ▊▄▄▍▉▉▉▍▌▌▇▍▊▋▉▆▋▌▋█▉▇▉▆ ▄▋▄█▋▋▌ ▋▋▆▅▇▌▋▍▇ ▉█▍▄▅▊█▍█▉ ▋▌▄ ▆▅▆█▋▍▌▉▅ ▅▅▍▊▅▇▊▅▇▄▍█▍▅▇█ ▅▇▆▄▍▆▄▄▊█▄▌▌▄▋▄▌▇▆ ▌▅██▄▇▇▅ ▊▌ ▉▇▍▍▄▊▉▉█▅▌▅▌▍▋▆▌▆▇▆▌▊▊▍▉▇▊ ▍▆▋ ▊▅▇▅▄▄▄▍ ▌▇ ▆█▇▅▇▋▆▉▋▋█▄▋█▄▍▋▄▇▊ ▄ ▊▇▋▉▋▌▋▌▊▅▍▇▍▄▇▆█▉▌▄▄ ▆█▆▊▇▌▅▅▇▄ ▉▆▇▉▅▊▊▉▍▉ ▊▄▉ ▉▊▌█▊ ▋▇▉▉▉▍█ ▌█ ▌▇▍ ▉▋▇▅▇▅▊█▅▊▋ ▍▌▉█▅▌▊ ▍▉███▄█▍▊█▄▇▅ ▌▆▍▍ ▍▋▇▅█▅▍█▅▉▉▊▄▉ ▇▍▌▌▌ ▉▄▇▆▊█▉ ▆█ ▌█▍▋▍▊█ ▇█▉▉▇█▄▇█▍▆▊▌▋▇▇▍▇█▌▉█ ▋▋▍▍█▉▊▊▋▋█ ▄▍█▇▇█▄▄▄▋▋▅▍ ▇▊▉▄▄▇▉▋▌▍▋▋▉▇▍█▊▌ ▅█▆▋ ▌▌▄▉▍▇▌ ▉▋▍▉▍▊▌▍▉▊█▆▊▆▄▊▉▋▄▄▉█▍▊▊▋▉▌▋▄██▅▌▇ ▅ ▌▆▊▋▅ █▄▆▊ ▆▉▉ ▌▅▉▋▌▆▆▅▋ ▇▌▆▄▍▆▉ ▅▄▅▌▌▌▌▇▅▇▌▄▇ ▋▍█▅▄▄▉█▊▉▌▉▅ █▉▇▇▋▆▅█▄▊▅▋▊▍ ▇▅▊▉█▆▋▄██▄▄▍ ▋▄██▆▆▊█▇▍▌▊▊▌▍ ▊▆▇█▇▄▅▇▄▄█▇█▇▅▌ ▇▊▇█▇▉▆▌▉▄▉▄▆▋▌▋▇▌▇▅▅ ▉▋▌ ▉▋▇▇ ▌▌▆▄▅ ▅▉▍▇ █▉▅▄█▍▇ █▅▅▆▅▊▄▊ ▄▍▋▋▍█▌ ▉▆ ▌▄▊▋▉▌▄▆▍█▌▆▆▅▊▊█▇█▊▄▅▅▌▊▍▆▇ ▋▄▌▊▍ ▍▅▇▇▉▍▆ ▄▍▆▆▅▇ ▌▌▄▄▉▄█▍ ▅▋▌▌▅▊▊▋▉▌ ▉▆▆▇▄▆ ▇▌█▅▊▄▌▍ ▋▆ ▄▇▆▋▉▌▅▄▋████▇▊▆██▊▌▄▉▌▋▋▊ ▊▇▆▄▌▍▅▌▉▆▉▋▇▋▅▆▉ ▊▌▌ █▄██▉█▆ ▌▆▉▉█▍▍ ▅▌▋▊ ▉▉▇▊▌█▋▋▄▍▋▋▄▅▍▌▅▊▌▌█▇▊▆▉▍▊▄▋█▉▆█▌▄▆█▌▆▄▊▌▇▆▅█▉▇█▄▋▉▄▍▅▆▌▅▄▌▋▋▍▊▇█▇▅▅▋█▇▇▋▅▊▍█▅▅█▆▉▊▋▄▆█▊▌▇▆▌▇▇▍▍▋▍▊▄▇▆▋▊▇▅▆▌▉▆█▄ ▌██▅▆▍ ▆▆▌█▇ ▇▅▉▄█ ▅▋▆██▄▄▄▋▄▇▍▍▊▅▊▍▆▍▍▌ ▋▊▋ ▊▇ ▆▌▌██▌▅▋▊▌▍▍▉▌██ █▆▉▇▇▆▇ ▋▇▌▉ ▅▊▇▄█▌▅▌ ▅▅▇ ▉▉▌▅▍▆▊▍ ▋▅█▇▇█▆▆▄▍█▅▄▊▆▍▅▇▋█▅█▄▆▇▄▊▄▉▅▇▅▄█▅█▊▇▍▉▆▉▅▌▊▍▇▍▆▌▄▉█▆▌▆▅▆▍▇▌▅▋▌▊▇▅▊█▋▇▋▇▅▅▊▆▅▊▇▋▋▋▊▅▋▊▌▊▌▇█▇▊▋▅▋▆ ▅▆▌▋█▉█▇▆ ▇▄▆▄▍▉▉ ▉▄█▄▋▍ ▋▆▄▉█▍▇ ▋█▄▌▄▄▇▉▄▆ ▆▆▌▉▇▋▇▌█▌▌ ▄▋▊▊▉ ▆▉▉▋▍▄ ▉ ▍█▍▍ ▇▍▍▆ ▄▉▌ ▅▌▍██▉ ▊▊▍▅▉▊▋▇ ▅█▋▌▄▇▇▅ ▋▌▄█▌▍ ▌▉▉▌▉ ▌▉ ▌▊▌▅▄▄ ▆▄▇▇▌▆▉▆▉▅ █▍▆ ▉▄▅▄ ▇▄▊▊▌█ ▉▋ ▅▌▌▆▌▍▋▄ ▆▄▄▇▉▆▆▆ ▋▇▇▅▌▇▇▉ ▋▊█ ▄▇██▉▌▊▊▇▊▍▋▅▋▍▍ █▍▌▉▅▌ ▇▌█▅█ ▌▌█▇▉▆▉ ▊▊▌▊█▉▌▉▌ ▉▌ ▊▅▇▍▇▌▉▍ ▄▆▆▍▉▍█▇▋▌▌▇▇▉▊ ▅▆▅▌█▆▊▉ ▍▋▄▌▍▄▍█▊▋ ▊▅▆▇▊▆▊▄▅▅▋▍▆█▄█▆▊▆▄▅▊▇▋▇▅▉▄█▆▋▇▆▉▋▇█▋▉▍▅█▅▉▌▍▉▊▋█▌▇▆▊▊▄▋▉▄▉▊▊▉▌█▇▋▊▋▋▄█▄▆▌▋█▌▌▇▊ ▍▆▍█▇ ▅▊▍▊▊▍▋▄▆ ▉▌▆▅▉▆▌▌▄█▇▇▍ ▋ ▌▉▌▊ ▋▌ ▋▇▉ █▄▅▅ ▊▄ ▅▅▋▍▄▇▌▅▋▇▄▋▄▅▉▄▍▆▌▅▄▋▆▄▆▉ ▅▇▌▄▇▅▆▌▍▇▊█▌█▄█▅▇▊▄▊▅▍▇▄▍▆ ▉▍▇ ▌▋▋▉ ▅█▇▊ ▍▍▉ ▆▆▆▇▉ ▇█▄▊▉▍▇▅▌▄▇█ ▍█▌▊ ▌▉█▍▊ ▇▆▉▄█▇ ▋▉ █▍▋▍█▉▋▉▇ ▌▍▇▊▋▅ ▅▌▋ ▉▄▍█▊▋█ ▍▍▆█▉▅▉▊ ▉▇▄▊██▌▄▅▉▋▉ ▉▄▊▄█▆▋ ▌▊▊▄▆▍▉▉▊ ▉▄▋▋▇ ▋▄▇▄ ▉▇▆▊ ▄▋▍▍▆ ▌▌▇▅▄▇▇▋▍▍▇ ▌▊▍▍▆ ▉▅▋▄▅▌ ▄▆▍▍ ▍ ▉▅▊▌▅▆▋▊▋▆▇▄ █▇▊▌ ▄▄▆▍ ▇▇██ ▊▅▍▄▄▋▄▆ ▅▇ ▌▉▇▅ ▆▉ ▌▆ ▅▍▅▄▇▊▉▄▄ ▆▊▄▉▆▋▅▅▍▇▋▊▍▆▄▍▄▉▄█▍▋▋▄▅▅ █▇▉▋▆█▄ ▋▌▉▄▌▉▌▅▍ ▆▅▅▊ ▆▋▄▅▇▅█▉▅█▍▍ █▄▆▌▊▆▅ ▆▉ ▅█▉▌▅▍▆▆▍▉▉▌█▍▋ ▆█▇▄▄▉ ▊▇▉▅▇█▉ ▇▇▍▄▍▅ ▄▇▉ ▇▅▆ ▆▆▅▍█ ▄▄▅▉▉▅▍▄▅▄█▄▍▋▌█ ▊▍▊▉█▍▇▌ ▇▋▄▅ ▌▋▆▉█ ▄▄▇▇▄▌ ▅▄▍▋▄▉▆▉ ▊▇▋▊ ▇█▇▄▅ ▊▆▅▌▄▋▆█▋▍▊▌▋█▅▉▄ ▉▉█▅ ▆▇▅▅ █▌ ▅▅▍▄ ▅▄ ▌▊▄▍▄▄▆▋▇ ▆▊▊ ▊▍▍▊ ▄▆▍▋ ▉▍█▍▄▊▉▍▅▇ ▌▌▉ ▋▌ ▋▄▊▄█▆ ▊▌▄▊▉▉▉ ▌▉▄▊▅▇ ▉▌ ▆▅▍▇█ ▇▊▍▇▌ ▄▌▄▅▉█▆█ ▉▌▄▇▆▉▅▄▄▉▆▆ ▊▆▆▍ ▉▍▋▊ ▄▍▄▍▊▌█▊▉▋▄▊ ▇▊▋▋▋▌▌█▆ █▆▄▋▅▅▌▊▄▊▉▊▉█▊▌▅▋▇▄▉█▆▉▊▌▍█▉▅▊▅▇█▉▊▍▅▉▋▉▄█▅█▍▌▆▅▌▊▅█▇▋▍▄█▅▆▅█▄▌▍█▇▄▌▄▍▍▅▊▉▉▄▅▅▊▄▋▇▊▉█▊▄▋ ▊▉█▄ ▆▉▅▍▉ ▅▄▊▋▇▅ ▍▊▍▌▋▅▍ ▌▇█▆█ ▅▇▇▉▋ ▇▇ ▆█ ▉▍▍▅█▉█▍▄▍▆▇▅ ▋▍█ ▌▆▉▊ ▋▄▉▄▅▍▉ ▆▊▇▇ █▅▋ █▊▄▊▇ ▉▉▍▇▉ ▄▄▍ ▊▇▄▍▄▋▉ ▋█▇ ▌▄█▄ ▅▆▋ ▊▋▆█▇▆ ▇▅▍▍ ▅▋▊▄▍▄ ▄▌▌▉▇▆ ▋▉ ▍▍▇▅▊▍ ▉▇ ▊▊▌▆▌█▇ ▅▊▌▅▋█ ▍▌▆ ▌▍▇▆▇▊▇ █▄ ▊█ ▇▍▅█▍█▋▄▄ ▆▋ ▆▉▉ ▋▍▉ ▄▍▄ ▄▅ ▄▆▊ ▉▇▍▍▆▇ ▆▅▍▍▅█▇▅ ▆▋▍▌▄ ▅▋ ▋ ▊▊▋▌▇▄▊█▆▍▌▌█▅▋▄▋▌█ ▄▊▉▉█▅▌▋▇▅▇▍▅ ▌▋▊▇▆█ ▄▅ ▉▉▋▆▉▉▋▅ ▍▌▄▅▊▋▅▅▄▆▋█▇▆▇▍▍▋ ▍ ▋▉▇▌▇ ▌▇▉▄▌ ▇▍▊▅ ▉█▆▆▋█▅▉▉▇▍▋▉▌▆▅▋▇▋▉▄▊ ▉▍▋▇▇▅▅▆▋▇▄ ▇▋▌▄ ▋▅▇▌▅▍▄▌▉▇█▇▍ ▄▄▅▄▅▍▍▇██▄▍█▆▊▉▊▅▄▇▅▄▅█▋▌▊ █▄▅▄ ▌▌▆ ▅▊▆ ▍▆▋▍▋▆▊▆▌▊▊▇▇▍▅▇▍▋▄ ▌▊▇▆▇ █▆▆█▅▄ ▆▅▍▇▊ ▍▇ ██▋█▅▌▆▄ ▄▋▆▌▉▍ █▅▌▉ ▊ ▍█▉ █▄▆▅▌ ▇▉ ▇▄▆▅▄█▇▇▇ ▉▉▍▇▇ █▄▉▊ ▄▌▄▅▋▄ ▍▌▍▍▊▆▄▍▌█▋▋▍ ▊██▄▋█▄▄▄▅▅▍▄▊█ ▋▉ █▆▆▆ ▆▅▉█▊▅▉▉▅▌▊▋▄▌▆▉▋ ▆▋▊▍▍▋▋ ▍▊ ▉▉▆▆▍██▋█▆▍▊▅▆▉▉▌▆▉ ▆▍▋▆▅▋ ▆█▊▆ ▆▇▌█▍▊▍▇▌▌ ▅▆▇█▍▊ ▅ ▄▉▅ █▅█▅▋▋▋ ▆▄█▋ ▄▌█▅▌▅ ▅▆▊ ▉▅▍██▄ ▊▇ ▇▉▊▆▍▉▋▅▌ ▊▋▆▌▊▇▇▅▅█▌▆▄█▍▌▌▉▇▅▄ ▋▋▄█▍█▌▉▄▇▋▄▄▉█▍ ▋▌▌▉▇▆▉▋▄▆▄▊▇▄ ▄█▄▌ ▌▍▅█▋▌▉▊▄▄▅▆▄▍█▌▅▊█▉▊█▅ ▇▇▋▇▅▅▄▇▆▄▅▊█▋▇ ▅▍▄ ▋▆█▊▌ ▆▅ ▆█▍ ▇▄█▅▇▌▌▄▄█ ▇█ ▄ ▋▌▆▌▇▍▅▋ ██▉▍▆▊▊▉█▆▍ ▊▄▍▆▉ ▍▆▉▌▆▅▉ ▋▆▆▋▌▉▇▌▆▇▅▌▉▌▆▅▆▆ ▉▉▅▇▌▍▌▉▊▍▄█ ▆▉▇ ▍▌▊▄▍▌▍▅█▋▆▍▄▋▋▋▅▇▊▊▊▇▇█ ▆▌▆ ▌█▋▌▅▊▉ ▊▄▉▅▇█▉█▋▊▉▄▋▌ ▍▅▍▄ ▊▌▋▉█▆▋ ▄▉▅ ▊▊▍▅ ▆▉▄▊▆ ▄▄▆▅ ▅▉▋▌▆▅▇▍▆▌▋▉ ▌▋▄▉▆▇ ▆▌█ ▋▄▊█▋▅▋ ▆▍▌▄█▊▉▄ ▋█▉ ▍▅▅▇▌▅▊▇▋▄▅▄▊ ▋▇▊█▉▄ ▇█▍▉▊▇▍ ▋▅▅ ▆▄▋▋▌▇▊▆▇▆ █▌█ ▇▋▅ ▌ ▆▇▄▄▅█▋▄▄▄▊ ▉▄▌█▉▆ ▉▄ ▇▆▋█▊▇▄ ▆▉▉▄▉ ▌▉█▋█▄▅▄ ▉▄ ▊ ▌▇▄▋ ▇█▍▆▆▌ ▊▋▊█▌█▊▄▅▅▉▄█▋ ▄▉▄▄█▄██▇▉▍▅▊ ▉▋▌ ▊▆▌▋▅▋▌▇▉▊█▍▇▍▅▌▌▆▋▌█ ▍▌ ▅▇▆█▅ █ ▋▋▅▇ ▇▉▆ ▅▊▊▆▋▊▉ ▌▊ ▉▅▇▇ ▅▆▇▌▌ █▊█ ▊█▍▇▊ ▌▋▌▇▉▄ █▍▊▅ ▊▉▄ ▋▇▍ ▉▋▅▄▋▆▉█▆ ▉ ▍▌▋█▆▋ ▍▄▋ ▋▄▆▍▄▍▇▉▄ ▋▇▌▋▇▉ ▅▊▌▆▍▊▆█▄▄ ▅▊▆▅▍▍ ▊▄▍▉▍▆ ▌▄▅█▋ █▊▍▋ ▆█▆▇▊ ▍▊▅▅▉▉▆▌▍ ▇▅█▅▌▊▋▋▋▉▌▋▋▅ ▉▌▋▋▄▇▍▅ ▄▋▇▄▍ ▍▋▍▇▄▄▄▌▆ ▇▇▌▆▍█ ▋▊█ ▌▅█ ▊▆▌▌▅█▄▅▅ ▊▋ ▌▊ ▌▄▋▆▌▋▊ ▇▆ ▉▇ ▍▋█▉ ▇█▇ ▉▌▉ ▇█▅ ▉▍▉ ▄▊ ▅▊▊▄▉▅▇▍▇▊▄█▅▇ ▊█▍▇▄▉▌▊▇▆▍▅█▉▊▊▍▆ ▊▋▅▌▋ ▍▅▆▅ ▇▄▊██ ▇▍▋▊▊▉█▉▌█▇▇▄ █▊▌▇▊▋ ▋▌█▆ ▋▋▄▅▌ ▇█▊▊▋▉▌█▋ ▍▄▇▌▄▍▊ ▉▇▌▋▉▆▄ ▇▍▊ ▊▍▋▍▍▊ █▊ ▅▇▌▋▉▉▉▆▅█▊█▍▋▉▉▆▇▅ ▇▆▅█▆ ▊▄▌▌▋▋▄█ ▌▅▌ ▉▌▋▌▇▅▇▅▊▋▉▋▌█▆▋▉█▄█▄▍▉▄▉▊▋█ ▇▇▅▉▌▍▄▋ █▉▌▅▌▍▋█▅▇▄█ ▉▄█▍ ▋▋▌▉▇▋▇ ▊█▌▌▆▊▄▍▌█ █▆▄ ▊▍▉ ▄ ▅▄▍▅▉▆ ▍▇▌▅▋▄ ▅▉▇▋▆▅▊▍▅ ▉▌▄█▆▄▄ ▋█▇▌▅▋▇▆▋▅▅▅▍▉▇█▆▌▋▍▅█▌█▆ ▊▍▊▅▌▋▇▆▍▉█▋ ▌▍█▅▅▄▄▄▉▄▊▅ ▇▋▊█ ▅▍▇▉▌▊▉▌▊▄▌█ ▋▌▍▍▍▋█ ▌▆▋▍█ ▋█▋▉ ▆█▋▅▄▌▅ ▄▆▌ ▌▆▇▊▉▄▅▊▆▊▄▊▆▊▇▋▅█▍▌▌█▍▍▉▆▆▋▇▌▋▍▋▄▌▅█▊▅▍▇▅▅▄█▉▅▅▋▇▊▋▅▇▄█▇█▄▇▋▇▆▇▍▅▍▆▌▅▆▉▆▍▉▊▇▌▉▍▄▅▄▄▆▍▌▇▄ ▇▌▄▊ ▌▅▍▍▋▅▆▊▍▆▉▄▅▉ ▅▌█▅█ ▌▅▆▉ ▇▆▅▍▇▉▆█ ▇▆▍▇▋▉▊ ▉▊▆▆▅▍█▄▄█ ▊▉▊▆▇▆█▊▊▉▋ ▊▆▍▅▋▋▆▋▆▅ ▇▆▋▉▋▉▌ ▅▊▍▅ ▄█▋ ▍▊ ▆▍▄█▊▅▄▍ ▍█▇ ▄▇▅▆▆▌▆▇▆▌ ▊▉▊ ▊▉▍▉▉▉▋ ▆▆▅▉▆▋▌ █▅▆ ▋▊▇▆▌▋ ▉▋▍▆▆▇▊▋▊▇▇▌▅ ▆███▊ ▅▌▆▊▍ █▄ ▋▅▄▅▍▆▇▋▋█▌▊ ▆▉▌▉█▌▌▇▄▇ ▌▋▇▆▊▄▄▉▌ ▋█▆█▅▊▉▊▅▍▄█▌▉▌▅▄▇▆ ▌ ▋▅▄▍█ ▆▆ ▌▋ ▉▇▋▆ ▉▄▅▄▅▊▍▌▆▋█ ▍▌▄▆▉▅▉▋▋▊▄ ▊█▆▄▍▇▋▌▉▊▆▅▆█▊▄ ▍▊▇▍█▇ ▊▄▉▆▄▆▊▍▉ ▄▉ ██▊▌▄▋▉▄ █▅▋▊▋▋▋▌▄▊▄ ▇▋▊▆▌▅█▊▇█▆ ▉▄▆ ▉▌▄▄▆▌▍▌▌▄▆▌ ▇▌█▇█▉▇ ▉▊▌ ▌▅▌▊▊▄▅▊▅▉▊█▅ ▍▊▌▌▋▄▉▌ ▉▄▍▌▊▅▄▄▋▆ █▉▋▍ ▍▅▉▆▍▊▆ ▌▊▅▌▊▉▊ ▊▊▊█▄▄▆▄▍▋▍▌▅▉ █▇▅ ▌ █▍▋▊▆█ ▅▍▉▊█▋▍▄ ▊▇ █▄▊▄▉▊▋▌▅▌▆▄▉▋█▇▍▍▅▊ ▍▍ ▇▅▇▅ █▉▊▆ ▋▍▆ ▋▅▇▋▅▇▋▆▌██▅▄▇▌▆▄▋▄▌ ▍▇▉ ▊█▊▇▅▅▅▍ ▄▇ ▌▋▉▄▊▌▊▇█ ▄█▍▍ ▇▋ ▊▇▉▉▋ ▄▆▇ ▊▊▆▉▄▊ ▅▋▉█▌▆▊▆▅█▍██▉▇▄ ▋▉▇▉▉▋▊ █▆▆▉ ▇▍▇ ▇▆▉ ▋ ▇▇▍█▅ ▄▅▇▅▄ ▉▇▊▋ ▄▉▍▊▆█ ▅▇ ▄▄▅ ▉▋▆▇▌▄▊▌▋▆▍ ▅▆█ ▆█▅ ▉▉▌▍▊▋▆ ▇█▋▍▄▊▍▆▌ ▇▉▆ ▌▍▇▍▍█▍█▅█▊▆▍ ▄▍▋▉▆▆▍▍▄▄ ▇▇▊▋▄▆▊ ▆▍ ▌▍▉▅▆▉▍█▊ ▇▄ ▌▌█▄▍▋▆ ▋ ▊▅ ▊▇▋▍▄▊▆▋▌▅▉▆▊▇ ▍▉▋▉▄▆▋ ▆▊▍▅█▍ ▊▌▇▄▍▉▌▆▊▋▆▅ ▍▋▋▌▅▉▊▅▅▄█▍▊ ▋▇▇▇▋▌ ▌▉▊▉▌▉▄▊▊▌▄▇▋ ▉▇▄▉▄███▉▆▌▊▇ ▇▇▅▅▉ ▍▍▍▇▊▆▅▌▆▄▌ ▍▇▄▊▊█ ▇▊▌▆ ▍▆ ▇▆▆▌▍█ ▆▊█▉▆▅█ ▌▅▋▋▇▆▅▇▉▊▌▋▍▋ ▌▄█▇▆▍▊▉▅▇ ▇▆▇ ▄▇██▄▌▆ ▌▇ ▊▍█▍▋▌▌▊▇ ▄▍▋▇ ▊▍▅▍▅▋▆▄▇▇▅▌▄▄▅ ▆▌▍▊▍▉█▉▌▇▅▌▋█▍ ▇▆▊▋▋█▆▅ ▋▉▉▆▆▉▇▅ ▋▌▊ █▉▅▆▋▋▆▇▇▊▍▍█▉▇▄▌ ▆▇▆▊▄▊▆ ▅█ ▆▅▄█▅█ ▍▄▄█▅▍▌▍ ▉▄▌█▋▉▄▋▍█ ▉▌▇ ▉▄▇▌ ▍▄▇▉▅▇▍██▍▇█ ▍ ▍▌█ █▋▊▅ ▆█▊▇▉▅▊▍▇ ▅█▄▋▉▆▌█ ▇▇▋▌▍▆▊▊▆▄ █ ▊▇▍ ▌█▅▉█ █▄ ▍▍ ▊▍▅▇ ▉▇▋▇▋▄▍▄ ▇▌▆▇▆▍▊ ▆▅▆▇▍▅▉ ▊▉ ▍▋█ ███▄▍▌ ▌▅▇█ ▊▋▊▇▌█▉▌▆▆▉▇ ▋▌█▊▅▅▍▊▆█▍▉▉▊▍▋▇▉▇▋▇▋▉▉▊▉ ▆▅ ▅▊▋▉▌ ▄▋ ▉▊▆▊▊▆▋▆▆▋ ▄▌▆█▋█▊▌▋ ▄▍▇▍▍▉▌ ▋█▊▋█▋ █▍█▅▅▌ ▊▉▉▉ ▆▋ ▊▋ ▄▋▇▅▄▋▄▄ ▋▆▋▆▅▌ █▆▊▉▆▆ ▇▇▄▊▇ ▌▅▆█ ▇▄ ▅▆▋▌▄ ▅█▊▋ ▊█▅▅▇ ▌▋▌ ▄▇▍▋ ▉▇ █▋▊▋ ▌▆▉ ▌▉█▆▉▍▇▍█▅▅ ▌▉▊▌▆▌ ▆█▄▆▆▅█▆▊▍▇ ▅▇ █▊█▅▌▍▋▍▌▍▇ ▍▉▅▋▍▄▋ ▉▉ ▌█▇▅▆▉▇▄▄▍ ▄▄▌▅▊█▇▇▋▌█▍██▋▇▊ ▍▊▆▉▅▌▊ ▉▍▆▇ ▍▆▊▊▌▌▌ ▇▄██▆▉▋▄▊ ▄▌ ▍▌▇▌▌▇▇▋█ ▍▆▅▉▊ ▅▄▇█▆▌ ▄▊▊█▇ ▆█▇ ▋▌▅▅ ▊▊▄█▍▄ █▆ ▇▅█ ▍▅▍▌▌▄ █▇▉▇▆▋▇▆▍▉▊▌▍▍▉ ▌▄▉▌▊ ▋▅ ▆▄▍█▍▅▊▆▇█▊▆▆▉▉▋█▍▊▅▍ ▉▋█▇ ▅▌▅▄▇▍▅▇▇▄█▇▋▌▅▊ ▊▅▅▅▋▋▄▆▆▄▍▍ ▊▆ ▋▇▉▄▋▆█▆▄█ ▉▍▍█▅▇▊▅▉▉▆▇▉▆▊█▌ ▍▋▆▍▅▊▄▇▅▌▊▅ ▌▅█▅▋▊▋▋▉▄ ▍█▌ █▅▍▇▋ ▇█▆█▉█▋ ▉█▆▌▅▍▉▄ ▄ ▊▇▌▅▌▉▌▊ ▆▌ ▌▌▅▊▉▅▍ ██▆▌█▊ ▍█▅▆█▍ █▄ ▇▇▌▌▋▅▅▌▋▉▉▅▊▉▌▇▋▊▋▆ ▉▅▌ ▅▅▋▌▋▊▇ ▇▋▌▌▉▉▇▌▌▍▋▊▋▊ ▆ ▇▍ █▊▌ █▋▆▅▉ ▆▉▊▋ ▄▇█▅▇▅▌▆ ▌▄▇▄▍▌▋ ▉▍▇▅▍▋▋▇ ▅▌▌▊▉▊▇ ▆▍▊▄▌▊▆█▇█ ▇▅▅▇▇▌▉▍▉ ▊▉▌▇▊▍▆▍▇▆▉▉▇ ▉▉▋▇▇▌ ▄▄▆█ ▄▋▉▊ ▊▍▌▄▆ ▊▍▄▋█▊▍ ▄▉ ▋▍▆▌▍▄▉▉▊▍█▋▌ ██▄ ▋▊▅▇▊▍█▆▆▌ ▇▉▋▆▋▇▋▉▇▇▆▆▌▉ ▄▄▇▌ ▉▉ ▌▉▊ ▊ ▊▍▌▋▍▋█▍▉▄▊▄ ▌▇▆▅▍▇▅▄▌▉ ▌▉▇▊▉▊▋▊ ▄▌▌▅▊ ▋█▄▉ ▉▌▆ ▊▋▌▍ ▆▍▊▇▉█▇▉▌▅ ▅▇ ▇▇▅ ▌▆▍ ▍▌▅▊▋█▊ ▍▋▊▆▉▌▄ ▊█▇▊▍▇▄ ▉█▇▇█ ▊▅▊▆▇ ▍▄ ▋▌ ▄▋▉▆▅▋▊ ▊▋▆▆▇▄▊ ▍▍▉▌▍▌▇▇ ▌▇▇▌▉▆▉ ▆▇█▄▆▊▊▌▇▌▊█ ▍▋▅▄▄▉▉▋▆▋▄ ▅▍█▊▍▅ ▍▆ ▅▇▅ █▍ ▌▆▋▍▆ ▄▆▄▆▇█▊▋▇▆▇▍ ▉▆▉▆▇▅▌ ▍▋▊▇▉█▅▌ ▆ ▅▆▌ ▋▉█▆▉▄▌ ▉▍▄▆▌ ▋▍▆▌▌▍▋█▄▍▍ ▉█▌ █▌▆▊▇▉▄█▉█▄ ▄▍▆█▊▌▍█▋▊▊▆ ▇▍▇█▋▋▋ ▊▌▋ ▊▉▍▇▇ ▊▋▋ ▇▇ ▋▋▌▍█▍█▅▍▅▊▅▌ ▊▍▋▄▄ ▇▊▋ ▌▅▆▆▊▉▆█▇▋▄▇▆ █▉▅▇▍▋▆ ▊▊ ▋▅▉▋▇█▊▉▊█▊▊▍▉▉▊▌█▅▊▊▇ ▊▌▊▅ ▇▉▋▄▉▇▅▅▇▅▋▍▅▌▌▋▅▊▊▉█▍▉ ▊▅▇▅▍▍█▉▊▄▅▄▄▌ ▉▌▆▉▋▅▇▌▍▇▆▌▌▆▍▅▄▋▇▄ ▄▍▆▆▅▆▍▊▅▌▍▌▋▌▉▋▇▄ ▊▋▆▋ ▅▄▌▅▄ ▆▉▉▄█▊ ▄▌ ▉▊▄ ▇▉▆▊▋▄▇█▅▄▊ ▆▋▍▄▊▋▆▋▅ █▄▅▋▅▊▋▉▅ ▊▄▄ ▄▇▋▄▉▉▍▄▊▇▍▄▉▆▋▅▇▄▆▉▋█▉▆▇ █▉▅▇▌▆█▍▊ ▆▇▆▍▄▆▇▋▉ ▄▄▅▅▍ ▌▊ ▅▅▇▉▆ ▉▌ █▋▄ ▄▌▋▌▅▉ ▅▍ ▄▇▍▇▄▄ ▆▄▍▉▆▆▇ ▊▇ ▊▊▅▄█▇▊▉ ▋▆▍▅▉▍ ▋▍▉ ▍▅▌█▋▋▅▆▆▅▉▇▆ █▋██▅ ▅▍█▋▉▇▋▅▄ ▄▍ ▋▅▆ ▉▊▆▅▋▌ ▍▍▍▋▅▅▄▆▉▌▆▋▄ ▋▊▍▅▆▉▉ ▊▉▊▅▇▉▄ ▇▋ ▉▅▉▋▊▆▅▍▊▉█▇▉▊▆▋▅▋▇▊ ▉▉ ▄▉▆▅▇▆▌█▉▅▋▉ ▍▊▋▄█▉█▄█▊ ▅▅▅▍█▇ ▅▌▋▋▆▄▅ ▍█ █▍▍ ▅▆▍▆ ▊▄▊▉▄ ▅▇▋▅▉▄ ▇▇▄▄▇▌▉ ▆▋▇▍▆▍ ▉▌ ▉▍▊ █▌▆▋▍▉▅ ▇▌▇▍▉▍▉▊▄▌▉██▉▅▉▍▆▍▊▋▋▄▆▊▇▅▊▊ ▋▊██▌▄ ▍▅▆▆▇█▊▌▋▆▄ █▄▇▇▇█▍▍▇▉▌▅▇▅▌▌▄▇▅▄▄▉▉▅█▊▄▉▆▅▌▆▍▉▌▄▇▇ ▇▅▉███ ▅▄▍▄▉▉ ▉▉▉▅▄▌ ▉▆▌▋██▋▆ ▋▉▅▌▆▌▉▊▍▄▉▉▅ ▅▍▇ ▋▄▄▋▉▆ ▊▋█▄█▄█▊▋▄▋▆▊▊▌▅▋▊▍▍▊▉▊▉▋█▆█▄▇█▄▋█▌█▇▆█▉▆▇▇█▋▍█▇▉▉▆▇▋▊▊▅▅▍▆▍▋▍▊▇▊▋█▅▋█▋█▆█▊▇▆▅▋▌▄▍▍█ ▅▄▆▄▌▊▇█▄█▋▆▊▍▌ ▄█▆▊▅▋▋ ▅▇ ▍▆▍▍▅█ ▍▌▄▅▅▉██▇▄ ▄▇█ ▋▊█▊▆▆▋ █▌ ▇▌▊▇▌▍▅▉▋▇▇▊█▍▆█▋▇▉ ▄▌▉▄█ ▆▇▊ ▉▊▋▊ ▇▍▅ █ ▅▉▌ ▊▉▆▋▇▋ ▄▌▆▋▅▅ █▍▆ ▇▍▌▌ ▆▄▉▆▉▍▍▋▍▊ ▇█ ▄▍▍▊ ▍▋▅▆▇██▄▍ ▇█▆▊▅▊▆▊▇▇▋▅▇▋▋ ▇▍▄▆▍▆▄▆▉ ▆▆▊▋▊█▋ ▊█▇▅▉▋ ▄▌▄▅▌▋▊▆▉▊▄▇▌▇▇▅▅▋ ▆▆ ▋▇▌▍█▄▌▉▄▋▍▉▆ ▊▍▅ ▆▌▇▇ ▉▆▋▊▊ █▋ ▅██ ▆▊▌▆▍▊▄▄▊ ▋▌ ▅▅▋ ▊█▄▆█▆▍▆▇▍▊▉▊▅ ▇▄▆▋▅▊█▇▊▄▋▆▄▆▅ ▉▉█▅▍ ▄▅▇▉▊▅█▍▆▍▊█▄▍▊▊▉▄ ▍▉▇▆▌▄█▆▅▋▅▋█ ▅▇▊▅ ▆▊▋▄▍ ▅█▄ ▊▇▆▆▅▉▉▄█ █▉ ▊▋▆▇▄█▄▋▌▉ ▉█▄█ ▋▇▄▋▄ ▄█ ▌▅▅▊▆▍▍▆▉▊▍▊▌▍ █▍▆▊▊▌█ ▊▉ ▅▍▆▋ █▅▉▆██▅▌▉ ▅▊▌█▅▉▆ ▍▉▌▆█ ▇▇▋▅▇▆▄ ▅▊▄ ▋▄▅ ▉▄▄▇▉ ▆▊▄▌▌▉▌ ▅▋▍▇▉▉▄▍ ▇▅▋▌▅▄▆▅▋▍ ▄▍ ▋▆▉ █▆▉▄▉▉██▉▅▆▆█▄▋▄ █▊▄▌█ ▆▆▅ █▄▉▇▍ ▋▊▄▌▅█ ▅▄█ ▉█▍▊▆▊ ▌▌▋▄▍▌▉ ▆▋▇▅▆ ▍▇▉▉▄▄▉▋█▆▇ ▆▊▊▄▄▅▊▍▌▄▉▇▊ ▆██▄▆▇ ▆█▍▆▅▊▍▍█ ▌▄▉▅ ▊██▇ ▆▌▉▅▅█▇▅█▄▍▇▉ ▊█▉▅ ▍▌▇██▇▅▅▆▄ ▋█▇▊▅ ▋▄ ▅▆▊ ▅▅▄▊ ▄▋▉▍▊ ▌▆▉▍▄▊▊▅▍▋██▍▍ █▊▊▄ ▇▋▉██ ▅▍▍ ▋▌▊▇▋ ▋▅█▇▌▅▉▇▍▉▉▅ ▇▌▅▆▆▊▍▇▋▆ ▅▅▇▋█▄▅▌▌█▉ ▄▊▇█▉▉ █▅▊ ▇▆▍▇▅▇ ▋▋▉▅▋▄▍▉▍▇▍▄▋█▆▄▊ ▄▉▆▅▌▋ ▊▄█▅▄▌▍▅▄ ▊▄▇▇▇▊ ▋▉▄▅ █▅▉▉▋ ▋█▆▊▌▌ ▌▅▍▄▍▅▆ ▌▍▋▄▆▍█▊▅ ▌▋▄ ▇▍▅ ▄█▉▄█▋█▉▉▇▇▅▋▌ ▇ ▇▇█▉▋▅ ▇▇▍▊ ▅▄▊▊ ▉▉▉▌▊▅▉█▍ ▊██▇ ▆▋▌ ▋▊▌▋█▇▉ ▌▆▄▋ ▄▊▇▇▋ ▌▌▍▋▋ ▇▄ ▋▌▍█▌▄▆▋▅ ▊▄▌█▆▌▆▅▄▋▉ ▊█ ▉▋▉ ▇▋▊█ ▆▍▅█▉ ▄▌█▌▋▋▍▆▉▇▊▉▌█ ▍▊▌▊▄▋ █▇▇▅▍▉▆▊▆▍▊▍█ ▍▅▄ ▋▆▇▍▉▇ ▌▅ ▅▍ █▆▋▌▇▇▄▊▄▋▉▇▍▅█ ▇▍▉ ▊▊▄ ▍▆▌▌▊▆▅ ▆▄ █▅ ▍▄▄▍▍█▊▇▌▌▌███ ▇▅ ▉▆▇▆ █▉ ▍█▄▌▍▋▄ ▍▇ ▄▆▇ █▍▅█▇▉ ▍▇▋▆▅▌ ██▆ ▅▉ ▍▊▅▋█ ▄▊▍▅█ ▌▆▍█▌▆▄ ▍█▄▄▍▌▆▄▋▋▇▅▇ ██▍▇█▇▄▊▍▌██▅▄ ▅▅▌ ▋▆▉▇ █▌▄▉▄▌▌▊▋▇ ▆▌▋▄▇▇▊▄ █▆█▄▉▉▊▋ ▋▅▍▍ ▍▄ ▉▄▍ ▊▌▌ ▇█▅▄ ▆█ ▆▊▇▄▋▋▅▊▋ ▇▌█▆▉▍ ▇▄▋▊ ▋▇▅▆▋▄▋█ ▌▋▍ ▄█▋▅▇▍▇ ▋▇▆▋▇▇▆▅▉▇▇▌▍ █▇▇█▄▄ █▊▄▄ ▆▇▍▋▇ █▊▅ ▅▍▄ ▇▇█▄▄▌▄▉▉▇▅▍▋ ▉▊▅▇▄▆ ▉▊▋▇ ▍▇█▉▌ ▋▌▆ ▅▍▍ ▅▄▍▇▄▆▇▄█▊▅█▅▆▊▆ ▇▄▍ ▇▇▊▍ █▋▉▆▅▋ ▊▅▄▍▋█▊ ▅▍▄▍▅▉▆▋▌▌▆ ▇▆█ ▉▅▅ ▉▊▉▄█▊█▍▆▇▌█ ▅▉▇ ▌▄▅▇▄▍ ▅▋▇▆ ▊▌▇▍▌▇▅▄▌ ▇▅▌▉ ▋▇▉ ▄▍▆█▆▋▇▌ ▉▆ ▇▅ ▄▅▇▌▅▋▋▋▅ ▍▇▍▊█▆▅ ▆▍██ ▄▉▍ ▆▉▍▄▍▉██▊ ▍▍ ▍▊▄ ▆▋▋▍ ▊█▄▉▆▋▌█▆ ▊▉▋▍▅▉▅▅▇▅▋ ▌▆▋█▋▄▋ █▉▄▍▅▊█ █▄▍▊▆▆ ▆▉▆▌▌▌▄▋ ██▌ ▍▉▄▄▇▋ ▉▌▆▄▇ ▌▅▊ █▅█▋█▆▉ ▄▍ █▇ ▍▌▉▌ ▍▍▍ ▄▆▄▉ ▉█▄▇▇▌▍ ▆▌▊▄▅█▋▉ ▄▄ ▆▇▌ ▊▉▋▇▌▍▍▆▄▇▋ ▍▊▌▉▄ ▋▄▍▊▄▋▊ ▋▌▋▅▅█▌▍▌▌▅▍ ▄▊▊▉▇▌ ▋▅█ ▌▅▉▊▆▉ ▇▍▆▊▋▍▍▄ ▉▅ ▌▋▌▆█ ▍▄█▌▉▇▄ ▉▉▌▇▉▅▌▋▅█▍▌▉▄▊ ▆▇▄▄▊▅██ ▄▌▍▄▍ ▅▄ ▋▋▅▆▇▊▌█ ▇▌▅▋▍▇▌▄▊▇▆▌▅▌█ ▋▍▅▅▋█▊▄ ▍▊▅▋▆▊▇▊ ▍▇▌ ▊▆█ ▇█▄▆▌▆▋▊▆▌ ▍▆█▇▆▉▄▍▋▋▆▅▌▊▊▇▇▊▇█▆ ▅▆▆ ▉▊▄▉▉▇▇▆▇▆▋▍▆▄ █▇▇ ▌▍▉ ▆▆▊█▊▉▍▄ ▇▌ ▊▌▄▅▋▉▉█▇▇▇▍ ▌▊▍▊▅▇▆▍▄▇▅▊▄▇▄▊▍▄█▇▍█ ▊▌▍▄▆ ▌▌▌█ ▉▅▇█ ▄█ ▍█▉▋▇▋▆▊▇▅ █▉▍▉▇▍▄▍▇▍ ▄▊▅▄ █▅▆▌▉▉▋▌▄▅▍▊▌▉▊▊█▆ ▉▌▌▇▍▇▅▊▅▇▄▄▇▇▇ █▇▆▉▇▅▌█▉█▋▉▋▄ ▉▇▊▉ ▌▅▆▆ ▅▅▍▋ ▌█▇ ▋▄▋▊▇▇▅▇▅▄▄▋▇ ▆▌ ▆▋█▊▉▄██▉ ▅▄▆ ▆▄▊▉▆█▅▋ █▍▌█▊▇▍▉█ ▋▇▍▄▆▍▅ ▇▆▌▇▇ ▉▆█▆▅ ▍▇█▉▌▇▅ ██▆ ▌▍▍▆▅▍▄▋▌▄▅▍▅▉ ▆▄▉ ▌█ ▌▊▇▅██▊▄ ▍ ▍▄▋▉▌▊▆ ▇▆ ▊▆█ ▉▉ ▊▅▍▄▅▍ ▆▌▋ ▇▄ ▉▉ █▌█▋█▌ ▄▌▋ ▇▊▄█ ▆▌▋▍ ▊▍▇ ▅▋▍ ▉██▅ ▊▄▆██▇▅▋▉▋▌▋▊ ▉▊▌ ▌▇ ▍▊▊█▄▌▋ ▅▆█▋▌▍▇▄▊▇▋█▍▅▋ ▇▉▆ ▄▄▍▇▋█▌▄▅█▋ █▆▄▇▊▇▅▊▍▋▋█▋▍▅ ▍▇▍▅▆▇▅▅▄▌▌▋█▍▍▋▌▍▆▅▅▋▄▆▌▊▊▉ ▉▇▉▅▇▊▉█▅▄▆█▇ ▅▍▉▌▉▊ ▋▄▍ ▍▉▉ ▋▄ ▅▆▋ ▇▊▊▉▉▋▆▊▇▌▇█▊▋▊▋▌▄▋▉ ▇▆▍▌█▊▇ ▄▊▊▉ ▇▅▇▋ ▉▋▋ ▉▆▇▅▆ ▌▇ ▊▆▅ ▌▋ ▍▄█ ▋▇▄▋▋▅▍ ▇▆ ▍▋▆▄▇▆▄▄ ▍▄█ █▅▆▄▄▉▌▇▅ ▅▍▋▉▍▇▄ ▊▌▄▊▉▍▄ ▆█▊▇▆▍ ▅▋ ▋▌▉ ▍▉▅▄▊ ▆▇ ▊▅▅ ▄▄▊▅▍▆▇▅▍ █▍▉ ▅▍▉█▅▉▇ ▄▇▅ ▍▄▍▋▍ ▊▆▋▆▌▋▍ ▅█ ▄▆▇▋▌▉▋▇▉██▅▉ ▆▅ ▋▇▅▋▌▄▊▆▅▇▋▍▆ ▅▄▋▅▋▄▇▍▆▉▆▋█▉█ █ ▇▋▅▄▊▉▉▉ ▆▇▇▇▄▅█▄▊▉▅ ▉ ▊▇▇ █▌▅▉▋▍▍█ ▉▆▋▌▉▊▍▉▊▉ ▅▌█▊▄▍▄▅▅▅▌█▍▌▍█▊▅█▍ ▋▊▆ ▍▌▅▆▇▌█▋▍█ ▍██▍▋▌▆▉ ▊▌▌ ▉▄▆▌▌ ▅▍ ▋▄▊▋ ▉▊▉▌▌▊▊▆▊█▌▍▍ ██▉▌ ▇▆█▅ ▌▇▇ ▌▌ ██▋█▍▍▌▅▍▌ ▇▍▍▊▌▇▅█▋▄▇█ ▇▉▄▇ ▌▅▊▊▇▅▍▍▅▆█▅█▍▅ ▋▉ ▊▅▍ █▊▊▋▋▌▊▋▉▍▄▆█▉▅▊▉ ▆▉ ▆▄▄█▉ ▍▍▄ ▋▌ ▉▍▊█▅▍▅▉▌▍ █▉▅█▆▅▆▋▌ ▌▉▆▆▅▌▍▇▆ ▄▌ ▋▌▌▍▍ ▄▇▋▆▊▍▅▋ ▆▄ ▋▌ ▊▆█▊ ▅▅▍ ▇▇▊▉▉▆▉▍█▍▆▊▊▆█▅▋█▉▆▌██▄▄▅▄▋▄▊▆▉▊▌▉▊▇▌▆▄▄▄▊ ▋▍█ ▄▉▅▄▊ ▅▊ ▍▄▍ ▌▉█▇▅▌ ▌▋▋▊▍▋▋ ▋▋▍▆ ▉▆▌▋▊▄▊▄█▉▍▍▄▌ ▊▋▉▋ ▋█▌▌▆▅ ▍▄▇█▆▌█ ▆▋▍▅ ▋▆▆▅▉▌ ▇▊▆▍▋▋▌▆▄▅▄▍ ██▊▍▋▌▊▋ ▅▌▊ ▅▋▆▄▊▍▉▇▉▆▊▉▅▄ ▆▅▇█▆ ▆▋▇▆▆▉█▋▉█▉▋ ▊█▄ ▄▅▉▊▅▇█▋▉ ▋▌▌▉▍█▊▇▆▍▉▌ ▌█▍ ▉▅ ▆▄▍ ▍▉▍ ▄▄ ▍▄▉▊▇▌▋ ▄▌▉█▊▍ ▋▄▋ ▅█▋▍▅▅ ▋▉▅▍▄█▌ ▉▅▍▌█▍█▄▊ ▍▄▋▌▄▌▉▌▆█▍ ▅▋▄▅ ▄▌▋▆▄██ ▌▇▅▆█▉▋█▋▉▊█▉▋ ▅▇▅▍▄▇ ▊▊█▊ ▋▅▋▋▉▆▆▄▆▉▆█▊▋█▄▄▋ ▊█▉▆▉█▌▉ ▊▇▄▅▋▅▌▉▉▇▋▍▌▉▇▊▆▄█▋▊▇ █▍▆ ▌▍▄▅█▉ ▆▌▄▉ ▌▄▄▋ ▄▉▅▆ ▅▆▄ ▍▄▄▌▄█▍▅ ▍▆▌▄▍▌▆▋ ▇▄▋▉▄▌▄▉▉▆ ▆█▆█ ▅▇▊▆▍▌▄ ▆█▅▆ ▋▅▇▄▍▅▍ ▌▋▌▆█▋▍▅▄▉▇▋▆ ▉▌█▅██▊ ▌▇▋ ▄▊▊▆▇▊▊█▊▄▇▊█▊▍▍▌▆▌▋▉▍▊▌▋▍▊▆▉▉ █▄█▍▋▊▌▉▊█ █▄▊▊ ▌▍▇▌▅ ▉▉█ ▄▉▆▅▍▋██ ▄█▌ ▄▊▇▅▉▌▇ ▅▇ ▉█▇█▇▄▄▌▉ ▋▄▄▄▍▍▍ ▋▊▊▅▅▆▇ ▄▅▉▄▉▋▌▄ ▌▇ ▅▌▊ ▆▌▋▍ ▊ ▉▌▆▇▌▄▊ ▇▆ ▋▅▊▄ ▅▇▄ ▇▆▋▍▉▄▊▋ ▅▋▌▅▇▊▍ ▌▋ █▉▇▄▊▇█▇ ▅▉ ▄▌▆▇▍▉▉▍▉▄▍ ▅▉▆▉▅▅▆▉▍▉▌▆▌ ▉▊▍▄▊ ▍▆▉ ▇█▉▌▍ █▌▊▌▋▇▌▌▆▄▅██▆▆▌▅▄ ▆▉▇▋▇▉▉ ▆▉ ▋▇ ▌▄▊▋ ▆▋█▍▅▋█ █▄ ▇▉▌▉▆ ▊▄▋▅█▇ ▆▊▊█▅▇▉▋ ▄██▄█▋▅▉▌▍▄▆▋ ▅▆█▋▊▍▍▍▋▉ ▊▉▇█▊ ▄▍▌▌▆▊▇▉▌ ▉█▋ ▄▅▆ ▌ ▅▅▉▅▇▆▋█ ▇▉▌▇▌ ▌█▅▇▉▉▌▅▆▄▄▋▋▊▅▆ ▆▍▋█▋▉ █▋▇▇▋▆ ▇█▊▋ ▄▊▍▅▆▇█▊▇▊
Delete -vpfix from studiomdl.exe
Has unwanted sideeffects
StudioMDL: Fix models with more than 65k vertices breaking up
Merged some changes from CS:GO's studiomdl
Add support for BONE_HAS_SAVEFRAME_ROT32
Fixed animations from newer mdl versions not playing in GMod
Move default console position to the left a bit
So it does not obstruct certain UI elements by default
Fix "nav_blocked" event not being registered
Prevent crashes to do with removal of world entity (another method)
Adjust how we disable self-unblocking for Lua-blocked navmeshes
Adds NAV_MESH_BLOCKED_LUA
Navmesh auto-blocking checks now run on map start/cleanup
Makes certain code that was meant to run on map cleanup to actually run now.
Also updates blocked status of nav areas on map load
TTT: fix ragdoll not being created if ttt_dyingshot is on
Community contribution
FF & NeoTokyo spawnpoints + Map Category (Community Contribution)
Rework how spawnpoint entities are added in base gamemode
One file now, not 25 duplicated files.
Minor code cleanups
Linux: Do not ExecuteToPriority if there are no jobs
This addresses slowdowns on Linux (srcds?) to do with the filesystem
garrysmod-issues/issues/5932
+1 the month in the server browser last played
Iterate over Server Browser Last Played marker
Also localize the string
Prevent crashes to do with removal of world entity (another method)
Iterate over Server Browser Last Played marker
Also localize the string
Disable 24BPP optimization for .png/jpeg loader
This may or may not be causing issues for random players sometimes maybe?!?!?! when joining servers
Delete -vpfix from studiomdl.exe
Has unwanted sideeffects
StudioMDL: Fix models with more than 65k vertices breaking up
Merged some changes from CS:GO's studiomdl
Add support for BONE_HAS_SAVEFRAME_ROT32
Fixed animations from newer mdl versions not playing in GMod
Move default console position to the left a bit
So it does not obstruct certain UI elements by default
Fix "nav_blocked" event not being registered
+1 the month in the server browser last played
FF & NeoTokyo spawnpoints + Map Category (Community Contribution)
Rework how spawnpoint entities are added in base gamemode
One file now, not 25 duplicated files.
Minor code cleanups
Linux: Do not ExecuteToPriority if there are no jobs
This addresses slowdowns on Linux (srcds?) to do with the filesystem
garrysmod-issues/issues/5932
TTT: fix ragdoll not being created if ttt_dyingshot is on
Community contribution
Adjust how we disable self-unblocking for Lua-blocked navmeshes
Adds NAV_MESH_BLOCKED_LUA
Navmesh auto-blocking checks now run on map start/cleanup
Makes certain code that was meant to run on map cleanup to actually run now.
Also updates blocked status of nav areas on map load
More sensible defaults for 360 controller bindings
$eyeposition and $illumposition are now affected by $scale
Block gui/input.SetCursorPos while main menu is open
Fixed regression with nav_update_blocked concommand
Make gui.HideGameUI work more like the hook
Instead of disabling the function entirely, holding shift would disable its functionality, and it displays a message on how to bypass it, if it blocks the main menu one too many times.
Temporarily disable 24BPP optimization for .png/.jpeg loader
Fixed regression with nav_update_blocked concommand
Make gui.HideGameUI work more like the hook
Instead of disabling the function entirely, holding shift would disable its functionality, and it displays a message on how to bypass it, if it blocks the main menu one too many times.
More sensible defaults for 360 controller bindings
$eyeposition and $illumposition are now affected by $scale
Block gui/input.SetCursorPos while main menu is open
Disable gui.HideGameUI, block cancelselect
VRAD: -dumppropmaps also dumps the lightmaps as .pfm
Also dump files to /sp_lightmaps/ instead of base dir
Don't display alpha channel for non alpha formats (RGB888, etc)
This is for mat_texture_list 1
Use non alpha format for images without alpha (.png/.jpeg loader)
This should hopefully save some memory
Resave Post Processing icons to not have alpha channel
Since they don't use alpha anyway
Fixed duplicated constraints making Lua errors sometimes
Resolve memory alignment issues with 24bit images (.pngs, etc.)
TF2 new map icons/category + adjust some dark ones
Also fill the texture with white color if freeimage fails
This is for .png image loading
Adjust VRAD's -dumppropmaps TGA output to be correct
Adjust the tga texture to be representative of what is written to PPL files, fixing out of color range texture bugs.
Restore gui.HideGameUI for menu state
VRAD displays lighting mode in the log (HDR vs SDR)
VRAD static prop lighting HDR related changes
Only output .tga files for LDR compiles
Only output .pfm files for HDR compiles
Compile HDR .ppl files, without overwriting the LDR ones
Swap-in HDR static prop lightmaps when HDR lighting is in use
Fixed impaled NPCs not appearing in the kill feed
Pull requests
* Prevent certain addons creating Lua errors after new changes to do with Lua auto refresh handling in the spawnmenu
* Added missing localization string for German langauge in TTT
* Reduced net.WritePlayer bitcount based on server's maxplayers
Added sv_max_userinfo_rate
This is aimed at preventing malicious clients eating server CPU. It is unlikely server owners would need to touch this cvar, but just in case its there.
More strict application of GMODSandbox GDClass in Hammer
So `point_spotlight` doesn't have useless keyvalues on it.
Added "Last played date" for each server in the server browser
Replace usage of "devshots_screenshot" with "screenshot"
Add "killserver" to concommand blacklist
Correct UTF8<->UTF16 conversion for close caption function & hook
Try to resolve issues caused by sv_max_userinfo_rate for extreme cases
gmad.exe - do not pause when launched through existing cmd.exe (Partially Community Contrib)
Make "force open main menu" warning an informational one (Community Contrib)
Also make it use a localization string
RPG entering water does not slow down
Also if the RPG missile somehow reaches speed close to 0, explode (before required exactly zero)
Don't display "Vehicle X has invalid wheel attachment" for airboat
Use localization strings for Legal tab in Options
Also moved all gmod-specific strings to garrysmod_english.txt, from gameui_english.txt
Code cleanup
Refine sv_max_userinfo_rate further
Hopefully this fixes issues on map load
"Start Disabled" spawnflag for env_projectedtexture
The "Enabled" spawnflag makes no sense as the entity is always enabled on creation across all SourceSDK2013 games according to the source code.
Restore missing options in env_projectedtexture in Hammer
Also rearranged useful options to the top, added browse texture button to the texture keyvalue
env_projectedtexture Toggle input
Added ProjectedTexture:Get/SetNoCull()
Mount folder addons before Workshop system
Filter for preset list
https://files.facepunch.com/rubat/2024/October10-647-CheeryLunamoth.gif
Called GM:PlayerAuthed outside of player prediction (so curtime is valid)
Effectively makes the hook run a bit sooner within the same frame/tick it used to.
Fixed Player:UniqueID returning nothing before InitSpawn
Fallback to garrysmod.ver for when Steam is not available to get BRANCH
Pull requests
* Prevent certain addons creating Lua errors after new changes to do with Lua auto refresh handling in the spawnmenu
* Added missing localization string for German langauge in TTT
* Reduced net.WritePlayer bitcount based on server's maxplayers
Restore gui.HideGameUI for menu state
VRAD displays lighting mode in the log (HDR vs SDR)
VRAD static prop lighting HDR related changes
Only output .tga files for LDR compiles
Only output .pfm files for HDR compiles
Compile HDR .ppl files, without overwriting the LDR ones
Swap-in HDR static prop lightmaps when HDR lighting is in use
Fixed impaled NPCs not appearing in the kill feed
TF2 new map icons/category + adjust some dark ones
Also fill the texture with white color if freeimage fails
This is for .png image loading
Adjust VRAD's -dumppropmaps TGA output to be correct
Adjust the tga texture to be representative of what is written to PPL files, fixing out of color range texture bugs.
Fixed duplicated constraints making Lua errors sometimes
Resolve memory alignment issues with 24bit images (.pngs, etc.)
Filter for preset list
https://files.facepunch.com/rubat/2024/October10-647-CheeryLunamoth.gif
Called GM:PlayerAuthed outside of player prediction (so curtime is valid)
Effectively makes the hook run a bit sooner within the same frame/tick it used to.
Fixed Player:UniqueID returning nothing before InitSpawn
Fallback to garrysmod.ver for when Steam is not available to get BRANCH
Disable gui.HideGameUI, block cancelselect
VRAD: -dumppropmaps also dumps the lightmaps as .pfm
Also dump files to /sp_lightmaps/ instead of base dir
Don't display alpha channel for non alpha formats (RGB888, etc)
This is for mat_texture_list 1
Use non alpha format for images without alpha (.png/.jpeg loader)
This should hopefully save some memory
Resave Post Processing icons to not have alpha channel
Since they don't use alpha anyway
Bump `cvarlist` buffers from 128 to 1024
Use the #classname for Sandbox editors and Bouncy BALL
Localize stuff added by game_hl2.lua (Partially Community Contribution)
Fixed a crash to do with teleporting constrained entities
Removed unused variables in Problems panels
Pull Requests
* Use localization strings for GMod-specific keyboard settings
* TTT: Updated Turkish localization
* Use 4 number overload of surface.SetDrawColor in base game for performance
Tooltips for vehicles in spawnmenu akin to those for SWEPs, SENTs
Resistance turrets only set the 2 valid skins (was trying to use 4)
Localize NPC and Vehicle spawnmenu tab entries
Added Resistance Turrets to spawnmenu if Episode 2 is mounted
Adjust "Prison Guard" localization strings
Also remove unintentional changes
Fixed wrong translation string used in recent changes (oopsie)
Fixed a few more potential crashing issues
Fix a lag issue to do with spamming certain packets to the server from client
Merged ghostanim.mdl and blackout.mdl
Instead of doing a hack for Episode 1, just merge all these models from all the half-life 2 games, and including portal 1
Episodic Poison Zombie model with fixed animation events
Advisor episodic model hack
The models are too different to be merged, so we swap the ep2 one in, on spawn
Episodic combine_intmonitor props with extra skin
gmad.exe allows .vtx files again
Try writing current git branch to garrysmod.ver
Added color input/kv for `func_water_analog`
Episodic headcrab models
They have ceiling animations for ep1 + lamarr merged model
Fix missing Ladder.WoodStepRight/Left soundscripts (ep2)
Merged gman model
Remove missing skins from certain PHX props
concrete_barrier00.mdl
concrete_barrier01.mdl
box_torpedo.mdl
box_amraam.mdl
Minor code cleanup
Jalopy model with adjusted correct suspension travel
func_smokevolume removes particles when dormant
Always enable loading screen for the `map` concommand
Mount floating .GMA files before fetching info about subscriptions
So they load in time if launching the game with +map
Don't try to enable loading screen on linux srcds (compile fix)
Restore some more HL2-specific gamerules behaviors
sk_plr_health_drop_time
sk_plr_grenade_drop_time
sv_robust_explosions
Entities that block radius damage, don't block it on themselves
Do not hide servers with OOB data, clamp the data
Do not hide the server from master server if sv_lan is 1
This causes LAN servers to be invisible to the LAN tab in the server browser, which is a regression.
Mention `hide_server` convar in sv_lan's description.
Fixed a Linux crash with sv_showlagcompensation (hopefully, most likely)
Fixed Entity:ManipulateBoneJiggle type `2` non functioning
Mention valid sample rates in "Invalid sample rate X for sound Y" warning
Unblock 'mp_flashlight' in menu state
Autorefresh weapons in spawnmenu
Changing weapon info (including adding a new weapon) will update the weapon in spawnmenu automatically.
Remove respawn_entities concommand
We have gmod_admin_cleanup
Pull Requests
Fixed Lua error in TTT introduced by a previous PR
Improved TTT's Spanish localization
Micro optimization for GWEN.CreateTextureBorder and related functions
Only drop physics gun held props from Lua
Episodic models for Combine Dropship and Mossman
They should contain all animations for all 3 games.
Mount folder addons before Workshop system
Refine sv_max_userinfo_rate further
Hopefully this fixes issues on map load
"Start Disabled" spawnflag for env_projectedtexture
The "Enabled" spawnflag makes no sense as the entity is always enabled on creation across all SourceSDK2013 games according to the source code.
Restore missing options in env_projectedtexture in Hammer
Also rearranged useful options to the top, added browse texture button to the texture keyvalue
env_projectedtexture Toggle input
Added ProjectedTexture:Get/SetNoCull()
Reduce saverestore buffer to 12M to match x86-64
Don't display "Vehicle X has invalid wheel attachment" for airboat
Use localization strings for Legal tab in Options
Also moved all gmod-specific strings to garrysmod_english.txt, from gameui_english.txt
Code cleanup
Display a message when force exiting due to OOM issue
Update .gitignore
Reduce .sav buffer down to 12M (from16) to fix a crash
gmad.exe - do not pause when launched through existing cmd.exe (Partially Community Contrib)
Make "force open main menu" warning an informational one (Community Contrib)
Also make it use a localization string
RPG entering water does not slow down
Also if the RPG missile somehow reaches speed close to 0, explode (before required exactly zero)
Player:StripWeapons drops weapons before removing them
This mimics behavior of Player:StripWeapon()
Added massCenterOveride for certain physics init functions
PhysicsInit
PhysicsInitMultiConvex
PhysicsInitConvex
PhysicsFromMesh
PhysicsInitBox
PhysModelCreateBox doesnt reset solid parameters
Groundwork for PE changes
Particle browser with previews for Particle Editor
https://files.facepunch.com/rubat/2024/September16-554-RoughAsiansmallclawedotter.png
Case sensitive include (Linux compile fix)
Added hide_server cvar, sv_lan 1 will hide the server too
Load particle editor first in -tools mode
Fixed non left clicks in particle previews breaking the controls
Prevent errors about missing materials in particle editor
Improved particle properties panel
https://files.facepunch.com/rubat/2024/September17-559-BestAnt.png
Improve tools scrollbar styling
Fixed a typo in the name of NPC:SetIdealSequence
Fixed ENT:GetPreferredCarryAngles for `ai` ents not being called
Added "use local space" to "Position Within Box Random" particle init
Replace missing .png/.jpg image data with white color
This would happen when a Material()'d .png file goes missing. It used to be undefined behavior.
Apply the fix for Panel.Exec on SetHTML'd panels
This is probably wasn't affecting this branch, but still match the code
Run render.UpdateRefractTexture during halo rendering
Fixes garrysmod-issues/issues/6000
Delete constraints.lua
Unused file
Added sbox_maxconstraints and sbox_maxropeconstraints
Both default at 1000, sbox_maxconstraints is for non rope constraints only, not ALL of them.
Nocollide is considered a non rope constraint now for the sake of limits.
Also fixed a bug where duplicated constraints would not be able to be cleaned up via Utilities > Admin or User Cleanup
player.CreateNextBot sets the bot name by player_activate event
Fixes for HL1 barnacle
Added SetTarget1-4 to logic_choreographed_scene/scene_entity
Pull Request: Search bar in icon editor + copy to clipboard
Pull Request: TTT traitor button fixes
Fixed CNPC_ControllerZapBall not doing damage
Consistent returns from Sandbox tool Make* functions
Minor clean ups in constraint library
Bump max save game size to 16M (from 3)
This is Source's save system, for level transitions
Implement GetPreferredCarryAngles for `ai` type SENTs
Disable -nulldevice
Added NPC:SetIdealSequence
Fix undoing nocollide constraint not restoring collisions
Adds `disable_on_remove` keyvalue to `logic_collision_pair`
Adds 5th argument to constraint.Nocollide - disableOnRemove
Fixed duplicated nocollides not being cleaned up via No-Collides cleanup option
Merged Pull Requests
TTT: Minor updates to Turkish translations
Optimized SortedPairs further
Added properties.Remove( name )
Added surface.GetPanelPaintState
returns a table with the following keys:
* translate_x
* translate_y
* scissor_left
* scissor_top
* scissor_right
* scissor_bottom
* scissor_enabled
Replace usage of "devshots_screenshot" with "screenshot"
Add "killserver" to concommand blacklist
Correct UTF8<->UTF16 conversion for close caption function & hook
Try to resolve issues caused by sv_max_userinfo_rate for extreme cases