The softlink to physfn is the way to know if the device is
VF or not. So, the patch softlinks 'physfn' to the parent function.
The multifunction PCI devices dont have 'physfn' softlinks.
The patch adds few Virtual functions to the mock environment and changes
the existing test xmls using the VFs to use the newly added VFs
for their use case.
Signed-off-by: Shivaprasad G Bhat <sbhat(a)linux.vnet.ibm.com>
---
.../hostdev-pci-address-device.args | 2 +-
.../hostdev-pci-address-device.xml | 2 +-
tests/qemuxml2argvdata/hostdev-pci-address.args | 2 +-
tests/qemuxml2argvdata/hostdev-pci-address.xml | 2 +-
.../qemuxml2argvdata/hostdev-vfio-multidomain.args | 2 +-
.../qemuxml2argvdata/hostdev-vfio-multidomain.xml | 2 +-
tests/qemuxml2argvdata/hostdev-vfio.args | 2 +-
tests/qemuxml2argvdata/hostdev-vfio.xml | 2 +-
tests/qemuxml2argvdata/net-hostdev-fail.xml | 2 +-
.../qemuxml2argvdata/net-hostdev-multidomain.args | 2 +-
tests/qemuxml2argvdata/net-hostdev-multidomain.xml | 2 +-
tests/qemuxml2argvdata/net-hostdev-vfio.args | 2 +-
tests/qemuxml2argvdata/net-hostdev-vfio.xml | 2 +-
tests/qemuxml2argvdata/net-hostdev.args | 2 +-
tests/qemuxml2argvdata/net-hostdev.xml | 2 +-
tests/qemuxml2argvdata/pci-rom.args | 4 ++--
tests/qemuxml2argvdata/pci-rom.xml | 4 ++--
tests/qemuxml2xmloutdata/hostdev-pci-address.xml | 2 +-
tests/qemuxml2xmloutdata/hostdev-vfio.xml | 2 +-
tests/qemuxml2xmloutdata/net-hostdev-vfio.xml | 2 +-
tests/qemuxml2xmloutdata/net-hostdev.xml | 2 +-
tests/qemuxml2xmloutdata/pci-rom.xml | 4 ++--
tests/virpcimock.c | 14 ++++++++++++++
tests/virpcitestdata/0000-06-12.0.config | Bin
tests/virpcitestdata/0000-06-12.1.config | Bin
tests/virpcitestdata/0000-06-12.2.config | Bin
26 files changed, 39 insertions(+), 25 deletions(-)
create mode 100644 tests/virpcitestdata/0000-06-12.0.config
create mode 100644 tests/virpcitestdata/0000-06-12.1.config
create mode 100644 tests/virpcitestdata/0000-06-12.2.config
diff --git a/tests/qemuxml2argvdata/hostdev-pci-address-device.args
b/tests/qemuxml2argvdata/hostdev-pci-address-device.args
index a250082e1e..93221b6e9d 100644
--- a/tests/qemuxml2argvdata/hostdev-pci-address-device.args
+++ b/tests/qemuxml2argvdata/hostdev-pci-address-device.args
@@ -22,5 +22,5 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device pci-assign,host=06:12.5,id=hostdev0,bus=pci.0,addr=0x3 \
+-device pci-assign,host=06:12.1,id=hostdev0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/hostdev-pci-address-device.xml
b/tests/qemuxml2argvdata/hostdev-pci-address-device.xml
index 814fdcc271..492031d5a9 100644
--- a/tests/qemuxml2argvdata/hostdev-pci-address-device.xml
+++ b/tests/qemuxml2argvdata/hostdev-pci-address-device.xml
@@ -20,7 +20,7 @@
</disk>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
</hostdev>
<memballoon model='virtio'/>
diff --git a/tests/qemuxml2argvdata/hostdev-pci-address.args
b/tests/qemuxml2argvdata/hostdev-pci-address.args
index 1f3a2443bf..728712a1c1 100644
--- a/tests/qemuxml2argvdata/hostdev-pci-address.args
+++ b/tests/qemuxml2argvdata/hostdev-pci-address.args
@@ -21,4 +21,4 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device pci-assign,host=06:12.5,id=hostdev0,bus=pci.0,addr=0x3
+-device pci-assign,host=06:12.1,id=hostdev0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/hostdev-pci-address.xml
b/tests/qemuxml2argvdata/hostdev-pci-address.xml
index 17968350ff..af7e300c57 100644
--- a/tests/qemuxml2argvdata/hostdev-pci-address.xml
+++ b/tests/qemuxml2argvdata/hostdev-pci-address.xml
@@ -27,7 +27,7 @@
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
</hostdev>
<memballoon model='none'/>
diff --git a/tests/qemuxml2argvdata/hostdev-vfio-multidomain.args
b/tests/qemuxml2argvdata/hostdev-vfio-multidomain.args
index 492e9b35e0..87ea9e7e09 100644
--- a/tests/qemuxml2argvdata/hostdev-vfio-multidomain.args
+++ b/tests/qemuxml2argvdata/hostdev-vfio-multidomain.args
@@ -22,5 +22,5 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device vfio-pci,host=55aa:20:0f.3,id=hostdev0,bus=pci.0,addr=0x3 \
+-device vfio-pci,host=0021:de:1f.1,id=hostdev0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/hostdev-vfio-multidomain.xml
b/tests/qemuxml2argvdata/hostdev-vfio-multidomain.xml
index 832458125b..7c34b65c7f 100644
--- a/tests/qemuxml2argvdata/hostdev-vfio-multidomain.xml
+++ b/tests/qemuxml2argvdata/hostdev-vfio-multidomain.xml
@@ -25,7 +25,7 @@
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
- <address domain='0x55aa' bus='32' slot='15'
function='3'/>
+ <address domain='0x0021' bus='222' slot='31'
function='1'/>
</source>
</hostdev>
<memballoon model='virtio'/>
diff --git a/tests/qemuxml2argvdata/hostdev-vfio.args
b/tests/qemuxml2argvdata/hostdev-vfio.args
index ba54d03e8e..d7cc2b7246 100644
--- a/tests/qemuxml2argvdata/hostdev-vfio.args
+++ b/tests/qemuxml2argvdata/hostdev-vfio.args
@@ -22,5 +22,5 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device vfio-pci,host=06:12.5,id=hostdev0,bus=pci.0,addr=0x3 \
+-device vfio-pci,host=06:12.1,id=hostdev0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/hostdev-vfio.xml
b/tests/qemuxml2argvdata/hostdev-vfio.xml
index 4d96b9f732..b2e6c62e7e 100644
--- a/tests/qemuxml2argvdata/hostdev-vfio.xml
+++ b/tests/qemuxml2argvdata/hostdev-vfio.xml
@@ -27,7 +27,7 @@
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
</hostdev>
<memballoon model='virtio'/>
diff --git a/tests/qemuxml2argvdata/net-hostdev-fail.xml
b/tests/qemuxml2argvdata/net-hostdev-fail.xml
index c815d68bd9..50b102c658 100644
--- a/tests/qemuxml2argvdata/net-hostdev-fail.xml
+++ b/tests/qemuxml2argvdata/net-hostdev-fail.xml
@@ -25,7 +25,7 @@
<interface type='hostdev' managed='yes'>
<mac address='00:11:22:33:44:55'/>
<source>
- <address type='pci' domain='0x0000' bus='0x03'
slot='0x07' function='0x1'/>
+ <address type='pci' domain='0x0000' bus='0x06'
slot='0x12' function='0x1'/>
</source>
<model type='virtio'/>
<filterref filter='myfilter'/>
diff --git a/tests/qemuxml2argvdata/net-hostdev-multidomain.args
b/tests/qemuxml2argvdata/net-hostdev-multidomain.args
index 7d27964715..58696a4a9c 100644
--- a/tests/qemuxml2argvdata/net-hostdev-multidomain.args
+++ b/tests/qemuxml2argvdata/net-hostdev-multidomain.args
@@ -22,5 +22,5 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device pci-assign,host=2424:21:1c.6,id=hostdev0,bus=pci.0,addr=0x3 \
+-device pci-assign,host=0021:de:1f.1,id=hostdev0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-hostdev-multidomain.xml
b/tests/qemuxml2argvdata/net-hostdev-multidomain.xml
index 27e5f0f724..71d053a3da 100644
--- a/tests/qemuxml2argvdata/net-hostdev-multidomain.xml
+++ b/tests/qemuxml2argvdata/net-hostdev-multidomain.xml
@@ -25,7 +25,7 @@
<interface type='hostdev' managed='yes'>
<mac address='00:11:22:33:44:55'/>
<source>
- <address type='pci' domain='0x2424' bus='0x21'
slot='0x1c' function='0x6'/>
+ <address type='pci' domain='0x0021' bus='0xde'
slot='0x1f' function='0x1'/>
</source>
<vlan>
<tag id='42'/>
diff --git a/tests/qemuxml2argvdata/net-hostdev-vfio.args
b/tests/qemuxml2argvdata/net-hostdev-vfio.args
index 7247c6c1f2..6dfbe61689 100644
--- a/tests/qemuxml2argvdata/net-hostdev-vfio.args
+++ b/tests/qemuxml2argvdata/net-hostdev-vfio.args
@@ -22,5 +22,5 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device vfio-pci,host=03:07.1,id=hostdev0,bus=pci.0,addr=0x3 \
+-device vfio-pci,host=06:12.1,id=hostdev0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-hostdev-vfio.xml
b/tests/qemuxml2argvdata/net-hostdev-vfio.xml
index 24034cad8b..aff681c0fb 100644
--- a/tests/qemuxml2argvdata/net-hostdev-vfio.xml
+++ b/tests/qemuxml2argvdata/net-hostdev-vfio.xml
@@ -26,7 +26,7 @@
<mac address='00:11:22:33:44:55'/>
<driver name='vfio'/>
<source>
- <address type='pci' domain='0x0000' bus='0x03'
slot='0x07' function='0x1'/>
+ <address type='pci' domain='0x0000' bus='0x06'
slot='0x12' function='0x1'/>
</source>
<vlan>
<tag id='42'/>
diff --git a/tests/qemuxml2argvdata/net-hostdev.args
b/tests/qemuxml2argvdata/net-hostdev.args
index e137a0a5b1..7663821e53 100644
--- a/tests/qemuxml2argvdata/net-hostdev.args
+++ b/tests/qemuxml2argvdata/net-hostdev.args
@@ -22,5 +22,5 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device pci-assign,host=03:07.1,id=hostdev0,bus=pci.0,addr=0x3 \
+-device pci-assign,host=06:12.1,id=hostdev0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-hostdev.xml
b/tests/qemuxml2argvdata/net-hostdev.xml
index 829d8b850b..9949e6ef30 100644
--- a/tests/qemuxml2argvdata/net-hostdev.xml
+++ b/tests/qemuxml2argvdata/net-hostdev.xml
@@ -25,7 +25,7 @@
<interface type='hostdev' managed='yes'>
<mac address='00:11:22:33:44:55'/>
<source>
- <address type='pci' domain='0x0000' bus='0x03'
slot='0x07' function='0x1'/>
+ <address type='pci' domain='0x0000' bus='0x06'
slot='0x12' function='0x1'/>
</source>
<vlan>
<tag id='42'/>
diff --git a/tests/qemuxml2argvdata/pci-rom.args b/tests/qemuxml2argvdata/pci-rom.args
index b50581283e..9451d7613a 100644
--- a/tests/qemuxml2argvdata/pci-rom.args
+++ b/tests/qemuxml2argvdata/pci-rom.args
@@ -28,7 +28,7 @@ rombar=1 \
-device virtio-net-pci,vlan=1,id=net1,mac=52:54:00:24:a5:9e,bus=pci.0,addr=0x4,\
romfile=/etc/fake/bootrom.bin \
-net user,vlan=1,name=hostnet1 \
--device pci-assign,host=06:12.5,id=hostdev0,bus=pci.0,addr=0x5,rombar=0 \
--device pci-assign,host=06:12.6,id=hostdev1,bus=pci.0,addr=0x6,rombar=1,\
+-device pci-assign,host=06:12.1,id=hostdev0,bus=pci.0,addr=0x5,rombar=0 \
+-device pci-assign,host=06:12.2,id=hostdev1,bus=pci.0,addr=0x6,rombar=1,\
romfile=/etc/fake/bootrom.bin \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7
diff --git a/tests/qemuxml2argvdata/pci-rom.xml b/tests/qemuxml2argvdata/pci-rom.xml
index 09cafb35a9..048bcd3b59 100644
--- a/tests/qemuxml2argvdata/pci-rom.xml
+++ b/tests/qemuxml2argvdata/pci-rom.xml
@@ -36,13 +36,13 @@
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
<rom bar='off'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x6'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x2'/>
</source>
<rom bar='on' file='/etc/fake/bootrom.bin'/>
</hostdev>
diff --git a/tests/qemuxml2xmloutdata/hostdev-pci-address.xml
b/tests/qemuxml2xmloutdata/hostdev-pci-address.xml
index 59cb86e1d5..1e80b9b387 100644
--- a/tests/qemuxml2xmloutdata/hostdev-pci-address.xml
+++ b/tests/qemuxml2xmloutdata/hostdev-pci-address.xml
@@ -31,7 +31,7 @@
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>
</hostdev>
diff --git a/tests/qemuxml2xmloutdata/hostdev-vfio.xml
b/tests/qemuxml2xmloutdata/hostdev-vfio.xml
index 77bd62a129..15a845f4d1 100644
--- a/tests/qemuxml2xmloutdata/hostdev-vfio.xml
+++ b/tests/qemuxml2xmloutdata/hostdev-vfio.xml
@@ -32,7 +32,7 @@
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>
</hostdev>
diff --git a/tests/qemuxml2xmloutdata/net-hostdev-vfio.xml
b/tests/qemuxml2xmloutdata/net-hostdev-vfio.xml
index 0523cd8d3b..3f057a8249 100644
--- a/tests/qemuxml2xmloutdata/net-hostdev-vfio.xml
+++ b/tests/qemuxml2xmloutdata/net-hostdev-vfio.xml
@@ -31,7 +31,7 @@
<mac address='00:11:22:33:44:55'/>
<driver name='vfio'/>
<source>
- <address type='pci' domain='0x0000' bus='0x03'
slot='0x07' function='0x1'/>
+ <address type='pci' domain='0x0000' bus='0x06'
slot='0x12' function='0x1'/>
</source>
<vlan>
<tag id='42'/>
diff --git a/tests/qemuxml2xmloutdata/net-hostdev.xml
b/tests/qemuxml2xmloutdata/net-hostdev.xml
index bede4b034f..0141a0c5a3 100644
--- a/tests/qemuxml2xmloutdata/net-hostdev.xml
+++ b/tests/qemuxml2xmloutdata/net-hostdev.xml
@@ -30,7 +30,7 @@
<interface type='hostdev' managed='yes'>
<mac address='00:11:22:33:44:55'/>
<source>
- <address type='pci' domain='0x0000' bus='0x03'
slot='0x07' function='0x1'/>
+ <address type='pci' domain='0x0000' bus='0x06'
slot='0x12' function='0x1'/>
</source>
<vlan>
<tag id='42'/>
diff --git a/tests/qemuxml2xmloutdata/pci-rom.xml b/tests/qemuxml2xmloutdata/pci-rom.xml
index 982231fefe..5b5a8b217b 100644
--- a/tests/qemuxml2xmloutdata/pci-rom.xml
+++ b/tests/qemuxml2xmloutdata/pci-rom.xml
@@ -43,14 +43,14 @@
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x5'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x1'/>
</source>
<rom bar='off'/>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x05' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
- <address domain='0x0000' bus='0x06' slot='0x12'
function='0x6'/>
+ <address domain='0x0000' bus='0x06' slot='0x12'
function='0x2'/>
</source>
<rom bar='on' file='/etc/fake/bootrom.bin'/>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x06' function='0x0'/>
diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index c9b7434c9a..abe08a30ea 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -134,6 +134,7 @@ struct pciDevice {
int device;
int class;
int iommuGroup;
+ const char *physfn;
struct pciDriver *driver; /* Driver attached. NULL if attached to no driver */
};
@@ -433,6 +434,14 @@ pci_device_new_from_stub(const struct pciDevice *data)
}
make_symlink(devpath, "iommu_group", tmp);
+ if (dev->physfn) {
+ if (snprintf(tmp, sizeof(tmp),
+ "%s/devices/%s", fakesysfspcidir, dev->physfn) < 0)
{
+ ABORT("@tmp overflow");
+ }
+ make_symlink(devpath, "physfn", tmp);
+ }
+
if (pci_device_autobind(dev) < 0)
ABORT("Unable to bind: %s", data->id);
@@ -1007,6 +1016,11 @@ init_env(void)
MAKE_PCI_DEVICE("0000:0a:01.0", 0x8086, 0x0047, .iommuGroup = 8);
MAKE_PCI_DEVICE("0000:0a:02.0", 0x8286, 0x0048, .iommuGroup = 8);
MAKE_PCI_DEVICE("0000:0a:03.0", 0x8386, 0x0048, .iommuGroup = 8);
+ MAKE_PCI_DEVICE("0000:06:12.0", 0x8086, 0x0047, .iommuGroup = 9);
+ MAKE_PCI_DEVICE("0000:06:12.1", 0x8086, 0x0047, .iommuGroup = 10, .physfn =
"0000:06:12.0"); /* Virtual Function */
+ MAKE_PCI_DEVICE("0000:06:12.2", 0x8086, 0x0047, .iommuGroup = 11, .physfn =
"0000:06:12.0"); /* Virtual Function */
+ MAKE_PCI_DEVICE("0021:de:1f.0", 0x8086, 0x0047, .iommuGroup = 12);
+ MAKE_PCI_DEVICE("0021:de:1f.1", 0x8086, 0x0047, .iommuGroup = 13, .physfn =
"0021:de:1f.0"); /* Virtual Function */
}
diff --git a/tests/virpcitestdata/0000-06-12.0.config
b/tests/virpcitestdata/0000-06-12.0.config
new file mode 100644
index 0000000000000000000000000000000000000000..beee76534041a7020c08ae9ac03d9a349c6ea12e
GIT binary patch
literal 256
ycmXpOFlAt45MXi^VCG@qU|?VnU}yr8Sb;H6EeJS(Ng%<*sKv;@R0rb@MH&E<&;s)S
literal 0
HcmV?d00001
diff --git a/tests/virpcitestdata/0000-06-12.1.config
b/tests/virpcitestdata/0000-06-12.1.config
new file mode 100644
index 0000000000000000000000000000000000000000..beee76534041a7020c08ae9ac03d9a349c6ea12e
GIT binary patch
literal 256
ycmXpOFlAt45MXi^VCG@qU|?VnU}yr8Sb;H6EeJS(Ng%<*sKv;@R0rb@MH&E<&;s)S
literal 0
HcmV?d00001
diff --git a/tests/virpcitestdata/0000-06-12.2.config
b/tests/virpcitestdata/0000-06-12.2.config
new file mode 100644
index 0000000000000000000000000000000000000000..beee76534041a7020c08ae9ac03d9a349c6ea12e
GIT binary patch
literal 256
ycmXpOFlAt45MXi^VCG@qU|?VnU}yr8Sb;H6EeJS(Ng%<*sKv;@R0rb@MH&E<&;s)S
literal 0
HcmV?d00001