abfc476e01
Add "Author" field to plugins.
2018-08-29 22:15:43 +01:00
91569c4636
Move all interfaces, extents, interop and metadata to DiscImageChef.CommonTypes.
2018-06-25 19:08:26 +01:00
88da8fc019
Code cleanup.
2018-06-22 08:08:51 +01:00
ec8b309670
General refactor.
2018-06-20 22:22:21 +01:00
18f9a349c9
🎨 REFACTOR: Use auto-properties.
2017-12-26 08:01:40 +00:00
94d8173b3a
🎨 REFACTOR: Plugins do not need to expose their methods as virtual.
2017-12-26 07:28:40 +00:00
6aee3c9cb1
🎨 Separate read-only filesystems from identify-only filesystem interfaces.
2017-12-26 07:23:09 +00:00
f66a0bdd42
🎨 Converted all plugin types to interfaces.
2017-12-26 06:05:24 +00:00
a002253fa4
🎨 🎨 🎨 Removed methods in images that only returned what's already in the ImageInfo structure.
2017-12-26 02:51:10 +00:00
4115698ac8
REFACTOR: Final cleanup of DiscImageChef.Filesystems.
2017-12-24 02:37:41 +00:00
c59e424ec8
REFACTOR: All refactor in DiscImageChef.Filesystems.
2017-12-22 08:43:22 +00:00
4e6e8f340a
REFACTOR: Use string interpolation expression.
2017-12-21 17:58:51 +00:00
dcd053b20d
REFACTOR: Remove unneeded code.
2017-12-21 14:30:44 +00:00
b0936d51c5
REFACTOR: Remove redundant parentheses.
2017-12-20 17:26:28 +00:00
a4650c61aa
REFACTOR: Fixed MOST name inconsistencies.
2017-12-20 17:15:37 +00:00
e6f6ace80b
REFACTOR: Reformat code.
2017-12-19 20:33:05 +00:00
1a39168f19
REFACTOR: Updated comments and copyright date.
2017-12-19 03:51:05 +00:00
90a4a0b37d
Add support for choosing character encoding in appropiate command.
2017-10-12 23:54:02 +01:00
0c7b5aa604
Corrected encoding propagation.
2017-07-26 12:25:18 +01:00
332c2901fd
Use marshalling.
2017-07-23 21:01:26 +01:00
dddf884c05
Don't try to read past partition end.
2017-07-23 19:58:11 +01:00
16434f2788
Refactor: Simplify field names.
2017-07-19 16:37:11 +01:00
711d19fd04
Refactor, pass whole partition structure to filesystems.
2017-07-19 16:31:08 +01:00
dbe5a51222
Filesystems should be public.
2017-07-01 03:26:08 +01:00
76e16db616
Added support for different character encodings.
2017-06-06 21:23:20 +01:00
869b49d711
Updated copyright string.
2017-05-19 20:28:49 +01:00
9a7b6da8fa
Corrected information missing lines.
2016-09-02 06:07:40 +01:00
0de296b512
* DiscImageChef.DiscImages/CDRDAO.cs:
...
Corrected typo on audio track matching.
* DiscImageChef.DiscImages/CDRWin.cs:
Corrected detection of images with CD-Text.
Do not output partitions for index 0.
* DiscImageChef.DiscImages/CopyQM.cs:
Do not create debug image output.
* DiscImageChef.DiscImages/Nero.cs:
Added type for any dvd seen on old Nero version.
Corrected handling of images where pregap is not indicated
(nonetheless, Nero stores them).
Corrected handling of track 1 (Lead-In is stored there).
Corrected session count in discs with 1 session.
Do not add partitions of index 0.
Corrected partition start offset of disc start.
Guess disc type for old Nero discs.
Corrected output of Mode2 sectors stored in RAW mode.
Do not throw exceptions on values that should be returned
empty or null if not supported by image format.
* DiscImageChef.Filesystems/FFS.cs:
* DiscImageChef.Filesystems/BFS.cs:
* DiscImageChef.Filesystems/ODS.cs:
* DiscImageChef.Filesystems/FAT.cs:
* DiscImageChef.Filesystems/APFS.cs:
* DiscImageChef.Filesystems/NTFS.cs:
* DiscImageChef.Filesystems/SysV.cs:
* DiscImageChef.Filesystems/HPFS.cs:
* DiscImageChef.Filesystems/Opera.cs:
* DiscImageChef.Filesystems/Acorn.cs:
* DiscImageChef.Filesystems/extFS.cs:
* DiscImageChef.Filesystems/BTRFS.cs:
* DiscImageChef.Filesystems/ext2FS.cs:
* DiscImageChef.Filesystems/ProDOS.cs:
* DiscImageChef.Filesystems/SolarFS.cs:
* DiscImageChef.Filesystems/UNIXBFS.cs:
* DiscImageChef.Filesystems/ISO9660.cs:
* DiscImageChef.Filesystems/MinixFS.cs:
* DiscImageChef.Filesystems/AmigaDOS.cs:
* DiscImageChef.Filesystems/PCEngine.cs:
* DiscImageChef.Filesystems/AppleHFS.cs:
* DiscImageChef.Filesystems/AppleHFSPlus.cs:
* DiscImageChef.Filesystems/AppleMFS/Info.cs:
Do not try to read past partition end.
* DiscImageChef/Commands/CreateSidecar.cs:
Added points for skipping whole image checksum on debugging.
Track starts at index 0.
2016-08-08 18:44:08 +01:00
a63ba13b6b
Refactor and code cleanup.
2016-07-28 22:25:26 +01:00
b2ab03407f
* LICENSE.MIT:
...
* LICENSE.LGPL:
Added LICENSE files for LGPL and MIT licenses.
* DiscImageChef.Devices/Enums.cs:
* DiscImageChef.Partitions/MBR.cs:
* DiscImageChef.Partitions/RDB.cs:
* DiscImageChef.DiscImages/GDI.cs:
* DiscImageChef.Partitions/Sun.cs:
* DiscImageChef.DiscImages/VHD.cs:
* DiscImageChef.Partitions/GPT.cs:
* DiscImageChef.Filesystems/FFS.cs:
* DiscImageChef.Filesystems/FAT.cs:
* DiscImageChef.Partitions/NeXT.cs:
* DiscImageChef.Devices/Command.cs:
* DiscImageChef.DiscImages/Nero.cs:
* DiscImageChef.Decoders/CD/PMA.cs:
* DiscImageChef.Decoders/CD/TOC.cs:
* DiscImageChef.Filesystems/BFS.cs:
* DiscImageChef.Filesystems/ODS.cs:
* DiscImageChef.Helpers/PrintHex.cs:
* DiscImageChef.Helpers/Swapping.cs:
* DiscImageChef.Decoders/DVD/PRI.cs:
* DiscImageChef.Decoders/DVD/DMI.cs:
* DiscImageChef.Decoders/DVD/DDS.cs:
* DiscImageChef.Decoders/DVD/RMD.cs:
* DiscImageChef.Decoders/DVD/UDI.cs:
* DiscImageChef.Partitions/Atari.cs:
* DiscImageChef.Decoders/DVD/BCA.cs:
* DiscImageChef.Filesystems/SysV.cs:
* DiscImageChef.Filesystems/HPFS.cs:
* DiscImageChef.Filesystems/NTFS.cs:
* DiscImageChef.Filesystems/APFS.cs:
* DiscImageChef.Decoders/DVD/PFI.cs:
* DiscImageChef.Decoders/CD/ATIP.cs:
* DiscImageChef.Filesystems/Acorn.cs:
* DiscImageChef.DiscImages/CDRWin.cs:
* DiscImageChef.DiscImages/CDRDAO.cs:
* DiscImageChef.Filesystems/BTRFS.cs:
* DiscImageChef.Decoders/Xbox/DMI.cs:
* DiscImageChef.Helpers/ArrayFill.cs:
* DiscImageChef.Settings/Settings.cs:
* DiscImageChef.Filesystems/Opera.cs:
* DiscImageChef.Filesystems/extFS.cs:
* DiscImageChef.Decoders/DVD/CPRM.cs:
* DiscImageChef.Decoders/DVD/ADIP.cs:
* DiscImageChef.Decoders/CD/Enums.cs:
* DiscImageChef.Decoders/DVD/AACS.cs:
* DiscImageChef.Decoders/SCSI/EVPD.cs:
* DiscImageChef.Filesystems/ProDOS.cs:
* DiscImageChef.Metadata/MediaType.cs:
* DiscImageChef.Console/DicConsole.cs:
* DiscImageChef.Decoders/DVD/Spare.cs:
* DiscImageChef.Filesystems/ext2FS.cs:
* DiscImageChef.Decoders/DVD/Enums.cs:
* DiscImageChef.Filesystems/Symbian.cs:
* DiscImageChef.Decoders/SCSI/Types.cs:
* DiscImageChef.Filesystems/UNIXBFS.cs:
* DiscImageChef.DiscImages/TeleDisk.cs:
* DiscImageChef.Decoders/SCSI/Sense.cs:
* DiscImageChef.Decoders/CD/FullTOC.cs:
* DiscImageChef.Decoders/Blu-ray/DI.cs:
* DiscImageChef.Decoders/ATA/Errors.cs:
* DiscImageChef.Filesystems/ISO9660.cs:
* DiscImageChef.Filesystems/MinixFS.cs:
* DiscImageChef.Devices/Linux/Enums.cs:
* DiscImageChef.Filesystems/SolarFS.cs:
* DiscImageChef.Filesystems/Structs.cs:
* DiscImageChef.DiscImages/Apple2MG.cs:
* DiscImageChef.Decoders/SCSI/Modes.cs:
* DiscImageChef.Metadata/Dimensions.cs:
* DiscImageChef.Partitions/AppleMap.cs:
* DiscImageChef.Decoders/Floppy/ISO.cs:
* DiscImageChef.Decoders/DVD/Layers.cs:
* DiscImageChef.Decoders/CD/Session.cs:
* DiscImageChef.Decoders/SCSI/Enums.cs:
* DiscImageChef.Filesystems/Nintendo.cs:
* DiscImageChef.Helpers/DateHandlers.cs:
* DiscImageChef.Filesystems/AmigaDOS.cs:
* DiscImageChef.DiscImages/ImageInfo.cs:
* DiscImageChef.Checksums/MD5Context.cs:
* DiscImageChef.Devices/Linux/Extern.cs:
* DiscImageChef.Filesystems/AppleHFS.cs:
* DiscImageChef.Filesystems/AppleMFS.cs:
* DiscImageChef.Helpers/ArrayIsEmpty.cs:
* DiscImageChef.Decoders/Blu-ray/BCA.cs:
* DiscImageChef.Decoders/Blu-ray/DDS.cs:
* DiscImageChef.Filesystems/PCEngine.cs:
* DiscImageChef.Decoders/ATA/Identify.cs:
* DiscImageChef.Devices/Linux/Command.cs:
* DiscImageChef.Devices/FreeBSD/Enums.cs:
* DiscImageChef.Decoders/SCSI/Inquiry.cs:
* DiscImageChef.Metadata/DeviceReport.cs:
* DiscImageChef.Decoders/Floppy/Amiga.cs:
* DiscImageChef.Devices/Linux/Structs.cs:
* DiscImageChef.Devices/Windows/Enums.cs:
* DiscImageChef.Decoders/DVD/CSS&CPRM.cs:
* DiscImageChef.Checksums/SHA1Context.cs:
* DiscImageChef.DiscImages/DiskCopy42.cs:
* DiscImageChef.Partitions/PartPlugin.cs:
* DiscImageChef.CommonTypes/Partition.cs:
* DiscImageChef.Decoders/Floppy/Enums.cs:
* DiscImageChef.CommonTypes/MediaType.cs:
* DiscImageChef.Decoders/Floppy/Apple2.cs:
* DiscImageChef.Devices/Windows/Extern.cs:
* DiscImageChef.Decoders/SCSI/MMC/CPRM.cs:
* DiscImageChef.Helpers/StringHandlers.cs:
* DiscImageChef.DiscImages/ImagePlugin.cs:
* DiscImageChef.Checksums/CRC64Context.cs:
* DiscImageChef.Checksums/CRC32Context.cs:
* DiscImageChef.DiscImages/ZZZRawImage.cs:
* DiscImageChef.Checksums/CRC16Context.cs:
* DiscImageChef.Filesystems/LisaFS/Dir.cs:
* DiscImageChef.Decoders/DVD/Cartridge.cs:
* DiscImageChef.Decoders/Blu-ray/Spare.cs:
* DiscImageChef.Filesystems/Filesystem.cs:
* DiscImageChef.Decoders/SCSI/MMC/AACS.cs:
* DiscImageChef.Devices/FreeBSD/Extern.cs:
* DiscImageChef.Devices/Device/Commands.cs:
* DiscImageChef.Checksums/SHA384Context.cs:
* DiscImageChef.Devices/FreeBSD/Command.cs:
* DiscImageChef.Checksums/SHA512Context.cs:
* DiscImageChef.Decoders/SCSI/MMC/Enums.cs:
* DiscImageChef.Devices/Windows/Command.cs:
* DiscImageChef.Devices/FreeBSD/Structs.cs:
* DiscImageChef.Devices/Windows/Structs.cs:
* DiscImageChef.Filesystems/LisaFS/Info.cs:
* DiscImageChef.Checksums/SHA256Context.cs:
* DiscImageChef.Filesystems/LisaFS/File.cs:
* DiscImageChef.Filesystems/AppleHFSPlus.cs:
* DiscImageChef.Filesystems/LisaFS/Super.cs:
* DiscImageChef.Filesystems/LisaFS/Xattr.cs:
* DiscImageChef.Checksums/Adler32Context.cs:
* DiscImageChef.Decoders/Floppy/System34.cs:
* DiscImageChef.Checksums/SpamSumContext.cs:
* DiscImageChef.Decoders/SCSI/MMC/Hybrid.cs:
* DiscImageChef.Devices/Device/Variables.cs:
* DiscImageChef.Filesystems/LisaFS/Consts.cs:
* DiscImageChef.Filesystems/LisaFS/LisaFS.cs:
* DiscImageChef.Decoders/Floppy/Commodore.cs:
* DiscImageChef.Checksums/FletcherContext.cs:
* DiscImageChef.Filesystems/LisaFS/Extent.cs:
* DiscImageChef.Devices/Device/Destructor.cs:
* DiscImageChef.Decoders/Floppy/AppleSony.cs:
* DiscImageChef.Filesystems/LisaFS/Structs.cs:
* DiscImageChef.Decoders/SCSI/VendorString.cs:
* DiscImageChef.Decoders/SCSI/MMC/Features.cs:
* DiscImageChef.Devices/Device/Constructor.cs:
* DiscImageChef.Checksums/RIPEMD160Context.cs:
* DiscImageChef.Decoders/CD/CDTextOnLeadIn.cs:
* DiscImageChef.Decoders/Blu-ray/Cartridge.cs:
* DiscImageChef.Decoders/Floppy/System3740.cs:
* DiscImageChef.Filesystems/LisaFS/Encoding.cs:
* DiscImageChef.Decoders/SCSI/ModesEncoders.cs:
* DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs:
* DiscImageChef.Helpers/BigEndianBitConverter.cs:
* DiscImageChef.Decoders/Floppy/Perpendicular.cs:
* DiscImageChef.Decoders/SCSI/SSC/BlockLimits.cs:
* DiscImageChef.Decoders/SCSI/MMC/WriteProtect.cs:
* DiscImageChef.Devices/Device/ScsiCommands/HP.cs:
* DiscImageChef.Devices/Device/AtaCommands/Cfa.cs:
* DiscImageChef.Devices/Device/ScsiCommands/NEC.cs:
* DiscImageChef.Helpers/EndianAwareBinaryReader.cs:
* DiscImageChef.Devices/Device/ScsiCommands/MMC.cs:
* DiscImageChef.Devices/Device/AtaCommands/MCPT.cs:
* DiscImageChef.Devices/Device/ScsiCommands/SSC.cs:
* DiscImageChef.Devices/Device/ScsiCommands/SPC.cs:
* DiscImageChef.Devices/Device/ScsiCommands/SMC.cs:
* DiscImageChef.Devices/Device/ScsiCommands/SBC.cs:
* DiscImageChef.Metadata/Properties/AssemblyInfo.cs:
* DiscImageChef.Devices/Device/AtaCommands/Atapi.cs:
* DiscImageChef.Devices/Device/AtaCommands/Ata28.cs:
* DiscImageChef.Devices/Device/AtaCommands/Smart.cs:
* DiscImageChef.Decoders/SCSI/SSC/DensitySupport.cs:
* DiscImageChef.Devices/Device/AtaCommands/Ata48.cs:
* DiscImageChef.Decoders/SCSI/MMC/DiscInformation.cs:
* DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs:
* DiscImageChef.Devices/Device/ScsiCommands/SyQuest.cs:
* DiscImageChef.Devices/Device/ScsiCommands/Plextor.cs:
* DiscImageChef.Devices/Device/ScsiCommands/Plasmon.cs:
* DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs:
* DiscImageChef.Devices/Device/ScsiCommands/Adaptec.cs:
* DiscImageChef.Devices/Device/ScsiCommands/Fujitsu.cs:
* DiscImageChef.Devices/Device/ScsiCommands/HL-DT-ST.cs:
* DiscImageChef.Devices/Device/ScsiCommands/Certance.cs:
* DiscImageChef.Decoders/SCSI/DiscStructureCapabilities.cs:
* DiscImageChef.Devices/Device/ScsiCommands/ArchiveCorp.cs:
Relicensed as LGPL.
Updated standard header.
* DiscImageChef/Main.cs:
* DiscImageChef/Plugins.cs:
* DiscImageChef/Options.cs:
* DiscImageChef/Commands/Ls.cs:
* DiscImageChef/Core/IBGLog.cs:
* DiscImageChef/Core/MHDDLog.cs:
* DiscImageChef/AssemblyInfo.cs:
* DiscImageChef/Core/Checksum.cs:
* DiscImageChef/Commands/Decode.cs:
* DiscImageChef/Core/Statistics.cs:
* DiscImageChef/Commands/Verify.cs:
* DiscImageChef/Commands/Formats.cs:
* DiscImageChef/Commands/Entropy.cs:
* DiscImageChef/Commands/Compare.cs:
* DiscImageChef.Interop/DetectOS.cs:
* DiscImageChef/Commands/Analyze.cs:
* DiscImageChef/Commands/Commands.cs:
* DiscImageChef/Commands/PrintHex.cs:
* DiscImageChef/Commands/Checksum.cs:
* DiscImageChef/DetectImageFormat.cs:
* DiscImageChef/Commands/DumpMedia.cs:
* DiscImageChef/Commands/Benchmark.cs:
* DiscImageChef/Commands/Configure.cs:
* DiscImageChef/Commands/MediaInfo.cs:
* DiscImageChef.Interop/PlatformID.cs:
* DiscImageChef/Commands/MediaScan.cs:
* DiscImageChef/Commands/Statistics.cs:
* DiscImageChef/Commands/DeviceInfo.cs:
* DiscImageChef.Checksums/ReedSolomon.cs:
* DiscImageChef/Commands/DeviceReport.cs:
* DiscImageChef/Commands/ExtractFiles.cs:
* DiscImageChef.Checksums/CDChecksums.cs:
* DiscImageChef/Commands/CreateSidecar.cs:
Updated standard header.
* DiscImageChef.Checksums/DiscImageChef.Checksums.csproj:
Relicensed project as LGPL.
Updated standard header.
Embed license as resource.
* DiscImageChef.Console/DiscImageChef.Console.csproj:
* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
* DiscImageChef.Helpers/DiscImageChef.Helpers.csproj:
* DiscImageChef.Settings/DiscImageChef.Settings.csproj:
* DiscImageChef.Decoders/DiscImageChef.Decoders.csproj:
* DiscImageChef.Metadata/DiscImageChef.Metadata.csproj:
* DiscImageChef.Partitions/DiscImageChef.Partitions.csproj:
* DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj:
* DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj:
* DiscImageChef.CommonTypes/DiscImageChef.CommonTypes.csproj:
Relicensed as LGPL.
Updated standard header.
Embed license as resource.
* DiscImageChef/DiscImageChef.csproj:
* DiscImageChef.Interop/DiscImageChef.Interop.csproj:
Updated standard header.
Embed license as resource.
2016-07-28 18:13:49 +01:00
12288bee6d
* DiscImageChef.Filesystems/FFS.cs:
...
* DiscImageChef.Filesystems/BFS.cs:
* DiscImageChef.Filesystems/ODS.cs:
* DiscImageChef.Filesystems/FAT.cs:
* DiscImageChef.Filesystems/APFS.cs:
* DiscImageChef.Filesystems/NTFS.cs:
* DiscImageChef.Filesystems/SysV.cs:
* DiscImageChef.Filesystems/HPFS.cs:
* DiscImageChef.Filesystems/Opera.cs:
* DiscImageChef.Filesystems/Acorn.cs:
* DiscImageChef.Filesystems/extFS.cs:
* DiscImageChef.Filesystems/BTRFS.cs:
* DiscImageChef.Filesystems/ext2FS.cs:
* DiscImageChef.Filesystems/ProDOS.cs:
* DiscImageChef.Filesystems/SolarFS.cs:
* DiscImageChef.Filesystems/UNIXBFS.cs:
* DiscImageChef.Filesystems/ISO9660.cs:
* DiscImageChef.Filesystems/MinixFS.cs:
* DiscImageChef.Filesystems/AmigaDOS.cs:
* DiscImageChef.Filesystems/PCEngine.cs:
* DiscImageChef.Filesystems/AppleHFS.cs:
* DiscImageChef.Filesystems/Nintendo.cs:
* DiscImageChef.Filesystems/AppleMFS.cs:
* DiscImageChef.Filesystems/AppleHFSPlus.cs:
Added constructor with parameters
* DiscImageChef/Commands/ExtractFiles.cs:
Corrected typoe in error output.
2016-07-27 13:32:45 +01:00
a702542649
Added debug mount() method.
2016-07-22 00:43:22 +01:00
826afbac0c
Added preliminar early-API for filesystem read-only access.
2016-07-21 17:16:08 +01:00
66a58e3351
* DiscImageChef.Filesystems/Structs.cs:
...
Added structs for filesystem entries information.
* DiscImageChef/Plugins.cs:
* DiscImageChef.Filesystems/FFS.cs:
* DiscImageChef.Filesystems/FAT.cs:
* DiscImageChef.Filesystems/ODS.cs:
* DiscImageChef.Filesystems/BFS.cs:
* DiscImageChef.Filesystems/NTFS.cs:
* DiscImageChef/Commands/Formats.cs:
* DiscImageChef.Filesystems/APFS.cs:
* DiscImageChef.Filesystems/HPFS.cs:
* DiscImageChef/Commands/Analyze.cs:
* DiscImageChef.Filesystems/SysV.cs:
* DiscImageChef.Filesystems/Acorn.cs:
* DiscImageChef.Filesystems/Opera.cs:
* DiscImageChef.Filesystems/extFS.cs:
* DiscImageChef.Filesystems/BTRFS.cs:
* DiscImageChef/Commands/DumpMedia.cs:
* DiscImageChef.Filesystems/ProDOS.cs:
* DiscImageChef.Filesystems/LisaFS.cs:
* DiscImageChef.Filesystems/ext2FS.cs:
* DiscImageChef.Filesystems/MinixFS.cs:
* DiscImageChef.Filesystems/ISO9660.cs:
* DiscImageChef.Filesystems/SolarFS.cs:
* DiscImageChef.Filesystems/UNIXBFS.cs:
* DiscImageChef.Filesystems/AmigaDOS.cs:
* DiscImageChef.Filesystems/AppleHFS.cs:
* DiscImageChef.Filesystems/PCEngine.cs:
* DiscImageChef.Filesystems/AppleMFS.cs:
* DiscImageChef.Filesystems/Nintendo.cs:
* DiscImageChef/Commands/CreateSidecar.cs:
* DiscImageChef.Filesystems/Filesystem.cs:
* DiscImageChef.Filesystems/AppleHFSPlus.cs:
Refactored filesystem plugin class name.
* DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj:
Refactored filesystem plugin class name.
Added structs for filesystem entries information.
2016-07-21 16:15:39 +01:00
f3fdc7378a
Adds support for btrfs and closes #27 .
2016-05-05 01:00:47 +01:00
5af0806999
* DiscImageChef.sln:
...
* DiscImageChef/Options.cs:
Refactors
* TODO:
Added device-related TODOs.
2016-05-05 00:59:36 +01:00