aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2018-11-01 20:12:44 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2018-11-01 20:12:44 +0100
commit122db3fde2b934df206567abc0c8b431962ce4b3 (patch)
tree5435567977fca83801096f971ded62b129c65f73 /nx-X11/programs/Xserver
parent70b49467c41e51eb11a50e4cbe3652246bf21140 (diff)
parent266c3d68d5abae1de80e807dbbe3252b34c4a04f (diff)
downloadnx-libs-122db3fde2b934df206567abc0c8b431962ce4b3.tar.gz
nx-libs-122db3fde2b934df206567abc0c8b431962ce4b3.tar.bz2
nx-libs-122db3fde2b934df206567abc0c8b431962ce4b3.zip
Merge branch 'uli42-pr/Xi-1.2.0' into 3.6.x
Attributes GH PR #734: https://github.com/ArcticaProject/nx-libs/pull/734
Diffstat (limited to 'nx-X11/programs/Xserver')
-rw-r--r--nx-X11/programs/Xserver/Xi/allowev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/chgdctl.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/chgfctl.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/chgkbd.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/chgkmap.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/chgprop.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/chgptr.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/closedev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/devbell.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/exevents.c18
-rw-r--r--nx-X11/programs/Xserver/Xi/extinit.c10
-rw-r--r--nx-X11/programs/Xserver/Xi/getbmap.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getdctl.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getfctl.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getfocus.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getkmap.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getmmap.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getprop.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getselev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/getvers.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/grabdev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/grabdevb.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/grabdevk.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/gtmotion.c4
-rw-r--r--nx-X11/programs/Xserver/Xi/listdev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/opendev.c3
-rw-r--r--nx-X11/programs/Xserver/Xi/selectev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/sendexev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/setbmap.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/setdval.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/setfocus.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/setmmap.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/setmode.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/stubs.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/ungrdev.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/ungrdevb.c1
-rw-r--r--nx-X11/programs/Xserver/Xi/ungrdevk.c1
-rw-r--r--nx-X11/programs/Xserver/code-versions.txt2
38 files changed, 25 insertions, 45 deletions
diff --git a/nx-X11/programs/Xserver/Xi/allowev.c b/nx-X11/programs/Xserver/Xi/allowev.c
index 8981f9142..76b2f60c5 100644
--- a/nx-X11/programs/Xserver/Xi/allowev.c
+++ b/nx-X11/programs/Xserver/Xi/allowev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/chgdctl.c b/nx-X11/programs/Xserver/Xi/chgdctl.c
index 566df5906..260dd0ec4 100644
--- a/nx-X11/programs/Xserver/Xi/chgdctl.c
+++ b/nx-X11/programs/Xserver/Xi/chgdctl.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/chgfctl.c b/nx-X11/programs/Xserver/Xi/chgfctl.c
index 31cb0a09e..00117fa6e 100644
--- a/nx-X11/programs/Xserver/Xi/chgfctl.c
+++ b/nx-X11/programs/Xserver/Xi/chgfctl.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/chgkbd.c b/nx-X11/programs/Xserver/Xi/chgkbd.c
index 4e8b5ee70..8f4e35773 100644
--- a/nx-X11/programs/Xserver/Xi/chgkbd.c
+++ b/nx-X11/programs/Xserver/Xi/chgkbd.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/chgkmap.c b/nx-X11/programs/Xserver/Xi/chgkmap.c
index 604fcd9cf..f8bad9556 100644
--- a/nx-X11/programs/Xserver/Xi/chgkmap.c
+++ b/nx-X11/programs/Xserver/Xi/chgkmap.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/chgprop.c b/nx-X11/programs/Xserver/Xi/chgprop.c
index b8d0403bf..6ee00a091 100644
--- a/nx-X11/programs/Xserver/Xi/chgprop.c
+++ b/nx-X11/programs/Xserver/Xi/chgprop.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/chgptr.c b/nx-X11/programs/Xserver/Xi/chgptr.c
index af2625f49..76cd1e071 100644
--- a/nx-X11/programs/Xserver/Xi/chgptr.c
+++ b/nx-X11/programs/Xserver/Xi/chgptr.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/closedev.c b/nx-X11/programs/Xserver/Xi/closedev.c
index b41474e70..21180cdc7 100644
--- a/nx-X11/programs/Xserver/Xi/closedev.c
+++ b/nx-X11/programs/Xserver/Xi/closedev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/devbell.c b/nx-X11/programs/Xserver/Xi/devbell.c
index a7091752b..22fe5cbee 100644
--- a/nx-X11/programs/Xserver/Xi/devbell.c
+++ b/nx-X11/programs/Xserver/Xi/devbell.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/exevents.c b/nx-X11/programs/Xserver/Xi/exevents.c
index e614b5af9..428e577f7 100644
--- a/nx-X11/programs/Xserver/Xi/exevents.c
+++ b/nx-X11/programs/Xserver/Xi/exevents.c
@@ -174,6 +174,9 @@ ProcessOtherEvent(xEventPtr xE, register DeviceIntPtr other, int count)
}
if (xE->u.u.type == DeviceKeyPress) {
+ if (!k)
+ return;
+
modifiers = k->modifierMap[key];
kptr = &k->down[key >> 3];
if (*kptr & bit) { /* allow ddx to generate multiple downs */
@@ -203,6 +206,9 @@ ProcessOtherEvent(xEventPtr xE, register DeviceIntPtr other, int count)
return;
}
} else if (xE->u.u.type == DeviceKeyRelease) {
+ if (!k)
+ return;
+
kptr = &k->down[key >> 3];
if (!(*kptr & bit)) /* guard against duplicates */
return;
@@ -225,6 +231,9 @@ ProcessOtherEvent(xEventPtr xE, register DeviceIntPtr other, int count)
if (other->fromPassiveGrab && (key == other->activatingKey))
deactivateDeviceGrab = TRUE;
} else if (xE->u.u.type == DeviceButtonPress) {
+ if (!b)
+ return;
+
kptr = &b->down[key >> 3];
*kptr |= bit;
if (other->valuator)
@@ -242,6 +251,9 @@ ProcessOtherEvent(xEventPtr xE, register DeviceIntPtr other, int count)
return;
} else if (xE->u.u.type == DeviceButtonRelease) {
+ if (!b)
+ return;
+
kptr = &b->down[key >> 3];
*kptr &= ~bit;
if (other->valuator)
@@ -1075,6 +1087,9 @@ MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * pEvents, Mask mask)
DeviceIntPtr dev;
dev = LookupDeviceIntRec(pEvents->deviceid & DEVICE_BITS);
+ if (!dev)
+ return 0;
+
if (pEvents->type == DeviceMotionNotify) {
if (mask & DevicePointerMotionHintMask) {
if (WID(dev->valuator->motionHintWindow) == pEvents->event) {
@@ -1096,6 +1111,9 @@ CheckDeviceGrabAndHintWindow(WindowPtr pWin, int type,
DeviceIntPtr dev;
dev = LookupDeviceIntRec(xE->deviceid & DEVICE_BITS);
+ if (!dev)
+ return;
+
if (type == DeviceMotionNotify)
dev->valuator->motionHintWindow = pWin;
else if ((type == DeviceButtonPress) && (!grab) &&
diff --git a/nx-X11/programs/Xserver/Xi/extinit.c b/nx-X11/programs/Xserver/Xi/extinit.c
index a50552cfe..adf69b00b 100644
--- a/nx-X11/programs/Xserver/Xi/extinit.c
+++ b/nx-X11/programs/Xserver/Xi/extinit.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -201,8 +200,8 @@ Mask PropagateMask[MAX_DEVICES];
*
*/
-static XExtensionVersion thisversion =
- {XI_Present,
+static XExtensionVersion thisversion =
+ {XI_Present,
SERVER_XI_MAJOR_VERSION,
SERVER_XI_MINOR_VERSION,
};
@@ -576,8 +575,7 @@ SEventDeviceValuator(deviceValuator * from, deviceValuator * to)
swaps(&to->sequenceNumber);
swaps(&to->device_state);
ip = &to->valuator0;
- for (i=0; i<6; i++)
- {
+ for (i = 0; i < 6; i++) {
swapl((ip + i)); /* macro - braces are required */
}
}
@@ -822,7 +820,7 @@ IResetProc(ExtensionEntry * unused)
*
*/
- void
+void
AssignTypeAndName(DeviceIntPtr dev, Atom type, char *name)
{
dev->type = type;
diff --git a/nx-X11/programs/Xserver/Xi/getbmap.c b/nx-X11/programs/Xserver/Xi/getbmap.c
index 696685b61..45f976423 100644
--- a/nx-X11/programs/Xserver/Xi/getbmap.c
+++ b/nx-X11/programs/Xserver/Xi/getbmap.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getdctl.c b/nx-X11/programs/Xserver/Xi/getdctl.c
index 7cc96cb2b..e050e36ac 100644
--- a/nx-X11/programs/Xserver/Xi/getdctl.c
+++ b/nx-X11/programs/Xserver/Xi/getdctl.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getfctl.c b/nx-X11/programs/Xserver/Xi/getfctl.c
index 9f75753f3..82de17944 100644
--- a/nx-X11/programs/Xserver/Xi/getfctl.c
+++ b/nx-X11/programs/Xserver/Xi/getfctl.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getfocus.c b/nx-X11/programs/Xserver/Xi/getfocus.c
index 5111522f2..8d0850d73 100644
--- a/nx-X11/programs/Xserver/Xi/getfocus.c
+++ b/nx-X11/programs/Xserver/Xi/getfocus.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getkmap.c b/nx-X11/programs/Xserver/Xi/getkmap.c
index 419d1080f..87fd4ba0e 100644
--- a/nx-X11/programs/Xserver/Xi/getkmap.c
+++ b/nx-X11/programs/Xserver/Xi/getkmap.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getmmap.c b/nx-X11/programs/Xserver/Xi/getmmap.c
index ce11e3e28..74b6d02b7 100644
--- a/nx-X11/programs/Xserver/Xi/getmmap.c
+++ b/nx-X11/programs/Xserver/Xi/getmmap.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getprop.c b/nx-X11/programs/Xserver/Xi/getprop.c
index 77075c92b..0782194da 100644
--- a/nx-X11/programs/Xserver/Xi/getprop.c
+++ b/nx-X11/programs/Xserver/Xi/getprop.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/getselev.c b/nx-X11/programs/Xserver/Xi/getselev.c
index b36b833d3..010cc8308 100644
--- a/nx-X11/programs/Xserver/Xi/getselev.c
+++ b/nx-X11/programs/Xserver/Xi/getselev.c
@@ -44,7 +44,6 @@ SOFTWARE.
********************************************************/
-
/***********************************************************************
*
* Extension function to get the current selected events for a given window.
diff --git a/nx-X11/programs/Xserver/Xi/getvers.c b/nx-X11/programs/Xserver/Xi/getvers.c
index d66175d58..93d9c2532 100644
--- a/nx-X11/programs/Xserver/Xi/getvers.c
+++ b/nx-X11/programs/Xserver/Xi/getvers.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/grabdev.c b/nx-X11/programs/Xserver/Xi/grabdev.c
index dc95e7cf5..654775da3 100644
--- a/nx-X11/programs/Xserver/Xi/grabdev.c
+++ b/nx-X11/programs/Xserver/Xi/grabdev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/grabdevb.c b/nx-X11/programs/Xserver/Xi/grabdevb.c
index 922a819fc..55336fb62 100644
--- a/nx-X11/programs/Xserver/Xi/grabdevb.c
+++ b/nx-X11/programs/Xserver/Xi/grabdevb.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/grabdevk.c b/nx-X11/programs/Xserver/Xi/grabdevk.c
index aceeec170..428452d7e 100644
--- a/nx-X11/programs/Xserver/Xi/grabdevk.c
+++ b/nx-X11/programs/Xserver/Xi/grabdevk.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/gtmotion.c b/nx-X11/programs/Xserver/Xi/gtmotion.c
index 72209d1b4..2be719b4a 100644
--- a/nx-X11/programs/Xserver/Xi/gtmotion.c
+++ b/nx-X11/programs/Xserver/Xi/gtmotion.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -142,8 +141,7 @@ ProcXGetDeviceMotionEvents(ClientPtr client)
size = sizeof(Time) + (axes * sizeof(INT32));
tsize = num_events * size;
coords = (INT32 *) malloc(tsize);
- if (!coords)
- {
+ if (!coords) {
SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0,
BadAlloc);
return Success;
diff --git a/nx-X11/programs/Xserver/Xi/listdev.c b/nx-X11/programs/Xserver/Xi/listdev.c
index bd62fa022..44f1286d1 100644
--- a/nx-X11/programs/Xserver/Xi/listdev.c
+++ b/nx-X11/programs/Xserver/Xi/listdev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/opendev.c b/nx-X11/programs/Xserver/Xi/opendev.c
index 5927546de..e3ad4dad0 100644
--- a/nx-X11/programs/Xserver/Xi/opendev.c
+++ b/nx-X11/programs/Xserver/Xi/opendev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -163,7 +162,7 @@ ProcXOpenDevice(register ClientPtr client)
rep.length = (j * sizeof(xInputClassInfo) + 3) >> 2;
rep.num_classes = j;
WriteReplyToClient(client, sizeof(xOpenDeviceReply), &rep);
- WriteToClient(client, j * sizeof (xInputClassInfo), evbase);
+ WriteToClient(client, j * sizeof(xInputClassInfo), evbase);
return (Success);
}
diff --git a/nx-X11/programs/Xserver/Xi/selectev.c b/nx-X11/programs/Xserver/Xi/selectev.c
index bb3d11b19..5c0646589 100644
--- a/nx-X11/programs/Xserver/Xi/selectev.c
+++ b/nx-X11/programs/Xserver/Xi/selectev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/sendexev.c b/nx-X11/programs/Xserver/Xi/sendexev.c
index ef7b9c4e9..a86829f5f 100644
--- a/nx-X11/programs/Xserver/Xi/sendexev.c
+++ b/nx-X11/programs/Xserver/Xi/sendexev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/setbmap.c b/nx-X11/programs/Xserver/Xi/setbmap.c
index d7a5b6782..7f67ef782 100644
--- a/nx-X11/programs/Xserver/Xi/setbmap.c
+++ b/nx-X11/programs/Xserver/Xi/setbmap.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/setdval.c b/nx-X11/programs/Xserver/Xi/setdval.c
index 69a52757a..909f03fbe 100644
--- a/nx-X11/programs/Xserver/Xi/setdval.c
+++ b/nx-X11/programs/Xserver/Xi/setdval.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/setfocus.c b/nx-X11/programs/Xserver/Xi/setfocus.c
index 18ef2927e..b561832e1 100644
--- a/nx-X11/programs/Xserver/Xi/setfocus.c
+++ b/nx-X11/programs/Xserver/Xi/setfocus.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/setmmap.c b/nx-X11/programs/Xserver/Xi/setmmap.c
index 74e08210e..cfc0819a7 100644
--- a/nx-X11/programs/Xserver/Xi/setmmap.c
+++ b/nx-X11/programs/Xserver/Xi/setmmap.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/setmode.c b/nx-X11/programs/Xserver/Xi/setmode.c
index 4f6f81605..da2c634fe 100644
--- a/nx-X11/programs/Xserver/Xi/setmode.c
+++ b/nx-X11/programs/Xserver/Xi/setmode.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/stubs.c b/nx-X11/programs/Xserver/Xi/stubs.c
index e73785547..0ba8a4001 100644
--- a/nx-X11/programs/Xserver/Xi/stubs.c
+++ b/nx-X11/programs/Xserver/Xi/stubs.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/ungrdev.c b/nx-X11/programs/Xserver/Xi/ungrdev.c
index e84a1c3aa..f095fd166 100644
--- a/nx-X11/programs/Xserver/Xi/ungrdev.c
+++ b/nx-X11/programs/Xserver/Xi/ungrdev.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/ungrdevb.c b/nx-X11/programs/Xserver/Xi/ungrdevb.c
index f5e086ef6..9cd07555d 100644
--- a/nx-X11/programs/Xserver/Xi/ungrdevb.c
+++ b/nx-X11/programs/Xserver/Xi/ungrdevb.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/Xi/ungrdevk.c b/nx-X11/programs/Xserver/Xi/ungrdevk.c
index 42ebcd6ed..8829fccc2 100644
--- a/nx-X11/programs/Xserver/Xi/ungrdevk.c
+++ b/nx-X11/programs/Xserver/Xi/ungrdevk.c
@@ -1,4 +1,3 @@
-
/************************************************************
Copyright 1989, 1998 The Open Group
diff --git a/nx-X11/programs/Xserver/code-versions.txt b/nx-X11/programs/Xserver/code-versions.txt
index 1337a1de1..5a09d89ea 100644
--- a/nx-X11/programs/Xserver/code-versions.txt
+++ b/nx-X11/programs/Xserver/code-versions.txt
@@ -18,5 +18,5 @@ record 1.4.2
render 6.9/7.0
Xext 7.1/1.1
xfixes 1.4.2
-Xi 7.1/1.1
+Xi 1.3.0.0
xkb 7.1/1.1