I need some help installing an OTA - HTC Desire S

Hi there, i have a non rooted desire s with s-on my rom number is 1.36.415.6 there is a small OTA for this rom that updates it to 1.47.415.1 for some reason every time i search for the update my phone says that there are no updates for your phone.
i have the update as a .zip file so what do i do to install it?

is your phone rooted with clockworkmod recovery? If so you can boot into recovery and select install zip from sd card. Browse to the file and install. You can boot into recovery through rom manager.
http://androidandme.com/2010/05/news/how-to-manually-install-android-2-2-on-your-nexus-one/ Try this link if you haven't got root.

dan-fish said:
is your phone rooted with clockworkmod recovery? If so you can boot into recovery and select install zip from sd card. Browse to the file and install. You can boot into recovery through rom manager.
http://androidandme.com/2010/05/news/how-to-manually-install-android-2-2-on-your-nexus-one/ Try this link if you haven't got root.
Click to expand...
Click to collapse
thanks for the reply, i don't have root & and the other method didn't work.

Have you tried pushing via adb? Your best bet if you really want it is to factory reset.

InfernalByte said:
Have you tried pushing via adb? Your best bet if you really want it is to factory reset.
Click to expand...
Click to collapse
so what will happen after i do a factory reset?

i don't understand how you can install a zip file without booting recovery.

dan-fish said:
i don't understand how you can install a zip file without booting recovery.
Click to expand...
Click to collapse
of course i booted into recovery but when i selected install update from SD, the device just couldn't find the update.

sinanharb said:
of course i booted into recovery but when i selected install update from SD, the device just couldn't find the update.
Click to expand...
Click to collapse
As dan-fish said, have you tried the "install .zip from sd card" option in CWM recovery & manually selecting the .zip file?

kleinfeld said:
As dan-fish said, have you tried the "install .zip from sd card" option in CWM recovery & manually selecting the .zip file?
Click to expand...
Click to collapse
as i said earlier my phone is not rooted so i cant use CWM recovery

It'll come...just be patient.

titus1 said:
It'll come...just be patient.
Click to expand...
Click to collapse
my Desire S is a European version and i have flashed the official middle east rom using a gold card, so i think that the IMEI doesn't match with the rom that's why HTC aren't pushing the update to my device!

sinanharb said:
my Desire S is a European version and i have flashed the official middle east rom using a gold card, so i think that the IMEI doesn't match with the rom that's why HTC aren't pushing the update to my device!
Click to expand...
Click to collapse
If your phone was branded you'll probably not receive it at all. The Official update of Froyo 2.2 for the Desire was rolled out months before I got it because Orange UK were faffing about blocking all the service they wanted me to pay for that others got for nothing! S-off and get a rooted rom, your much better off.

my device is unbranded

sinanharb said:
my device is unbranded
Click to expand...
Click to collapse
Just s-off.

dear sinanharb i think you cant install your zip ,
i have this problem since 2 week, just chek for update everyday you will recive your update , its connection error on htc server.
my desire s now is 1.47.415.1
or rename the zip to update.zip, put it on sdcard then go to your original recovery and update it.

olyloh6696 said:
Just s-off.
Click to expand...
Click to collapse
i s-offed yesterday but no luck!

tarek zag said:
dear sinanharb i think you cant install your zip ,
i have this problem since 2 week, just chek for update everyday you will recive your update , its connection error on htc server.
my desire s now is 1.47.415.1
or rename the zip to update.zip, put it on sdcard then go to your original recovery and update it.
Click to expand...
Click to collapse
thanks brother, I'm checking the update every day but no luck and i have also tried to rename it to update.zip and installing it from the original recovery but it gives me some kind of error.
yesterday i rooted the device and tried installing the update from the custom recovery and it also didn't install it says installation aborted! i don't know what the hell is going on?

if your device is rooted you cant install the update

tarek zag said:
if your device is rooted you cant install the update
Click to expand...
Click to collapse
so what should i do?

nothing
there is nothing new in ota 1.47.415 so dont care
you can do as me
1- s-off the phone
2-root it
3-install clockwork mode recovery
4-download this rom [ROM] [19-AUG] RCMix S 2.5 Android 2.3.4 + Sense 3.0(its great)thanx for the rcmix team
5- install the rom via recovery after make full wipe
6- install the full arabic zip via recovery (the zip is only for 2.3.4)
7- reboot phone .....enjoy
link for rom thread http://forum.xda-developers.com/showthread.php?t=1221481
link for arabic support zip.....http://www.speedyshare.com/files/30042823/Android_Revolution_HD_Arabic_Support_FULL_3.0.x_v.0.1.zip
now you on desire s with " GB 2.3.4 with Sense 3.0 with full arabic "

Related

[Q] HELP!!! HTC sensation bricdked!

I was trying to update to Android Revolution HD 3.6.13 and in the process after installing PG58IMG the phone keeps restarting on bootloading htc screen. When I tried to access the boatloader I found Revolutionary recovery v5.0.0.8 is only there. Factory reset is also not working.
Please guys, help me to fix this. I just bought the cell couple of days back. Drving me crazy... Please somebody reply now...
I followed this tutorial: http://forum.xda-developers.com/showthread.php?t=1192300
Boot into the recovery mode, mount USB storage, copy the Rom onto your sdcard then flash the Rom
ziaulh.ch said:
I was trying to update to Android Revolution HD 3.6.13 and in the process after installing PG58IMG the phone keeps restarting on bootloading htc screen. When I tried to access the boatloader I found Revolutionary recovery v5.0.0.8 is only there. Factory reset is also not working.
Please guys, help me to fix this. I just bought the cell couple of days back. Drving me crazy... Please somebody reply now...
I followed this tutorial: http://forum.xda-developers.com/showthread.php?t=1192300
Click to expand...
Click to collapse
does the firmware for the rom fits the one u installed 3.24/3.25 firmware it doesnt work with GB 1.17 will by my knowledge
http://forum.xda-developers.com/showthread.php?p=21711154#post21711154
find the firmware fitting the rom that i can already advise you
edit: wow posts popped up by the time i finished. if this is a dupe, my bad
from that same thread
B]To install a Custom ROM - (need to wipe)
1. Download your chosen ROM by other developers in the development threads and copy the ZIP file to your SD Card ROOT directory
delete the PD58IMG file
2. Start clockworkmod recovery (instructions above) REMOVE BATT. INSERT BATT
VOL DWN + PWR
goes into bootloader, by this time you have removed the pd58img file. select recovery
first wipe data then cache.
4. Navigate to "install zip from sdcard" using the Volume Down button and press select (power button to select)
5. Then select "Choose zip from sdcard" (pic a popular one that way u have support.)
6. Then select "your_chosen_rom.zip"
7. Then select "Yes - install your_chosen_rom.zip" to confirm
8. Then go back
9. Then reboot.
10. First boot will take quite some time -This is normal, i know you want touch your nice shiny phone but BE PATIENT - ENJOY!
if i missed anything pls add, thx also thank viper for the guide
Oomike said:
edit: wow posts popped up by the time i finished. if this is a dupe, my bad
from that same thread
B]To install a Custom ROM - (need to wipe)
1. Download your chosen ROM by other developers in the development threads and copy the ZIP file to your SD Card ROOT directory
delete the PD58IMG file
2. Start clockworkmod recovery (instructions above) REMOVE BATT. INSERT BATT
VOL DWN + PWR
goes into bootloader, by this time you have removed the pd58img file. select recovery
first wipe data then cache.
4. Navigate to "install zip from sdcard" using the Volume Down button and press select (power button to select)
5. Then select "Choose zip from sdcard" (pic a popular one that way u have support.)
6. Then select "your_chosen_rom.zip"
7. Then select "Yes - install your_chosen_rom.zip" to confirm
8. Then go back
9. Then reboot.
10. First boot will take quite some time -This is normal, i know you want touch your nice shiny phone but BE PATIENT - ENJOY!
if i missed anything pls add, thx also thank viper for the guide
Click to expand...
Click to collapse
only thing you have to wait for is the little box that here says it needs to optimize my 277 apps wich at fresh boot takes my phone to do in a normal period i usually insert my pin-code
---------- Post added at 12:53 AM ---------- Previous post was at 12:48 AM ----------
dmcb123 said:
Boot into the recovery mode, mount USB storage, copy the Rom onto your sdcard then flash the Rom
Click to expand...
Click to collapse
you can bootloader as well
to use cmd go into bootloader(screen when hold vol - + power) then just click power 1 time
then typin cmd: [command] adb push your-rom.zip /sdcard
note that the rom must be in same folder as adb
or use the flash command with adb wich im very sorry for that i forgot
Alienator9191 said:
does the firmware for the rom fits the one u installed 3.24/3.25 firmware it doesnt work with GB 1.17 will by my knowledge
http://forum.xda-developers.com/showthread.php?p=21711154#post21711154
find the firmware fitting the rom that i can already advise you
Click to expand...
Click to collapse
I installed VODAP001 but am not sure whether I have choosen the right one between 3.24/3.12. I installled 3.24. Hoe do I know which rom I have?
Alienator9191 said:
does the firmware for the rom fits the one u installed 3.24/3.25 firmware it doesnt work with GB 1.17 will by my knowledge
http://forum.xda-developers.com/showthread.php?p=21711154#post21711154
find the firmware fitting the rom that i can already advise you
Click to expand...
Click to collapse
I installed VODAP001 but am not sure whether I have choosen the right one between 3.24/3.12. I installled 3.24. Hoe do I know which rom I have?
I tried to mount the Sd but it says error mounting SD!!!!!
ziaulh.ch said:
I installed VODAP001 but am not sure whether I have choosen the right one between 3.24/3.12. I installled 3.24. Hoe do I know which rom I have?
I tried to mount the Sd but it says error mounting SD!!!!!
Click to expand...
Click to collapse
i checked u have a gb rom wich needs firmware package 1.17 ill give u the download link :
http://goo.gl/muOkj
put it on root of your sd and go into BOOTLOADER
it will upadte automaticly do not flash
flash rom after downgrade again wipe data chash davlik and you should be good to go otherwise try ARHD 4.1.13 i used it with the 1.17 firmware and it worked
Alienator9191 said:
i checked u have a gb rom wich needs firmware package 1.17 ill give u the download link :
http://goo.gl/muOkj
put it on root of your sd and go into BOOTLOADER
it will upadte automaticly do not flash
flash rom after downgrade again wipe data chash davlik and you should be good to go otherwise try ARHD 4.1.13 i used it with the 1.17 firmware and it worked
Click to expand...
Click to collapse
Thanks very much dude! It worked. I want to upgrade to ARHD 4.1.13... What should I do?
ziaulh.ch said:
Thanks very much dude! It worked. I want to upgrade to ARHD 4.1.13... What should I do?
Click to expand...
Click to collapse
download it here:
http://goo.gl/7ZC2P
do a nandroid (backup rom etc)
flash and wipe data cash davlik
no beats! download beats for ur phone here:
http://forum.xda-developers.com/showthread.php?t=1363882
fresh rom 2.3.5 GB+sense 3.5
or
ICS:
http://goo.gl/ZJghK
firmware:
http://goo.gl/HWJJh
do a nandroid
flash and wipe data cash davlik
with beats but still can edit by this:
http://forum.xda-developers.com/showthread.php?t=1363882
fresh ICS 4.0.3 sensse 3.6
update for ICS is expected tomorrow so be sure to keep an eye open on the thread:
http://forum.xda-developers.com/showpost.php?p=14192842&postcount=4
---------------------------------------------------------------------------------------------------------------------------
pls share experience
Alienator9191 said:
download it here:
http://goo.gl/7ZC2P
do a nandroid (backup rom etc)
flash and wipe data cash davlik
no beats! download beats for ur phone here:
http://forum.xda-developers.com/showthread.php?t=1363882
fresh rom 2.3.5 GB+sense 3.5
or
ICS:
http://goo.gl/ZJghK
firmware:
http://goo.gl/HWJJh
do a nandroid
flash and wipe data cash davlik
with beats but still can edit by this:
http://forum.xda-developers.com/showthread.php?t=1363882
fresh ICS 4.0.3 sensse 3.6
update for ICS is expected tomorrow so be sure to keep an eye open on the thread:
http://forum.xda-developers.com/showpost.php?p=14192842&postcount=4
---------------------------------------------------------------------------------------------------------------------------
pls share experience
Click to expand...
Click to collapse
I am a little confused about how to update the ROM. Is it simply loading on boatloader and install the zip?
ziaulh.ch said:
I am a little confused about how to update the ROM. Is it simply loading on boatloader and install the zip?
Click to expand...
Click to collapse
the PG58IMG needs to be in root of sd then boot by bootloader let it update then remove it from sd by sd reader plugged into pc then rom in root flash it and you get the rom working
MAKE SURE FIRMWARE AND ROM MATCH
1.17 GB roms
3.24 ICS roms
how did it go?
Hey look up mikes rom he posted a update 6.3.0 do remeber u need the new firmware
Firmware:
http://goo.gl/jL70w
Rom (xe version non xe not uploaded yet, so beats is included):
http://goo.gl/qgKDD
follow me on twitter
@Alienator9191

[Q] "Installation Aborted" error message in clockwork mod

i go into recovery from rom manager to flash a ROM or a kernel but i keep getting an error saying installation aborted with an open android and a red triangle.
Possibly a bad download. Try checking the MD5 Sum.
Sent from my R800i using xda premium
Can be also an incompatibility with CWM recovery. If you re-download and have problems again, try chaning your recovery.
I unrooted ,locked the boot loader and again rooted installed the twrp recovery still I get the same error .... Even when I download busybox form market it does not install it says I'm not rooted . But i am able to flash kernels but not roms ..
Are you sure that the rom is zipped well?
I can give you answers on how to solve your problem , visit this link .
http://www.neopeek.com/viewtopic.php?t=7281
Skyღ said:
Are you sure that the rom is zipped well?
I can give you answers on how to solve your problem , visit this link .
http://www.neopeek.com/viewtopic.php?t=7281
Click to expand...
Click to collapse
I was wondering if it was zipped well, cause CWM rom signature is disabled, so I tried zipping with WinRAR instead of 7zip but to no avail.
Does the fact that I had to OVERWRITE files in order to modify the updater script change something ? If I understand correctly from the thread you pointed to, META INF lists the files the zip should contain. Since I had to overwrite some, I guess it's normal that install fails, right ?
Damnit! All because I cant get the ray to self identify as ST18i or ST18a but instead I dont know why it says it's a ST18..
This happened to me once, because I wiped my sd card. To bypass this, I erased the first line of the build prop in the rom, so cwm (or twrp) will not check if the device is compatible with the rom.
Clockworkmod
kkmindfreak10 said:
i go into recovery from rom manager to flash a ROM or a kernel but i keep getting an error saying installation aborted with an open android and a red triangle.
Click to expand...
Click to collapse
Try to update or install the last clockworkmod with rom manager. that happen to me with the tmo s3 firts time i root it and install the clockworkmod 5.0.3 then i updated to 6.0.3...... and good to go.
hope work for you
!JORGE! said:
Try to update or install the last clockworkmod with rom manager. that happen to me with the tmo s3 firts time i root it and install the clockworkmod 5.0.3 then i updated to 6.0.3...... and good to go.
hope work for you
Click to expand...
Click to collapse
Having the same problem as him but mine is 6.0.5.0

[Q]

So I realize I did something stupid and I'm hoping I can fix it. I was in the process of rooting and installing a new ROM on my brothers phone. I made it S-off, and I didn't want clockwork recovery so I just skipped that. I updated the firmware so I can put an ICS ROM on it and now it's stuck in a bootloop I would imagine because there is no recovery on there. Can I fix this somehow? How do I install a Recovery when I don't have a recovery?
Thanks
smockpuv said:
So I realize I did something stupid and I'm hoping I can fix it. I was in the process of rooting and installing a new ROM on my brothers phone. I made it S-off, and I didn't want clockwork recovery so I just skipped that. I updated the firmware so I can put an ICS ROM on it and now it's stuck in a bootloop I would imagine because there is no recovery on there. Can I fix this somehow? How do I install a Recovery when I don't have a recovery?
Thanks
Click to expand...
Click to collapse
you can install recovery from bootloader/fastboot and then rom from the recovery
here follow the post #2 from this guide to do that
What about download mode aka odin mode
Filip98 said:
What about download mode aka odin mode
Click to expand...
Click to collapse
download mode is not required for HTC phones.. we can flash stuff from bootloader
to go to bootloader
power off phone then remove battery ,reinsert it ..then hold power + volume down button ..will take you to bootloader ..there you can flash the recovery ..and a lot
ganeshp said:
you can install recovery from bootloader/fastboot and then rom from the recovery
here follow the post #2 from this guide to do that
Click to expand...
Click to collapse
So I downloaded the pg58img file and put it on the root of my SD card. went into bootloader and it saw the file but for some reason didn't give me the option to install anything. Any idea why or what I did wrong?
smockpuv said:
So I downloaded the pg58img file and put it on the root of my SD card. went into bootloader and it saw the file but for some reason didn't give me the option to install anything. Any idea why or what I did wrong?
Click to expand...
Click to collapse
try the other methods to install recovery
try using an RUU for your device.. thats how i fixed mine
serio22 said:
try using an RUU for your device.. thats how i fixed mine
Click to expand...
Click to collapse
No. RUU is a last option.
This is way too simple for that.
smockpuv said:
So I realize I did something stupid and I'm hoping I can fix it. I was in the process of rooting and installing a new ROM on my brothers phone. I made it S-off, and I didn't want clockwork recovery so I just skipped that. I updated the firmware so I can put an ICS ROM on it and now it's stuck in a bootloop I would imagine because there is no recovery on there. Can I fix this somehow? How do I install a Recovery when I don't have a recovery?
Thanks
Click to expand...
Click to collapse
Just need to flash a recovery; preferably 4ext. (only step 2 from this guide: http://forum.xda-developers.com/showthread.php?p=25587345)
Then nandroid backup from recovery (main menu of 4ext > Backup | Restore > Backup)
Then put an ICS ROM on SD Card using the Toggle USB Storage" option (main menu of 4ext > Toggle USB Storage)
Then format all partitions except SD Card from recovery (main menu of 4ext > Format | Wipe > Format all partitions (except SD Card) )
Then flash the ICS ROM from the recovery (main menu of 4ext > Install zip > Choose zip from SD Card).
Simple as that.

Noob question about weird problem updating to jb

Hi Guys:
I have a doubt.
I had installed cm9 rc2 on a nexus s i9023 then i used a backup to revert to stock ics 4.04 and received the OTA update.
But when it was about to install i got the following message
Install untrusted package-----> this was in the upper part of the screen
THIS CAN BE UNDONE------->
CLOCKwordkmod recovery v6.0.0.7
finding update package
opening update package
verifying update package
E:failed to verify whole-file package signature
E: siganture verification failed
After that i choose to go ahead an the update installed
It also asked me to disable recovery !
is the unsigned package cmw 6... or am i wrong and i have installed a no official rom?
Help me to clarify was going on !
I could bar wrong, but you may have signature verification enabled within CWM. And also, you are given the option to keep CWM upon flashing the official update.
Sent from my A500
DefinitiveX said:
I could bar wrong, but you may have signature verification enabled within CWM. And also, you are given the option to keep CWM upon flashing the official update.
Sent from my A500
Click to expand...
Click to collapse
i have check an signature verification is disable in cwm but i think that the update when throw stock recovery (android guy in the background) that's why i think that the package that the message refres is cmw, but my question is why? What does have to do cwm with the update if the stock recovery was working?
Did you use stock recovery to flash? If so, my opinion on stock recovery isn't good. Lol.
Sent from my A500
Thanks man !
DefinitiveX said:
Did you use stock recovery to flash? If so, my opinion on stock recovery isn't good. Lol.
Sent from my A500
Click to expand...
Click to collapse
Double check !, CMW Recovery was used !
Check twice with OTA and manually updating with the update file place in sd card
Same result !
Guess it happens because of CMW Recovery as you alreday told me , maybe CWM does not recognize the signature or something !
Guess learn something new today !
Thanks man !
xxalv01xx said:
Double check !, CMW Recovery was used !
Check twice with OTA and manually updating with the update file place in sd card
Same result !
Guess it happens because of CMW Recovery as you alreday told me , maybe CWM does not recognize the signature or something !
Guess learn something new today !
Thanks man !
Click to expand...
Click to collapse
Get the same verification error, so how did you finally proceed to intall the OTA-update?
xxalv01xx said:
Double check !, CMW Recovery was used !
Check twice with OTA and manually updating with the update file place in sd card
Same result !
Guess it happens because of CMW Recovery as you alreday told me , maybe CWM does not recognize the signature or something !
Guess learn something new today !
Thanks man !
Click to expand...
Click to collapse
Another thing I would recommend would be reflashing CWM.
Sent from my Nexus S using xda app-developers app
MrEasy666 said:
Get the same verification error, so how did you finally proceed to intall the OTA-update?
Click to expand...
Click to collapse
Just select the option to install it besides it is not verified !
Don't remember the exact message, but the idea is the select the to install it anyway !
xxalv01xx said:
Just select the option to install it besides it is not verified !
Don't remember the exact message, but the idea is the select the to install it anyway !
Click to expand...
Click to collapse
Yes, just selected "install from zip" and selected the OTA-update in CWMR and this worked.

Wrong ROM, can't install stock anymore?

Hi,
Edit/update:
I'm no god at this root and custom rom stuff.. so I got a problem hehe.
I successfully unlocked my bootloader, installed TWRP, tried to instal a ROM. Which doesn't even boot further than the first logo pop-up. So I wanted to install the original software, I downloaded from the Huawei site. But I am unable to install this with TWRP.. when I select the .zip it says "Failed"
I have no idea what I've done to my phone.. I hope someone can help me out.
irnsx said:
Hi there,
I just struggled my way to unlock my bootloader with some tutorials of this forum. Now I'm stuck at the next point, my bootloader has been unlocked successfully, but whenever i try and instal cwm flash it keeps bootlooping at the logo. I'm no pro at this stuff, I hope someone can help me.
I have the MT7-L09 version.
Click to expand...
Click to collapse
Install TWRP. Cwm doesn't work.
Sent from my HUAWEI MT7-L09 using Tapatalk
Pablo87 said:
Install TWRP. Cwm doesn't work.
Sent from my HUAWEI MT7-L09 using Tapatalk
Click to expand...
Click to collapse
Hi, I tried, doesn't work.. keeps bootlooping at the logo.
UPDATE: I finally got it working somehow I had the wrong version.
irnsx said:
Hi,
Edit/update:
I'm no god at this root and custom rom stuff.. so I got a problem hehe.
I successfully unlocked my bootloader, installed TWRP, tried to instal a ROM. Which doesn't even boot further than the first logo pop-up. So I wanted to install the original software, I downloaded from the Huawei site. But I am unable to install this with TWRP.. when I select the .zip it says "Failed"
I have no idea what I've done to my phone.. I hope someone can help me out.
Click to expand...
Click to collapse
You can not install original Software with a Custom Recovery....do unroot and flash the Stock Recovery und try again...and unzip the Rom and do the update.app into the dload folder on the SD Card
Pablo87 said:
Install TWRP. Cwm doesn't work.
Sent from my HUAWEI MT7-L09 using Tapatalk
Click to expand...
Click to collapse
Skorpi58 said:
You can not install original Software with a Custom Recovery....do unroot and flash the Stock Recovery und try again...and unzip the Rom and do the update.app into the dload folder on the SD Card
Click to expand...
Click to collapse
That sounds legit, I'll try, thank you.
Skorpi58 said:
You can not install original Software with a Custom Recovery....do unroot and flash the Stock Recovery und try again...and unzip the Rom and do the update.app into the dload folder on the SD Card
Click to expand...
Click to collapse
I got stock recovery now, but there are not really many options in there..
"Reboot system now"
"Wipe data/factory reset"
"Wipe cache partition"
I tried the factory reset, with no result..
Update: well now I have the stock recovery and I cannot connect my device and boot adb bootloader anymore... it says there are no devices connected. Please help!!
Update 2: Okay I found something to unbrick, I had to press volume UP+DOWN now it says Huawei software installing, hopefully this will work.
Okay, I installed stock rom, then I installed update found here (http://forum.xda-developers.com/mate-7/general/beta-ascend-mate-7-b513-mt7-l09-t3309727) Now running 6.0, my next question is how do I get TWRP or CWM or any Recovery flashed to my phone, which works. Worked with 5.1, tried those but that is not working and keeps bootlooping. I hope someone can help.
Try this twrp for Android 6.0
https://mega.nz/#!w15xjZxL!0-alMyU4RgsxQ6K6FjOPZna-piQLXODLE0QarKtdVCg
Send from ?
chudy_85 said:
Try this twrp for Android 6.0
https://mega.nz/#!w15xjZxL!0-alMyU4RgsxQ6K6FjOPZna-piQLXODLE0QarKtdVCg
Send from
Click to expand...
Click to collapse
Sweet, that was just what I needed.

Categories

Resources