exiftool_vendored 12.68.0 → 12.70.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +63 -15
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +13 -13
- data/bin/lib/Image/ExifTool/CBOR.pm +18 -2
- data/bin/lib/Image/ExifTool/Canon.pm +68 -16
- data/bin/lib/Image/ExifTool/DJI.pm +3 -2
- data/bin/lib/Image/ExifTool/DNG.pm +25 -2
- data/bin/lib/Image/ExifTool/EXE.pm +54 -6
- data/bin/lib/Image/ExifTool/Exif.pm +175 -14
- data/bin/lib/Image/ExifTool/FujiFilm.pm +142 -20
- data/bin/lib/Image/ExifTool/GIF.pm +5 -1
- data/bin/lib/Image/ExifTool/ID3.pm +70 -7
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +30 -15
- data/bin/lib/Image/ExifTool/MakerNotes.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +58 -18
- data/bin/lib/Image/ExifTool/Olympus.pm +7 -1
- data/bin/lib/Image/ExifTool/PNG.pm +8 -13
- data/bin/lib/Image/ExifTool/Panasonic.pm +15 -2
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +32 -5
- data/bin/lib/Image/ExifTool/README +14 -5
- data/bin/lib/Image/ExifTool/RIFF.pm +60 -10
- data/bin/lib/Image/ExifTool/Sony.pm +95 -34
- data/bin/lib/Image/ExifTool/TagLookup.pm +6937 -6714
- data/bin/lib/Image/ExifTool/TagNames.pod +812 -332
- data/bin/lib/Image/ExifTool/Text.pm +4 -5
- data/bin/lib/Image/ExifTool/Validate.pm +23 -20
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- data/bin/lib/Image/ExifTool/WriteExif.pl +14 -4
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -0
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +31 -6
- data/bin/lib/Image/ExifTool/Writer.pl +40 -14
- data/bin/lib/Image/ExifTool/XMP.pm +67 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +35 -0
- data/bin/lib/Image/ExifTool.pm +79 -40
- data/bin/lib/Image/ExifTool.pod +9 -3
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
30
30
|
%static_vars);
|
31
31
|
|
32
|
-
$VERSION = '12.
|
32
|
+
$VERSION = '12.70';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -132,7 +132,7 @@ sub Rename($$$);
|
|
132
132
|
sub Unlink($@);
|
133
133
|
sub SetFileTime($$;$$$$);
|
134
134
|
sub DoEscape($$);
|
135
|
-
sub ConvertFileSize(
|
135
|
+
sub ConvertFileSize($;$);
|
136
136
|
sub ParseArguments($;@); #(defined in attempt to avoid mod_perl problem)
|
137
137
|
sub ReadValue($$$;$$$);
|
138
138
|
|
@@ -145,16 +145,16 @@ sub ReadValue($$$;$$$);
|
|
145
145
|
WPG ICO PICT PNG MNG FLIF DjVu DPX OpenEXR ZISRAW MRC LIF MRC::FEI12 MIFF
|
146
146
|
PCX PGF PSP PhotoCD Radiance Other::PFM PDF PostScript Photoshop::Header
|
147
147
|
Photoshop::Layers Photoshop::ImageData FujiFilm::RAF FujiFilm::IFD
|
148
|
-
Samsung::Trailer Sony::SRF2 Sony::SR2SubIFD Sony::PMP ITC ID3
|
149
|
-
FLAC Ogg Vorbis APE APE::NewHeader APE::OldHeader Audible MPC
|
150
|
-
MPEG::Video MPEG::Xing M2TS QuickTime QuickTime::ImageFile
|
151
|
-
QuickTime::Tags360Fly Matroska Matroska::StdTag MOI MXF DV
|
152
|
-
Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF
|
153
|
-
MIE JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH
|
154
|
-
EXE
|
155
|
-
Text VCard::VCalendar VCard::VNote RSRC
|
156
|
-
ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF
|
157
|
-
FlashPix::DocTable
|
148
|
+
FujiFilm::MRAW Samsung::Trailer Sony::SRF2 Sony::SR2SubIFD Sony::PMP ITC ID3
|
149
|
+
ID3::Lyrics3 FLAC Ogg Vorbis APE APE::NewHeader APE::OldHeader Audible MPC
|
150
|
+
MPEG::Audio MPEG::Video MPEG::Xing M2TS QuickTime QuickTime::ImageFile
|
151
|
+
QuickTime::Stream QuickTime::Tags360Fly Matroska Matroska::StdTag MOI MXF DV
|
152
|
+
Flash Flash::FLV Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF
|
153
|
+
WTV DICOM FITS XISF MIE JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH
|
154
|
+
Torrent EXE EXE::PEVersion EXE::PEString EXE::MachO EXE::PEF EXE::ELF
|
155
|
+
EXE::AR EXE::CHM LNK Font VCard Text VCard::VCalendar VCard::VNote RSRC
|
156
|
+
Rawzor ZIP ZIP::GZIP ZIP::RAR ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF
|
157
|
+
FLIR::FPF MacOS MacOS::MDItem FlashPix::DocTable
|
158
158
|
);
|
159
159
|
|
160
160
|
# alphabetical list of current Lang modules
|
@@ -365,6 +365,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
365
365
|
JPC => 'J2C',
|
366
366
|
JPE => 'JPEG',
|
367
367
|
JPEG => ['JPEG', 'Joint Photographic Experts Group'],
|
368
|
+
JPH => ['JP2', 'High-throughput JPEG 2000'],
|
368
369
|
JPF => 'JP2',
|
369
370
|
JPG => 'JPEG',
|
370
371
|
JPM => ['JP2', 'JPEG 2000 compound image'],
|
@@ -677,6 +678,7 @@ my %fileDescription = (
|
|
677
678
|
JNG => 'image/jng',
|
678
679
|
JP2 => 'image/jp2',
|
679
680
|
JPEG => 'image/jpeg',
|
681
|
+
JPH => 'image/jph',
|
680
682
|
JPM => 'image/jpm',
|
681
683
|
JPS => 'image/x-jps',
|
682
684
|
JPX => 'image/jpx',
|
@@ -1066,6 +1068,7 @@ my %xmpShorthandOpt = ( 0 => 'None', 1 => 'Shorthand', 2 => ['Shorthand','OneDes
|
|
1066
1068
|
my @availableOptions = (
|
1067
1069
|
[ 'Binary', undef, 'flag to extract binary values even if tag not specified' ],
|
1068
1070
|
[ 'ByteOrder', undef, 'default byte order when creating EXIF information' ],
|
1071
|
+
[ 'ByteUnit', 'SI', 'units for byte conversions (SI or Binary)'],
|
1069
1072
|
[ 'Charset', 'UTF8', 'character set for converting Unicode characters' ],
|
1070
1073
|
[ 'CharsetEXIF', undef, 'internal EXIF "ASCII" string encoding' ],
|
1071
1074
|
[ 'CharsetFileName', undef, 'external encoding for file names' ],
|
@@ -1307,8 +1310,9 @@ my %systemTagsNotes = (
|
|
1307
1310
|
FileSize => {
|
1308
1311
|
Groups => { 1 => 'System', 2 => 'Other' },
|
1309
1312
|
Notes => q{
|
1310
|
-
note that the print conversion for this tag uses
|
1311
|
-
|
1313
|
+
note that the print conversion for this tag uses SI prefixes by default: 1
|
1314
|
+
kB = 1000 bytes, etc. Set the API ByteUnit option to "Binary" to use binary
|
1315
|
+
prefixes instead: 1 KiB = 1024 bytes, etc.
|
1312
1316
|
},
|
1313
1317
|
PrintConv => \&ConvertFileSize,
|
1314
1318
|
},
|
@@ -2413,17 +2417,28 @@ sub Options($$;@)
|
|
2413
2417
|
}
|
2414
2418
|
$$options{$param} = $newVal;
|
2415
2419
|
} elsif ($param eq 'ImageHashType') {
|
2416
|
-
if (defined $newVal
|
2420
|
+
if (not defined $newVal) {
|
2421
|
+
warn("Can't set $param to undef\n");
|
2422
|
+
} elsif ($newVal =~ /^(MD5|SHA256|SHA512)$/i) {
|
2417
2423
|
$$options{$param} = uc($newVal);
|
2418
2424
|
} else {
|
2419
|
-
warn("Invalid $param setting '${newVal}'\n")
|
2425
|
+
warn("Invalid $param setting '${newVal}'\n");
|
2420
2426
|
}
|
2421
2427
|
} elsif ($param eq 'StructFormat') {
|
2422
2428
|
if (defined $newVal) {
|
2423
|
-
$newVal =~ /^(JSON|JSONQ)$/i or warn("Invalid $param setting '${newVal}'\n"),
|
2429
|
+
$newVal =~ /^(JSON|JSONQ)$/i or warn("Invalid $param setting '${newVal}'\n"), next;
|
2424
2430
|
$newVal = uc($newVal);
|
2425
2431
|
}
|
2426
2432
|
$$options{$param} = $newVal;
|
2433
|
+
} elsif ($param eq 'ByteUnit') {
|
2434
|
+
if (defined $newVal) {
|
2435
|
+
# (allow "Metric" or "SI" for SI, and "IT" or "Binary" for Binary)
|
2436
|
+
my $goodVal = ($newVal =~ /^S|M/i ? 'SI' : ($newVal =~ /^I|B/i ? 'Binary' : undef));
|
2437
|
+
$goodVal or warn("Invalid $param setting '${newVal}'\n"), next;
|
2438
|
+
$$options{$param} = $goodVal;
|
2439
|
+
} else {
|
2440
|
+
warn("Can't set $param to undef\n");
|
2441
|
+
}
|
2427
2442
|
} else {
|
2428
2443
|
if ($param eq 'Escape') {
|
2429
2444
|
# set ESCAPE_PROC
|
@@ -2548,7 +2563,7 @@ sub ExtractInfo($;@)
|
|
2548
2563
|
$self->WarnOnce('Install Time::HiRes to generate ProcessingTime');
|
2549
2564
|
}
|
2550
2565
|
}
|
2551
|
-
|
2566
|
+
|
2552
2567
|
# create Hash object if ImageDataHash is requested
|
2553
2568
|
if ($$req{imagedatahash} and not $$self{ImageDataHash}) {
|
2554
2569
|
my $imageHashType = $self->Options('ImageHashType');
|
@@ -3456,9 +3471,10 @@ sub GetValue($$;$)
|
|
3456
3471
|
} elsif (wantarray) {
|
3457
3472
|
# return array if requested
|
3458
3473
|
return @$value;
|
3459
|
-
} elsif ($type eq 'PrintConv' and not $$self{OPTIONS}{List}
|
3460
|
-
# join PrintConv values in
|
3474
|
+
} elsif ($type eq 'PrintConv' and not $$self{OPTIONS}{List}) {
|
3475
|
+
# join PrintConv values in delimited string if List option not used
|
3461
3476
|
# and list contains simple scalars (otherwise return ARRAY ref)
|
3477
|
+
ref and return $value foreach @$value;
|
3462
3478
|
$value = join $$self{OPTIONS}{ListSep}, @$value;
|
3463
3479
|
}
|
3464
3480
|
}
|
@@ -6023,7 +6039,7 @@ sub ConvertDateTime($$)
|
|
6023
6039
|
++$a[5];
|
6024
6040
|
last; # (this was a goto)
|
6025
6041
|
}
|
6026
|
-
}
|
6042
|
+
}
|
6027
6043
|
}
|
6028
6044
|
$neg and $frac =~ s/^\.//;
|
6029
6045
|
$fmt =~ s/(^|[^%])((%%)*)%-?\.?\d*f/$1$2$frac/g;
|
@@ -6203,16 +6219,26 @@ sub GetUnixTime($;$)
|
|
6203
6219
|
# Print conversion for file size
|
6204
6220
|
# Inputs: 0) file size in bytes
|
6205
6221
|
# Returns: converted file size
|
6206
|
-
sub ConvertFileSize(
|
6207
|
-
{
|
6208
|
-
my $val =
|
6209
|
-
$
|
6210
|
-
|
6211
|
-
|
6212
|
-
|
6213
|
-
|
6214
|
-
|
6215
|
-
|
6222
|
+
sub ConvertFileSize($;$)
|
6223
|
+
{
|
6224
|
+
my ($val, $et) = @_;
|
6225
|
+
if ($et and $$et{OPTIONS}{ByteUnit} eq 'Binary') {
|
6226
|
+
$val < 2048 and return "$val bytes";
|
6227
|
+
$val < 10240 and return sprintf('%.1f KiB', $val / 1024);
|
6228
|
+
$val < 2097152 and return sprintf('%.0f KiB', $val / 1024);
|
6229
|
+
$val < 10485760 and return sprintf('%.1f MiB', $val / 1048576);
|
6230
|
+
$val < 2147483648 and return sprintf('%.0f MiB', $val / 1048576);
|
6231
|
+
$val < 10737418240 and return sprintf('%.1f GiB', $val / 1073741824);
|
6232
|
+
return sprintf('%.0f GiB', $val / 1073741824);
|
6233
|
+
} else {
|
6234
|
+
$val < 2000 and return "$val bytes";
|
6235
|
+
$val < 10000 and return sprintf('%.1f kB', $val / 1000);
|
6236
|
+
$val < 2000000 and return sprintf('%.0f kB', $val / 1000);
|
6237
|
+
$val < 10000000 and return sprintf('%.1f MB', $val / 1000000);
|
6238
|
+
$val < 2000000000 and return sprintf('%.0f MB', $val / 1000000);
|
6239
|
+
$val < 10000000000 and return sprintf('%.1f GB', $val / 1000000000);
|
6240
|
+
return sprintf('%.0f GB', $val / 1000000000);
|
6241
|
+
}
|
6216
6242
|
}
|
6217
6243
|
|
6218
6244
|
#------------------------------------------------------------------------------
|
@@ -7480,7 +7506,8 @@ sub ProcessJPEG($$)
|
|
7480
7506
|
my $hdr = $1;
|
7481
7507
|
$dumpType = 'JUMBF';
|
7482
7508
|
SetByteOrder('MM');
|
7483
|
-
|
7509
|
+
# (sequence should start from 1, but some software incorrectly writes 0)
|
7510
|
+
my $seq = Get32u($segDataPt, 4);
|
7484
7511
|
my $len = Get32u($segDataPt, 8);
|
7485
7512
|
my $type = substr($$segDataPt, 12, 4);
|
7486
7513
|
my $hdrLen;
|
@@ -7490,14 +7517,13 @@ sub ProcessJPEG($$)
|
|
7490
7517
|
} else {
|
7491
7518
|
$hdrLen = 8;
|
7492
7519
|
}
|
7493
|
-
$jumbfChunk{$type} or $jumbfChunk{$type} = [ ];
|
7520
|
+
$jumbfChunk{$type} or $jumbfChunk{$type} = [ '' ];
|
7494
7521
|
if ($len < $hdrLen) {
|
7495
7522
|
$self->Warn('Invalid JUMBF segment');
|
7496
|
-
} elsif ($seq
|
7497
|
-
$self->Warn('Invalid JUMBF sequence number');
|
7498
|
-
} elsif (defined $jumbfChunk{$type}[$seq]) {
|
7523
|
+
} elsif (defined $jumbfChunk{$type}[$seq] and length $jumbfChunk{$type}[$seq]) {
|
7499
7524
|
$self->Warn('Duplicate JUMBF sequence number');
|
7500
7525
|
} else {
|
7526
|
+
$seq or $self->Warn('Incorrect JUMBF sequence numbering (should start from 0, not 1)');
|
7501
7527
|
# add to list of JUMBF chunks
|
7502
7528
|
$jumbfChunk{$type}[$seq] = substr($$segDataPt, 8 + $hdrLen);
|
7503
7529
|
# check to see if we have a complete JUMBF box
|
@@ -7721,6 +7747,19 @@ sub ProcessTIFF($$;$)
|
|
7721
7747
|
return $rtnVal;
|
7722
7748
|
}
|
7723
7749
|
|
7750
|
+
#------------------------------------------------------------------------------
|
7751
|
+
# Process TIFF as a sub-document
|
7752
|
+
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) optional tag table ref
|
7753
|
+
# Returns: 1 if this looked like a valid EXIF block, 0 otherwise, or -1 on write error
|
7754
|
+
sub ProcessSubTIFF($$;$)
|
7755
|
+
{
|
7756
|
+
my ($self, $dirInfo, $tagTablePtr) = @_;
|
7757
|
+
$$self{DOC_NUM} = ++$$self{DOC_COUNT};
|
7758
|
+
my $rtnVal = $self->ProcessTIFF($dirInfo, $tagTablePtr);
|
7759
|
+
delete $$self{DOC_NUM};
|
7760
|
+
return $rtnVal;
|
7761
|
+
}
|
7762
|
+
|
7724
7763
|
#------------------------------------------------------------------------------
|
7725
7764
|
# Process TIFF data
|
7726
7765
|
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) optional tag table ref
|
@@ -7736,8 +7775,8 @@ sub DoProcessTIFF($$;$)
|
|
7736
7775
|
my ($err, $sig, $canonSig, $otherSig);
|
7737
7776
|
|
7738
7777
|
# attempt to read TIFF header
|
7739
|
-
$$self{EXIF_DATA} = '';
|
7740
7778
|
if ($raf) {
|
7779
|
+
$$self{EXIF_DATA} = '';
|
7741
7780
|
if ($outfile) {
|
7742
7781
|
$raf->Seek(0, 0) or return 0;
|
7743
7782
|
if ($base) {
|
@@ -8089,8 +8128,8 @@ sub DoProcessTIFF($$;$)
|
|
8089
8128
|
# check DNG version
|
8090
8129
|
if ($$self{DNGVersion}) {
|
8091
8130
|
my $ver = $$self{DNGVersion};
|
8092
|
-
# currently support up to DNG version 1.
|
8093
|
-
unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.
|
8131
|
+
# currently support up to DNG version 1.7
|
8132
|
+
unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.7) {
|
8094
8133
|
$ver =~ tr/ /./;
|
8095
8134
|
$self->Error("DNG Version $ver not yet tested", 1);
|
8096
8135
|
}
|
@@ -8359,7 +8398,7 @@ sub GetTagInfo($$$;$$$)
|
|
8359
8398
|
}
|
8360
8399
|
}
|
8361
8400
|
# don't return Unknown tags unless that option is set (also see forum13716)
|
8362
|
-
if ($$tagInfo{Unknown} and not $$self{OPTIONS}{Unknown} and not
|
8401
|
+
if ($$tagInfo{Unknown} and not $$self{OPTIONS}{Unknown} and not
|
8363
8402
|
($$self{OPTIONS}{Verbose} or $$self{HTML_DUMP} or
|
8364
8403
|
($$self{OPTIONS}{Validate} and not $$tagInfo{AddedUnknown})))
|
8365
8404
|
{
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -467,6 +467,12 @@ big-endian ('MM') order is assumed. This can also be set via the
|
|
467
467
|
L<ExifByteOrder tag|Image::ExifTool::TagNames/Extra Tags>, but the ByteOrder
|
468
468
|
option takes precedence if both are set.
|
469
469
|
|
470
|
+
=item ByteUnit
|
471
|
+
|
472
|
+
Units for print conversion of FileSize and other byte values. Either 'SI'
|
473
|
+
(eg. kB for 1000 bytes) or 'Binary' (eg. KiB for 1024 bytes). Default is
|
474
|
+
'SI'.
|
475
|
+
|
470
476
|
=item Charset
|
471
477
|
|
472
478
|
Character set for encoding character tag values passed to/from ExifTool with
|
@@ -554,12 +560,12 @@ without recoding. Default is 0.
|
|
554
560
|
Comma-delimited list of settings for writing compact XMP. Below is a list
|
555
561
|
of available settings. Note that 'NoPadding' effects only embedded XMP
|
556
562
|
since padding is never written for stand-alone XMP files. Also note that
|
557
|
-
'OneDesc' is not recommended when writing XMP larger than 64
|
563
|
+
'OneDesc' is not recommended when writing XMP larger than 64 KiB to a JPG
|
558
564
|
file because it interferes with ExifTool's technique of splitting off large
|
559
565
|
rdf:Description elements into the extended XMP. Case is not significant for
|
560
566
|
any of these options. Aliases are given in brackets. Default is undef.
|
561
567
|
|
562
|
-
NoPadding - Avoid 2
|
568
|
+
NoPadding - Avoid 2 KiB of recommended padding at end of XMP (NoPad)
|
563
569
|
NoIndent - No spaces to indent lines (NoSpace, NoSpaces)
|
564
570
|
NoNewline - Avoid unnecessary newlines (NoNewlines)
|
565
571
|
Shorthand - Use XMP Shorthand format
|
@@ -2440,7 +2446,7 @@ ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1,
|
|
2440
2446
|
IPTC, IPTC#, ISO, ITC, InfiRay, Insta360, InteropIFD, ItemList, JFIF, JFXX,
|
2441
2447
|
JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys, Kodak,
|
2442
2448
|
KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf,
|
2443
|
-
LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera,
|
2449
|
+
LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, M2TS, MAC, MIE-Audio, MIE-Camera,
|
2444
2450
|
MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image,
|
2445
2451
|
MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview,
|
2446
2452
|
MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MISB, MNG, MOBI, MOI,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.70.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|